mirror of
				https://github.com/KevinMidboe/ISPDowntimeMonitor.git
				synced 2025-10-29 17:50:12 +00:00 
			
		
		
		
	Resolved merge conflict
This commit is contained in:
		| @@ -8,6 +8,7 @@ | |||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "express": "^4.17.1", |     "express": "^4.17.1", | ||||||
|  |     "mongoose": "^5.9.17", | ||||||
|     "nodemailer": "^6.4.6", |     "nodemailer": "^6.4.6", | ||||||
|     "puppeteer": "^3.0.4" |     "puppeteer": "^3.0.4" | ||||||
|   } |   } | ||||||
|   | |||||||
							
								
								
									
										33
									
								
								src/db.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/db.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | const mongoose = require('mongoose'); | ||||||
|  | mongoose.connect("mongodb://localhost:27017/ispmonitor", { | ||||||
|  |   useNewUrlParser: true | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | const Event = require('./schemas/Event'); | ||||||
|  |  | ||||||
|  | const commitServiceEventToDatabase = async (serviceMessages, pdfFilename) => { | ||||||
|  |   try { | ||||||
|  |     // we only care about the second message | ||||||
|  |     const message = serviceMessages[1] | ||||||
|  |     const event = new Event({ | ||||||
|  |       date: new Date(), | ||||||
|  |       isOk: message.isOk, | ||||||
|  |       message: message.statusText, | ||||||
|  |       pdfFilename | ||||||
|  |     }) | ||||||
|  |  | ||||||
|  |     await event.save(); | ||||||
|  |     return serviceMessages | ||||||
|  |   } catch (err) { | ||||||
|  |     console.error('error from mongoose:') | ||||||
|  |     console.error(err) | ||||||
|  |     return serviceMessages | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const getAllEvents = () => Event.find().exec() | ||||||
|  |  | ||||||
|  | module.exports = { | ||||||
|  |   commitServiceEventToDatabase, | ||||||
|  |   getAllEvents | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								src/index.js
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/index.js
									
									
									
									
									
								
							| @@ -6,13 +6,17 @@ const config = require('../config') | |||||||
| const Mail = require( './mail.js'); | const Mail = require( './mail.js'); | ||||||
| const mail = new Mail(); | const mail = new Mail(); | ||||||
|  |  | ||||||
|  | const { commitServiceEventToDatabase, getAllEvents } = require('./db.js'); | ||||||
|  |  | ||||||
| let browser = undefined; | let browser = undefined; | ||||||
| if (config.debug == false) | if (config.debug == false) | ||||||
|   console.log = () => {} |   console.log = () => {} | ||||||
|  |  | ||||||
|  | const pdfFilename = config['pdfFilename'] || 'telenor-downtime.pdf'; | ||||||
|  |  | ||||||
| const savePageToPDF = page => { | const savePageToPDF = page => { | ||||||
|   const pdfOptions = { |   const pdfOptions = { | ||||||
|     path: `telenor-downtime.pdf`, |     path: pdfFilename, | ||||||
|     format: "A4", |     format: "A4", | ||||||
|     printBackground: true, |     printBackground: true, | ||||||
|     displayHeaderFooter: true, |     displayHeaderFooter: true, | ||||||
| @@ -51,8 +55,7 @@ const exitWithError = (err, message=undefined) => { | |||||||
|   if (config.debug === true) |   if (config.debug === true) | ||||||
|     console.error(err) |     console.error(err) | ||||||
|  |  | ||||||
|   closeBrowser(); |   closeBrowserAndExit(1); | ||||||
|   process.exit(1); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| const dismissCookiePrompt = page => { | const dismissCookiePrompt = page => { | ||||||
| @@ -110,8 +113,9 @@ const webscraper = async pageURL => { | |||||||
|     .catch(err => exitWithError(err, `Unable to reach url: ${pageURL}`)) |     .catch(err => exitWithError(err, `Unable to reach url: ${pageURL}`)) | ||||||
| } | } | ||||||
|  |  | ||||||
| function closeBrowser() { | function closeBrowserAndExit(status=0) { | ||||||
|   browser.close(); |   browser.close(); | ||||||
|  |   process.exit(status); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -120,8 +124,9 @@ function run() { | |||||||
|     .then(page => dismissCookiePrompt(page)) |     .then(page => dismissCookiePrompt(page)) | ||||||
|     .then(page => savePageToPDF(page)) |     .then(page => savePageToPDF(page)) | ||||||
|     .then(page => getServiceMessages(page)) |     .then(page => getServiceMessages(page)) | ||||||
|  |     .then(serviceMessages => commitServiceEventToDatabase(serviceMessages, pdfFilename)) | ||||||
|     .then(serviceMessages => notifyIfDown(serviceMessages)) |     .then(serviceMessages => notifyIfDown(serviceMessages)) | ||||||
|     .then(closeBrowser) |     .then(closeBrowserAndExit) | ||||||
| } | } | ||||||
|  |  | ||||||
| run(); | run(); | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								src/schemas/Event.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/schemas/Event.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | const mongoose = require('mongoose'); | ||||||
|  | const Schema = mongoose.Schema; | ||||||
|  |  | ||||||
|  | const Event = new Schema({ | ||||||
|  |   date: Date, | ||||||
|  |   isOk: Boolean, | ||||||
|  |   message: String, | ||||||
|  |   pdfFilename: String | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | module.exports = mongoose.model('Event', Event); | ||||||
							
								
								
									
										
											BIN
										
									
								
								src/site/SF-Pro-Rounded-Light.otf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/site/SF-Pro-Rounded-Light.otf
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										52
									
								
								src/site/fetchLogsAndGenerateTable.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/site/fetchLogsAndGenerateTable.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  |  | ||||||
|  | let indicentLogs = [ | ||||||
|  |   { | ||||||
|  |     id: 1, | ||||||
|  |     date: new Date('2020/05/30 01:20:38').toISOString(), | ||||||
|  |     message: 'Vi har en feil i mobilnettet på denne adressen. Vi jobber med å løse problemet.', | ||||||
|  |     duration: '6d 4t 32min' | ||||||
|  |   }, { | ||||||
|  |     id: 2, | ||||||
|  |     date: new Date('2020/04/22 13:47:25').toISOString(), | ||||||
|  |     message: 'Vi har en feil i internett på denne adressen. Vi jobber med å løse problemet.', | ||||||
|  |     duration: '1d 2t 54min' | ||||||
|  |   } | ||||||
|  | ] | ||||||
|  | indicentLogs = indicentLogs.reverse() | ||||||
|  |  | ||||||
|  | const newDiv = () => document.createElement('div'); | ||||||
|  |  | ||||||
|  | const closePopover = () => document.getElementById('popover').remove(); | ||||||
|  |  | ||||||
|  | const tableRowFromLog = (log, table) => { | ||||||
|  |   const row = table.insertRow(0); | ||||||
|  |   row.setAttribute('incident-id', log.id) | ||||||
|  |   row.onclick = clickRowPopupIncident; | ||||||
|  |   row.insertCell(0).innerHTML = log.date; | ||||||
|  |   row.insertCell(1).innerHTML = log.message; | ||||||
|  |   row.insertCell(2).innerHTML = log.duration; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const clickRowPopupIncident = (event) => { | ||||||
|  |   const cell = event.toElement; | ||||||
|  |   const row = cell.parentElement; | ||||||
|  |   const indicentId = row.getAttribute('incident-id'); | ||||||
|  |  | ||||||
|  |   const popover = newDiv() | ||||||
|  |   const container = newDiv() | ||||||
|  |   popover.id = 'popover' | ||||||
|  |   popover.onclick = closePopover; | ||||||
|  |   container.className = 'container' | ||||||
|  |   container.innerText = Object.values(indicentLogs[indicentId]).join('\n') | ||||||
|  |   popover.appendChild(container) | ||||||
|  |   document.body.appendChild(popover); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function fetchLogsAndGenerateTable() { | ||||||
|  |   const table = document.getElementById('log-table'); | ||||||
|  |   const tableBody = table.tBodies[0]; | ||||||
|  |  | ||||||
|  |   indicentLogs.map(log => tableRowFromLog(log, tableBody)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | fetchLogsAndGenerateTable() | ||||||
							
								
								
									
										28
									
								
								src/site/fetchUptimeAndGenerateBarGraph.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/site/fetchUptimeAndGenerateBarGraph.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  |  | ||||||
|  | const createEvent = () => { | ||||||
|  |   const event = document.createElement('div') | ||||||
|  |   event.className = 'event'; | ||||||
|  |   const tooltip = document.createElement('span'); | ||||||
|  |   tooltip.className = 'tooltip'; | ||||||
|  |   const tooltipContent = new Date().toLocaleString() | ||||||
|  |   tooltip.innerText = tooltipContent; | ||||||
|  |  | ||||||
|  |   event.appendChild(tooltip); | ||||||
|  |   return event; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function fetchUptimeAndGenerateBarGraph(instances=10) { | ||||||
|  |   const graph = document.getElementById('bar-graph'); | ||||||
|  |  | ||||||
|  |   const event = createEvent() | ||||||
|  |  | ||||||
|  |   for (var i = instances; i >= 0; i--) { | ||||||
|  |     const clone = event.cloneNode(true) | ||||||
|  |     Math.random() > 0.95 ? clone.className += ' error' : null; | ||||||
|  |     graph.appendChild(clone) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // fetchUptimeAndGenerateBarGraph(20) | ||||||
|  | fetchUptimeAndGenerateBarGraph(60) | ||||||
							
								
								
									
										57
									
								
								src/site/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								src/site/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  |   <title>ISP downtime monitor</title> | ||||||
|  |   <meta charset="UTF-8"> | ||||||
|  |   <link  href="style.css"  type="text/css" rel="stylesheet"> | ||||||
|  | </head> | ||||||
|  | <body> | ||||||
|  |   <h1>Nedetid rapport</h1> | ||||||
|  |   <div class="page-container"> | ||||||
|  |     <h2>Oppetid</h2> | ||||||
|  |     <div class="container" id="bar-graph"> | ||||||
|  |       <!-- BAR GRAPH --> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="color-indicators"> | ||||||
|  |       <label class="color-indicator-box green"></label> | ||||||
|  |       <span>Uptime</span> | ||||||
|  |  | ||||||
|  |       <label class="color-indicator-box red"></label> | ||||||
|  |       <span>Downtime</span> | ||||||
|  |     </div> | ||||||
|  |     <hr /> | ||||||
|  |  | ||||||
|  |     <h2>Indicent log</h2> | ||||||
|  |     <div class="container" id="indicent-logs"> | ||||||
|  |       <table id="log-table"> | ||||||
|  |         <thead><tr> | ||||||
|  |           <th>Date</th> | ||||||
|  |           <th>Incident message</th> | ||||||
|  |           <th>Duration</th> | ||||||
|  |         </tr></thead> | ||||||
|  |  | ||||||
|  |         <tbody><tr> | ||||||
|  |           <td>31 Mai 2020 22:34</td> | ||||||
|  |           <td>OK</td> | ||||||
|  |           <td>6d 4t 32min</td> | ||||||
|  |         </tr> | ||||||
|  |         <tr> | ||||||
|  |           <td>31 Mai 2020 22:34</td> | ||||||
|  |           <td>OK</td> | ||||||
|  |           <td>6d 4t 32min</td> | ||||||
|  |         </tr> | ||||||
|  |         <tr> | ||||||
|  |           <td>31 Mai 2020 22:34</td> | ||||||
|  |           <td>OK</td> | ||||||
|  |           <td>6d 4t 32min</td> | ||||||
|  |         </tr></tbody> | ||||||
|  |       </table> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |   </div> | ||||||
|  | </body> | ||||||
|  |  | ||||||
|  | <script src="fetchLogsAndGenerateTable.js" type="text/javascript"></script> | ||||||
|  | <script src="fetchUptimeAndGenerateBarGraph.js" type="text/javascript"></script> | ||||||
|  | </html> | ||||||
							
								
								
									
										216
									
								
								src/site/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								src/site/style.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,216 @@ | |||||||
|  | /**/ | ||||||
|  | :root { | ||||||
|  |   color-scheme: light; | ||||||
|  |   --text-color: black; | ||||||
|  |   --background-color: white; | ||||||
|  |   --page-background-color: #ebeceb; | ||||||
|  |   --page-background-color-40: rgba(247,249,249,0.4); | ||||||
|  |   --page-background-color-80: rgba(247,249,249,0.8); | ||||||
|  |   --green: #7bed9f; | ||||||
|  |   --red: #ff4757; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @media (prefers-color-scheme: dark) { | ||||||
|  |   :root { | ||||||
|  |     color-scheme: light dark; | ||||||
|  |     --text-color: white; | ||||||
|  |     --background-color: #1c1d1e; | ||||||
|  |     --page-background-color: black; | ||||||
|  |     --page-background-color-40: rgba(0,0,0,0.4); | ||||||
|  |     --page-background-color-80: rgba(0,0,0,0.8); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @font-face { | ||||||
|  |   font-family: AppleSF; | ||||||
|  |   src: url(SF-Pro-Rounded-Light.otf); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | body { | ||||||
|  |   font-family: AppleSF; | ||||||
|  |   background-color: var(--page-background-color); | ||||||
|  |   padding: 0 1rem; | ||||||
|  |   margin: 1rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-container { | ||||||
|  |   background-color: var(--background-color); | ||||||
|  |   border-radius: 0.5rem; | ||||||
|  |   min-height: 60vh; | ||||||
|  |   height: 100%; | ||||||
|  |   padding: .1px 2rem 1.5rem 2rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | h1,h2,h3,h4 { | ||||||
|  |   margin: 1.5rem 0; | ||||||
|  |   padding: 0; | ||||||
|  | } | ||||||
|  | h1 { | ||||||
|  |   font-size: 3rem; | ||||||
|  | } | ||||||
|  | h2 { | ||||||
|  |   font-size: 2rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .container { | ||||||
|  |   border-radius: 0.5rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | hr { | ||||||
|  |   margin: 2.5rem 1rem; | ||||||
|  |   height: 1px; | ||||||
|  |   background-color: var(--text-color); | ||||||
|  |   border: none | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #bar-graph { | ||||||
|  |   position: relative; | ||||||
|  |   width: 100%; | ||||||
|  |   height: 55px; | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: row-reverse; | ||||||
|  |   border-radius: 0.4rem; | ||||||
|  |   /*overflow: hidden;*/ | ||||||
|  |   /*margin: 2rem 0;*/ | ||||||
|  |   background-color: var(--page-background-color-40); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .event.error { | ||||||
|  | /*  position: absolute; | ||||||
|  |   height: 100%; | ||||||
|  |   width: 0.5rem;*/ | ||||||
|  |   background-color: var(--red); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .event { | ||||||
|  |   height: 100%; | ||||||
|  |   width: 1rem; | ||||||
|  |   background-color: var(--green); | ||||||
|  |   position: relative; | ||||||
|  |   transition: transform 0.1s ease; | ||||||
|  | } | ||||||
|  | .event:not(:last-of-type) { | ||||||
|  |   margin-left: 1px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .event .tooltip { | ||||||
|  |   visibility: hidden; | ||||||
|  |   background-color: var(--page-background-color-80); | ||||||
|  |   text-align: center; | ||||||
|  |   padding: 0.4rem; | ||||||
|  |   border-radius: 0.2rem; | ||||||
|  |   position: absolute; | ||||||
|  |   width: max-content; | ||||||
|  |   top: calc(100% + 1rem); | ||||||
|  |   left: 50%; | ||||||
|  |   margin-left: -5rem; | ||||||
|  | } | ||||||
|  | .event:hover { | ||||||
|  |   transform: scale(1.2); | ||||||
|  |   z-index: 1; | ||||||
|  |   box-shadow: -2px -2px 4px rgba(0,0,0,0.4), | ||||||
|  |     2px 2px 4px rgba(0,0,0,0.4); | ||||||
|  | } | ||||||
|  | .event:hover .tooltip { | ||||||
|  |   visibility: visible; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /*.error:nth-of-type(1) { | ||||||
|  |   left: 2rem; | ||||||
|  | } | ||||||
|  | .error:nth-of-type(2) { | ||||||
|  |   left: 22rem; | ||||||
|  | } | ||||||
|  | .error:nth-of-type(3) { | ||||||
|  |   right: 12rem; | ||||||
|  | }*/ | ||||||
|  |  | ||||||
|  | .color-indicators { | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: row; | ||||||
|  |   margin: 1rem 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .color-indicator-box { | ||||||
|  |   display: block; | ||||||
|  |   width: 1.1rem; | ||||||
|  |   height: 1.1rem; | ||||||
|  |   border-radius: 0.2rem; | ||||||
|  |   margin-right: 0.5rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .color-indicators .color-indicator-box:not(:first-of-type) { | ||||||
|  |   margin-left: 1.5rem; | ||||||
|  | } | ||||||
|  | .color-indicators span { | ||||||
|  |   font-size: 1.1rem; | ||||||
|  |   font-weight: 500; | ||||||
|  |   letter-spacing: 1.5px; | ||||||
|  | } | ||||||
|  | /*.color-indicator-box:first-child) { | ||||||
|  |   background-color: red; | ||||||
|  | }*/ | ||||||
|  |  | ||||||
|  | .green { | ||||||
|  |   background-color: var(--green); | ||||||
|  | } | ||||||
|  | .red { | ||||||
|  |   background-color: var(--red); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #log-table { | ||||||
|  |   width: 100%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | th { | ||||||
|  |   text-align: left; | ||||||
|  |   padding: 0.2rem 0.4rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | tr { | ||||||
|  |   font-size: 1.2rem; | ||||||
|  |   margin: 0.3rem 0; | ||||||
|  |   transition: transform 0.3s ease; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | td { | ||||||
|  |   padding: 0.6rem 0.4rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | tr td:first-child { | ||||||
|  |   border-radius: 0.3rem 0 0 0.3rem; | ||||||
|  | } | ||||||
|  | tr td:last-child { | ||||||
|  |   border-radius: 0 0.3rem 0.3rem 0; | ||||||
|  | } | ||||||
|  | tbody tr:hover { | ||||||
|  |   background-color: var(--page-background-color); | ||||||
|  |   transform: scale(1.01); | ||||||
|  |   cursor: pointer; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #popover { | ||||||
|  |   position: absolute; | ||||||
|  |   top: 0; | ||||||
|  |   left: 0; | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: center; | ||||||
|  |   align-items: center; | ||||||
|  |   width: 100vw; | ||||||
|  |   height: 100vh; | ||||||
|  |   background-color: var(--page-background-color-40); | ||||||
|  | } | ||||||
|  | #popover .container { | ||||||
|  |   width: 70%; | ||||||
|  |   height: 80%; | ||||||
|  |   background-color: var(--background-color); | ||||||
|  |   border-radius: 0.75rem; | ||||||
|  | } | ||||||
							
								
								
									
										194
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										194
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -29,6 +29,14 @@ base64-js@^1.0.2: | |||||||
|   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" |   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" | ||||||
|   integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== |   integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== | ||||||
|  |  | ||||||
|  | bl@^2.2.0: | ||||||
|  |   version "2.2.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.0.tgz#e1a574cdf528e4053019bb800b041c0ac88da493" | ||||||
|  |   integrity sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA== | ||||||
|  |   dependencies: | ||||||
|  |     readable-stream "^2.3.5" | ||||||
|  |     safe-buffer "^5.1.1" | ||||||
|  |  | ||||||
| bl@^4.0.1: | bl@^4.0.1: | ||||||
|   version "4.0.2" |   version "4.0.2" | ||||||
|   resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" |   resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" | ||||||
| @@ -38,6 +46,11 @@ bl@^4.0.1: | |||||||
|     inherits "^2.0.4" |     inherits "^2.0.4" | ||||||
|     readable-stream "^3.4.0" |     readable-stream "^3.4.0" | ||||||
|  |  | ||||||
|  | bluebird@3.5.1: | ||||||
|  |   version "3.5.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" | ||||||
|  |   integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== | ||||||
|  |  | ||||||
| brace-expansion@^1.1.7: | brace-expansion@^1.1.7: | ||||||
|   version "1.1.11" |   version "1.1.11" | ||||||
|   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" |   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" | ||||||
| @@ -46,6 +59,11 @@ brace-expansion@^1.1.7: | |||||||
|     balanced-match "^1.0.0" |     balanced-match "^1.0.0" | ||||||
|     concat-map "0.0.1" |     concat-map "0.0.1" | ||||||
|  |  | ||||||
|  | bson@^1.1.4: | ||||||
|  |   version "1.1.4" | ||||||
|  |   resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.4.tgz#f76870d799f15b854dffb7ee32f0a874797f7e89" | ||||||
|  |   integrity sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q== | ||||||
|  |  | ||||||
| buffer-crc32@~0.2.3: | buffer-crc32@~0.2.3: | ||||||
|   version "0.2.13" |   version "0.2.13" | ||||||
|   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" |   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" | ||||||
| @@ -69,6 +87,18 @@ concat-map@0.0.1: | |||||||
|   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" |   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" | ||||||
|   integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= |   integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= | ||||||
|  |  | ||||||
|  | core-util-is@~1.0.0: | ||||||
|  |   version "1.0.2" | ||||||
|  |   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" | ||||||
|  |   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= | ||||||
|  |  | ||||||
|  | debug@3.1.0: | ||||||
|  |   version "3.1.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" | ||||||
|  |   integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== | ||||||
|  |   dependencies: | ||||||
|  |     ms "2.0.0" | ||||||
|  |  | ||||||
| debug@4, debug@^4.1.0, debug@^4.1.1: | debug@4, debug@^4.1.0, debug@^4.1.1: | ||||||
|   version "4.1.1" |   version "4.1.1" | ||||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" |   resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" | ||||||
| @@ -76,6 +106,11 @@ debug@4, debug@^4.1.0, debug@^4.1.1: | |||||||
|   dependencies: |   dependencies: | ||||||
|     ms "^2.1.1" |     ms "^2.1.1" | ||||||
|  |  | ||||||
|  | denque@^1.4.1: | ||||||
|  |   version "1.4.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" | ||||||
|  |   integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== | ||||||
|  |  | ||||||
| end-of-stream@^1.1.0, end-of-stream@^1.4.1: | end-of-stream@^1.1.0, end-of-stream@^1.4.1: | ||||||
|   version "1.4.4" |   version "1.4.4" | ||||||
|   resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" |   resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" | ||||||
| @@ -151,11 +186,26 @@ inflight@^1.0.4: | |||||||
|     once "^1.3.0" |     once "^1.3.0" | ||||||
|     wrappy "1" |     wrappy "1" | ||||||
|  |  | ||||||
| inherits@2, inherits@^2.0.3, inherits@^2.0.4: | inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: | ||||||
|   version "2.0.4" |   version "2.0.4" | ||||||
|   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" |   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" | ||||||
|   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== |   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== | ||||||
|  |  | ||||||
|  | isarray@~1.0.0: | ||||||
|  |   version "1.0.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" | ||||||
|  |   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= | ||||||
|  |  | ||||||
|  | kareem@2.3.1: | ||||||
|  |   version "2.3.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87" | ||||||
|  |   integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw== | ||||||
|  |  | ||||||
|  | memory-pager@^1.0.2: | ||||||
|  |   version "1.5.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" | ||||||
|  |   integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== | ||||||
|  |  | ||||||
| mime@^2.0.3: | mime@^2.0.3: | ||||||
|   version "2.4.5" |   version "2.4.5" | ||||||
|   resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" |   resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" | ||||||
| @@ -173,7 +223,63 @@ mkdirp-classic@^0.5.2: | |||||||
|   resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" |   resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" | ||||||
|   integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== |   integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== | ||||||
|  |  | ||||||
| ms@^2.1.1: | mongodb@3.5.8: | ||||||
|  |   version "3.5.8" | ||||||
|  |   resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.5.8.tgz#34550856449b745d145873734bf922c12d6b9caa" | ||||||
|  |   integrity sha512-jz7mR58z66JKL8Px4ZY+FXbgB7d0a0hEGCT7kw8iye46/gsqPrOEpZOswwJ2BQlfzsrCLKdsF9UcaUfGVN2HrQ== | ||||||
|  |   dependencies: | ||||||
|  |     bl "^2.2.0" | ||||||
|  |     bson "^1.1.4" | ||||||
|  |     denque "^1.4.1" | ||||||
|  |     require_optional "^1.0.1" | ||||||
|  |     safe-buffer "^5.1.2" | ||||||
|  |   optionalDependencies: | ||||||
|  |     saslprep "^1.0.0" | ||||||
|  |  | ||||||
|  | mongoose-legacy-pluralize@1.0.2: | ||||||
|  |   version "1.0.2" | ||||||
|  |   resolved "https://registry.yarnpkg.com/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz#3ba9f91fa507b5186d399fb40854bff18fb563e4" | ||||||
|  |   integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ== | ||||||
|  |  | ||||||
|  | mongoose@^5.9.17: | ||||||
|  |   version "5.9.17" | ||||||
|  |   resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.9.17.tgz#9b74659481807cd9ff5b9c120cdb5087cbbd92bd" | ||||||
|  |   integrity sha512-9EDmTiKrOu/41twlPWUA1aOsdxSN6PRIdFwTpLu4MjyNcJ/vuBE+VewKrN1jsD4oXO5rB8bMYtYxVmJQ02SrPg== | ||||||
|  |   dependencies: | ||||||
|  |     bson "^1.1.4" | ||||||
|  |     kareem "2.3.1" | ||||||
|  |     mongodb "3.5.8" | ||||||
|  |     mongoose-legacy-pluralize "1.0.2" | ||||||
|  |     mpath "0.7.0" | ||||||
|  |     mquery "3.2.2" | ||||||
|  |     ms "2.1.2" | ||||||
|  |     regexp-clone "1.0.0" | ||||||
|  |     safe-buffer "5.1.2" | ||||||
|  |     sift "7.0.1" | ||||||
|  |     sliced "1.0.1" | ||||||
|  |  | ||||||
|  | mpath@0.7.0: | ||||||
|  |   version "0.7.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.7.0.tgz#20e8102e276b71709d6e07e9f8d4d0f641afbfb8" | ||||||
|  |   integrity sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg== | ||||||
|  |  | ||||||
|  | mquery@3.2.2: | ||||||
|  |   version "3.2.2" | ||||||
|  |   resolved "https://registry.yarnpkg.com/mquery/-/mquery-3.2.2.tgz#e1383a3951852ce23e37f619a9b350f1fb3664e7" | ||||||
|  |   integrity sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q== | ||||||
|  |   dependencies: | ||||||
|  |     bluebird "3.5.1" | ||||||
|  |     debug "3.1.0" | ||||||
|  |     regexp-clone "^1.0.0" | ||||||
|  |     safe-buffer "5.1.2" | ||||||
|  |     sliced "1.0.1" | ||||||
|  |  | ||||||
|  | ms@2.0.0: | ||||||
|  |   version "2.0.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" | ||||||
|  |   integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= | ||||||
|  |  | ||||||
|  | ms@2.1.2, ms@^2.1.1: | ||||||
|   version "2.1.2" |   version "2.1.2" | ||||||
|   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" |   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" | ||||||
|   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== |   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== | ||||||
| @@ -200,6 +306,11 @@ pend@~1.2.0: | |||||||
|   resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" |   resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" | ||||||
|   integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= |   integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= | ||||||
|  |  | ||||||
|  | process-nextick-args@~2.0.0: | ||||||
|  |   version "2.0.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" | ||||||
|  |   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== | ||||||
|  |  | ||||||
| progress@^2.0.1: | progress@^2.0.1: | ||||||
|   version "2.0.3" |   version "2.0.3" | ||||||
|   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" |   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" | ||||||
| @@ -234,6 +345,19 @@ puppeteer@^3.0.4: | |||||||
|     unbzip2-stream "^1.3.3" |     unbzip2-stream "^1.3.3" | ||||||
|     ws "^7.2.3" |     ws "^7.2.3" | ||||||
|  |  | ||||||
|  | readable-stream@^2.3.5: | ||||||
|  |   version "2.3.7" | ||||||
|  |   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" | ||||||
|  |   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== | ||||||
|  |   dependencies: | ||||||
|  |     core-util-is "~1.0.0" | ||||||
|  |     inherits "~2.0.3" | ||||||
|  |     isarray "~1.0.0" | ||||||
|  |     process-nextick-args "~2.0.0" | ||||||
|  |     safe-buffer "~5.1.1" | ||||||
|  |     string_decoder "~1.1.1" | ||||||
|  |     util-deprecate "~1.0.1" | ||||||
|  |  | ||||||
| readable-stream@^3.1.1, readable-stream@^3.4.0: | readable-stream@^3.1.1, readable-stream@^3.4.0: | ||||||
|   version "3.6.0" |   version "3.6.0" | ||||||
|   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" |   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" | ||||||
| @@ -243,6 +367,24 @@ readable-stream@^3.1.1, readable-stream@^3.4.0: | |||||||
|     string_decoder "^1.1.1" |     string_decoder "^1.1.1" | ||||||
|     util-deprecate "^1.0.1" |     util-deprecate "^1.0.1" | ||||||
|  |  | ||||||
|  | regexp-clone@1.0.0, regexp-clone@^1.0.0: | ||||||
|  |   version "1.0.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" | ||||||
|  |   integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== | ||||||
|  |  | ||||||
|  | require_optional@^1.0.1: | ||||||
|  |   version "1.0.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" | ||||||
|  |   integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g== | ||||||
|  |   dependencies: | ||||||
|  |     resolve-from "^2.0.0" | ||||||
|  |     semver "^5.1.0" | ||||||
|  |  | ||||||
|  | resolve-from@^2.0.0: | ||||||
|  |   version "2.0.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" | ||||||
|  |   integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= | ||||||
|  |  | ||||||
| rimraf@^3.0.2: | rimraf@^3.0.2: | ||||||
|   version "3.0.2" |   version "3.0.2" | ||||||
|   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" |   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" | ||||||
| @@ -250,11 +392,50 @@ rimraf@^3.0.2: | |||||||
|   dependencies: |   dependencies: | ||||||
|     glob "^7.1.3" |     glob "^7.1.3" | ||||||
|  |  | ||||||
|  | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: | ||||||
|  |   version "5.1.2" | ||||||
|  |   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" | ||||||
|  |   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== | ||||||
|  |  | ||||||
|  | safe-buffer@^5.1.1, safe-buffer@^5.1.2: | ||||||
|  |   version "5.2.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" | ||||||
|  |   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== | ||||||
|  |  | ||||||
| safe-buffer@~5.2.0: | safe-buffer@~5.2.0: | ||||||
|   version "5.2.0" |   version "5.2.0" | ||||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" |   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" | ||||||
|   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== |   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== | ||||||
|  |  | ||||||
|  | saslprep@^1.0.0: | ||||||
|  |   version "1.0.3" | ||||||
|  |   resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" | ||||||
|  |   integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== | ||||||
|  |   dependencies: | ||||||
|  |     sparse-bitfield "^3.0.3" | ||||||
|  |  | ||||||
|  | semver@^5.1.0: | ||||||
|  |   version "5.7.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" | ||||||
|  |   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== | ||||||
|  |  | ||||||
|  | sift@7.0.1: | ||||||
|  |   version "7.0.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08" | ||||||
|  |   integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g== | ||||||
|  |  | ||||||
|  | sliced@1.0.1: | ||||||
|  |   version "1.0.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" | ||||||
|  |   integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= | ||||||
|  |  | ||||||
|  | sparse-bitfield@^3.0.3: | ||||||
|  |   version "3.0.3" | ||||||
|  |   resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" | ||||||
|  |   integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= | ||||||
|  |   dependencies: | ||||||
|  |     memory-pager "^1.0.2" | ||||||
|  |  | ||||||
| string_decoder@^1.1.1: | string_decoder@^1.1.1: | ||||||
|   version "1.3.0" |   version "1.3.0" | ||||||
|   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" |   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" | ||||||
| @@ -262,6 +443,13 @@ string_decoder@^1.1.1: | |||||||
|   dependencies: |   dependencies: | ||||||
|     safe-buffer "~5.2.0" |     safe-buffer "~5.2.0" | ||||||
|  |  | ||||||
|  | string_decoder@~1.1.1: | ||||||
|  |   version "1.1.1" | ||||||
|  |   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" | ||||||
|  |   integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== | ||||||
|  |   dependencies: | ||||||
|  |     safe-buffer "~5.1.0" | ||||||
|  |  | ||||||
| tar-fs@^2.0.0: | tar-fs@^2.0.0: | ||||||
|   version "2.0.1" |   version "2.0.1" | ||||||
|   resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" |   resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" | ||||||
| @@ -296,7 +484,7 @@ unbzip2-stream@^1.3.3: | |||||||
|     buffer "^5.2.1" |     buffer "^5.2.1" | ||||||
|     through "^2.3.8" |     through "^2.3.8" | ||||||
|  |  | ||||||
| util-deprecate@^1.0.1: | util-deprecate@^1.0.1, util-deprecate@~1.0.1: | ||||||
|   version "1.0.2" |   version "1.0.2" | ||||||
|   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" |   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" | ||||||
|   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= |   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user