From ff130e13f2d87a37ac6acf0609f85a6f211d633c Mon Sep 17 00:00:00 2001 From: zac Date: Thu, 2 Apr 2020 00:10:15 -0400 Subject: [PATCH 01/39] added landing.ejs file, added a get route in various-routes.ts, and modified urls.ts to include /landing --- app/domain/urls.ts | 88 ++++++++++------ app/routes/various-routes.ts | 4 + app/views/pages/landing.ejs | 196 +++++++++++++++++++++++++++++++++++ 3 files changed, 259 insertions(+), 29 deletions(-) create mode 100644 app/views/pages/landing.ejs diff --git a/app/domain/urls.ts b/app/domain/urls.ts index 962d7d1f..873f7134 100644 --- a/app/domain/urls.ts +++ b/app/domain/urls.ts @@ -42,6 +42,7 @@ type Urls = { api: string; apiDocs: string; statistics: string; + landing: string; }; }; @@ -54,7 +55,8 @@ const localeAwareUrls: Urls = { contributors: '/colaboradores', api: '/api', apiDocs: '/api-docs', - statistics: '/estadisticas' + statistics: '/estadisticas', + landing: "/landing" }, au: { submitReport: '/', @@ -64,7 +66,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, bd: { submitReport: '/', @@ -74,7 +77,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, br: { submitReport: '/', @@ -84,7 +88,8 @@ const localeAwareUrls: Urls = { contributors: '/contribuidores', api: '/api', apiDocs: '/api-docs', - statistics: '/estatisticas' + statistics: '/estatisticas', + landing: "/landing" }, ca: { submitReport: '/', @@ -94,7 +99,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, cl: { submitReport: '/', @@ -104,7 +110,8 @@ const localeAwareUrls: Urls = { contributors: '/colaboradores', api: '/api', apiDocs: '/api-docs', - statistics: '/estadisticas' + statistics: '/estadisticas', + landing: "/landing" }, co: { submitReport: '/', @@ -114,7 +121,8 @@ const localeAwareUrls: Urls = { contributors: '/colaboradores', api: '/api', apiDocs: '/api-docs', - statistics: '/estadisticas' + statistics: '/estadisticas', + landing: "/landing" }, cz: { submitReport: '/', @@ -124,7 +132,8 @@ const localeAwareUrls: Urls = { contributors: '/prispevatele', api: '/api', apiDocs: '/api-docs', - statistics: '/statistiky' + statistics: '/statistiky', + landing: "/landing" }, dk: { submitReport: '/', @@ -134,7 +143,8 @@ const localeAwareUrls: Urls = { contributors: '/frivillige', api: '/api', apiDocs: '/api-docs', - statistics: '/statistikker' + statistics: '/statistikker', + landing: "/landing" }, en: { submitReport: '/', @@ -144,7 +154,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, es: { submitReport: '/', @@ -154,7 +165,8 @@ const localeAwareUrls: Urls = { contributors: '/colaboradores', api: '/api', apiDocs: '/api-docs', - statistics: '/estadisticas' + statistics: '/estadisticas', + landing: "/landing" }, fr: { submitReport: '/', @@ -164,7 +176,8 @@ const localeAwareUrls: Urls = { contributors: '/contributeurs', api: '/api', apiDocs: '/api-docs', - statistics: '/statistiques' + statistics: '/statistiques', + landing: "/landing" }, in: { submitReport: '/', @@ -174,7 +187,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, it: { submitReport: '/', @@ -184,7 +198,8 @@ const localeAwareUrls: Urls = { contributors: '/contributori', api: '/api', apiDocs: '/api-docs', - statistics: '/statistiche' + statistics: '/statistiche', + landing: "/landing" }, lt: { submitReport: '/', @@ -194,7 +209,8 @@ const localeAwareUrls: Urls = { contributors: '/autoriai', api: '/api', apiDocs: '/api-docs', - statistics: '/statistika' + statistics: '/statistika', + landing: "/landing" }, mt: { submitReport: '/', @@ -204,7 +220,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, mx: { submitReport: '/', @@ -214,7 +231,8 @@ const localeAwareUrls: Urls = { contributors: '/colaboradores', api: '/api', apiDocs: '/api-docs', - statistics: '/estadisticas' + statistics: '/estadisticas', + landing: "/landing" }, my: { submitReport: '/', @@ -224,7 +242,8 @@ const localeAwareUrls: Urls = { contributors: '/penyumbang', api: '/api', apiDocs: '/api-docs', - statistics: '/statistik' + statistics: '/statistik', + landing: "/landing" }, ng: { submitReport: '/', @@ -234,7 +253,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, nl: { submitReport: '/', @@ -244,7 +264,8 @@ const localeAwareUrls: Urls = { contributors: '/bijdragers', api: '/api', apiDocs: '/api-docs', - statistics: '/statistieken' + statistics: '/statistieken', + landing: "/landing" }, no: { submitReport: '/', @@ -254,7 +275,8 @@ const localeAwareUrls: Urls = { contributors: '/frivillige', api: '/api', apiDocs: '/api-docs', - statistics: '/statistikk' + statistics: '/statistikk', + landing: "/landing" }, np: { submitReport: '/', @@ -264,7 +286,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, pt: { submitReport: '/', @@ -274,7 +297,8 @@ const localeAwareUrls: Urls = { contributors: '/voluntarios', api: '/api', apiDocs: '/api-docs', - statistics: '/estatistica' + statistics: '/estatistica', + landing: "/landing" }, se: { submitReport: '/', @@ -284,7 +308,8 @@ const localeAwareUrls: Urls = { contributors: '/medverkare', api: '/api', apiDocs: '/api-docs', - statistics: '/statistik' + statistics: '/statistik', + landing: "/landing" }, sg: { submitReport: '/', @@ -294,7 +319,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, sk: { submitReport: '/', @@ -304,7 +330,8 @@ const localeAwareUrls: Urls = { contributors: '/prispievatelia', api: '/api', apiDocs: '/api-docs', - statistics: '/statistiky' + statistics: '/statistiky', + landing: "/landing" }, tr: { submitReport: '/', @@ -314,7 +341,8 @@ const localeAwareUrls: Urls = { contributors: '/katkida-bulunanlar', api: '/api', apiDocs: '/api-docs', - statistics: '/istatistikler' + statistics: '/istatistikler', + landing: "/landing" }, ua: { submitReport: '/', @@ -324,7 +352,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" }, us: { submitReport: '/', @@ -334,7 +363,8 @@ const localeAwareUrls: Urls = { contributors: '/contributors', api: '/api', apiDocs: '/api-docs', - statistics: '/statistics' + statistics: '/statistics', + landing: "/landing" } }; diff --git a/app/routes/various-routes.ts b/app/routes/various-routes.ts index e6b6b6a9..d6efa716 100644 --- a/app/routes/various-routes.ts +++ b/app/routes/various-routes.ts @@ -22,6 +22,10 @@ router.get(`${urls.contributors}`, (req, res) => { return res.render('pages/contributors'); }); +router.get(`${urls.landing}`, (req, res) => { + return res.render('pages/landing'); +}) + if (process.env.NODE_ENV !== 'production') { router.get('/social-images', (req, res) => { return res.render('pages/social-images'); diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs new file mode 100644 index 00000000..87938e16 --- /dev/null +++ b/app/views/pages/landing.ejs @@ -0,0 +1,196 @@ +<% + const { + profile, + passcode, + baseUrl, + formatNumber, + urls + } = locals; + const shouldAddAnalytics = !locals.profile; +%> +<% const { show = true, menu = true, home = false, fullscreen = false, lastCommit = false, showLocaleSelector = true } = locals; %> + + + + + +<%- include('partials/head') -%> + + + + + +
+ + <% if (menu) { %> +
+
+
+
+ <%- include('partials/logo') -%> + <% if (showLocaleSelector) { %> + <%- include('partials/locale-selector') -%> + <% } %> +
+
+
+
+ <% } %> + + + <%- include('partials/cta') -%> + + + + + +
+
+ +
+ + + <%- include('partials/app-feature-block', { + image: '/static/images/hospital.svg', + title: __('Unreported cases'), + description: __('The spread of COVID-19 in our country is unknown. Help us create a better overview.') + }) -%> + + <%- include('partials/app-feature-block', { + image: '/static/images/doctor.svg', + title: __('Contribute anonymously'), + description: __('Report your health condition anonymously') + }) -%> + + <%- include('partials/app-feature-block', { + image: '/static/images/research.svg', + title: __('Insight for everyone'), + description: __('The data is open to everyone. Look at maps and graphs, or download the data and create your own visualizations.') + }) -%> + + <%- include('partials/app-feature-block', { + image: '/static/images/mobile.svg', + title: __('Everything is open'), + description: __('The website is open source and built by volunteers. Feel free to join.') + }) -%> +
+
+
    +
  • + + +
  • +
+ +
+ + + + + + + + + From dd5fddbd1ba1056eb494f03fbb7379798280fc2e Mon Sep 17 00:00:00 2001 From: zac Date: Thu, 2 Apr 2020 21:46:28 -0400 Subject: [PATCH 02/39] added the rest of copy, the map --- app/views/pages/landing.ejs | 398 ++++++++++++++++++++++++++++++------ 1 file changed, 334 insertions(+), 64 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 87938e16..a82270e2 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -17,15 +17,35 @@ <%- include('partials/head') -%> + + + @@ -48,13 +68,52 @@ <% } %> - <%- include('partials/cta') -%> +
+
+

+ <%- __("Help us uncover and predict the corona spread across the world").replace(//g, '') %> +

+ +
+
+ + + +
+ +
+ +
+ +
    +
  • + +
  • +
+ + +
+
+

1. Survey

+

Select your *country and fill out the anonymous survey.

+
+
+

2. Share

+

Share the link with your friends, family, and encourage them to fill it in.

+
+
+ +
@@ -63,7 +122,7 @@ <%- include('partials/app-feature-block', { image: '/static/images/hospital.svg', title: __('Unreported cases'), - description: __('The spread of COVID-19 in our country is unknown. Help us create a better overview.') + description: __('The spread of COVID-19 in our world is unknown. Help us create a better overview.') }) -%> <%- include('partials/app-feature-block', { @@ -87,17 +146,74 @@
  • - - +
  • -
+
+ + + + -
- +
    +
  • + +
  • +
From 5e8ce0246fe6a9ce2331fe0a237452506301ed12 Mon Sep 17 00:00:00 2001 From: zac Date: Thu, 2 Apr 2020 21:57:03 -0400 Subject: [PATCH 04/39] move globe emoji from translation string to html --- app/views/pages/landing.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index ea6903f9..7b1de4ae 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -65,7 +65,7 @@ From ae9a053e4c761da93eb1a1e2edeb29c6218ef2be Mon Sep 17 00:00:00 2001 From: zac Date: Fri, 3 Apr 2020 02:08:28 -0400 Subject: [PATCH 05/39] added static/countries.json --- app/views/pages/landing.ejs | 3 +- static/countries.json | 142 ++++++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 static/countries.json diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 7b1de4ae..620fbdcf 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -469,5 +469,6 @@ }); }); - console.log(map.getStyle()); + var countries = require('./static/countries.json'); + console.log(countries); \ No newline at end of file diff --git a/static/countries.json b/static/countries.json new file mode 100644 index 00000000..08e4cfc7 --- /dev/null +++ b/static/countries.json @@ -0,0 +1,142 @@ +{ + "ar": { + "name": "Norway", + "center": [64.2959,8.7755], + "domain": "https://coronastatus.no/" + }, + "nl": { + "name": "The Netherlands", + "center": [52.1951,3.0367], + "domain": "https://coronastatus.nl/" + }, + "sk": { + "name": "Slovakia", + "center": [48.6543,17.4567], + "domain": "https://coronastatus.sk" + }, + "dk": { + "name": "Denmark", + "center": [56.21285,9.3001], + "domain": "https://coronastatus.dk/" + }, + "co": { + "name": "Colombia", + "center": [4.6098,-83.3857], + "domain": "https://coronastatus.co/" + }, + "it": { + "name": "Italy", + "center": [4.6098,83.3857], + "domain": "https://coronastatus.it/" + }, + "fr": { + "name": "France", + "center": [4.6098,-83.3857], + "domain": "https://coronastatus.fr" + }, + "mx": { + "name": "Mexico", + "center": [4.6098,-83.3857], + "domain": "https://coronastatus.mx" + }, + "us": { + "name": "United States of America (USA)", + "center": [4.6098,-83.3857], + "domain": "https://coronastatus.us" + }, + "ua": { + "name": "Ukraine", + "center": [48.2558,26.6914], + "domain": "https://coronastatus.es" + }, + "es": { + "name": "Spain", + "center": [40.1301,-8.2033], + "domain": "https://coronastatus.es" + }, + "br": { + "name": "Brazil", + "center": [-13.6602,-69.6791], + "domain": "https://coronastatus.net.br/" + }, + "ca": { + "name": "Canada", + "center": [-13.6602,69.6791], + "domain": "https://coronastatus.es" + }, + "au": { + "name": "Australia", + "center": [-24.9885,115.1955], + "domain": "https://coronastatusau.org/" + }, + "sg": { + "name": "Singapore", + "center": [1.3143,103.7041], + "domain": "https://coronastatus.sg/" + }, + "ar": { + "name": "Argentina", + "center": [-37.0560,-81.6327], + "domain": "https://coronastatus.com.ar" + }, + "my": { + "name": "Malaysia", + "center": [4.1389,105.1200], + "domain": "https://coronastatusmy.org" + }, + "mt": { + "name": "Malta", + "center": [35.9426,14.2382], + "domain": "https://coronastatusmt.com/" + }, + "cl": { + "name": "Chile", + "center": [35.4088,-106.2311], + "domain": "https://coronastatus.cl/" + }, + "in": { + "name": "India", + "center": [20.7707,73.7214], + "domain": "https://corona-status.in/" + }, + "pt": { + "name": "Portugal", + "center": [36.8983,-27.8261], + "domain": "https://coronastatus.pt/" + }, + "tr": { + "name": "Turkey", + "center": [39.0100,30.6870], + "domain": "https://coronastatustr.com/" + }, + "lt": { + "name": "Lithuania", + "center": [55.1561,21.6408], + "domain": "https://coronastatus.lt/" + }, + "np": { + "name": "Nepal", + "center": [28.3838,81.8862], + "domain": "https://coronastatusnp.com/" + }, + "cz": { + "name": "Czech Republic", + "center": [49.7856,13.2321], + "domain": "https://corona-status.cz/" + }, + "id": { + "name": "Indonesia", + "center": [-2.2760,99.4600], + "domain": "https://coronastatus.id/" + }, + "ph": { + "name": "Philippines", + "center": [11.5780,113.5793], + "domain": "https://coronastatus.ph/" + }, + "ng": { + "name": "Nigeria", + "center": [9.0173,4.1796], + "domain": "https://coronastatus.ng/" + } +} \ No newline at end of file From 7712ea21b556a5e974ca65e140aa7100cd94ae8d Mon Sep 17 00:00:00 2001 From: zac Date: Fri, 3 Apr 2020 02:08:57 -0400 Subject: [PATCH 06/39] landing.ejs --- app/views/pages/landing.ejs | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 620fbdcf..b4417895 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -469,6 +469,4 @@ }); }); - var countries = require('./static/countries.json'); - console.log(countries); \ No newline at end of file From 11db35668d4245c87034758e00b68a9d0302ff2f Mon Sep 17 00:00:00 2001 From: zac Date: Fri, 3 Apr 2020 17:59:11 -0400 Subject: [PATCH 07/39] added contribute now dropdown with countries, exposed countries.json in server response --- app/server.ts | 3 +- app/views/pages/landing.ejs | 75 ++++++++++++++++++++++++++++++++++--- static/countries.json | 2 +- 3 files changed, 73 insertions(+), 7 deletions(-) diff --git a/app/server.ts b/app/server.ts index 82cab388..e00752a3 100644 --- a/app/server.ts +++ b/app/server.ts @@ -16,6 +16,7 @@ import { localeToFlag } from './domain/flags'; import config from './config'; import { ensureAllLocalesAreValidJSON } from './util/locale-validation'; import { createNumberFormatter } from './util/number-formatter'; +import countries from '../static/countries.json'; const app = express(); const port = process.env.PORT || 7272; @@ -82,7 +83,7 @@ app.use((req, res, next) => { res.locals.localeToFlag = localeToFlag; res.locals.currentLocale = req.getLocale(); res.locals.formatNumber = createNumberFormatter(config.THOUSAND_SEPARATOR); - + res.locals.countries = countries; next(); }); diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index b4417895..346bc5e2 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -4,7 +4,8 @@ passcode, baseUrl, formatNumber, - urls + urls, + countries } = locals; const shouldAddAnalytics = !locals.profile; %> @@ -35,6 +36,22 @@ left:0; right:0; } + + .country-button { + background-repeat: no-repeat; + background-position: center; + background-size: cover; + text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; + } + + .group:hover .group-hover\:block { + display: block !important; + } + + .flag { + width:5vw; + height:5vh; + } + + + \ No newline at end of file diff --git a/static/countries.json b/static/countries.json index 08e4cfc7..f06ae2be 100644 --- a/static/countries.json +++ b/static/countries.json @@ -1,5 +1,5 @@ { - "ar": { + "no": { "name": "Norway", "center": [64.2959,8.7755], "domain": "https://coronastatus.no/" From baf645dff9f9238a376d9a92f14d3230a78dc234 Mon Sep 17 00:00:00 2001 From: zac Date: Fri, 3 Apr 2020 21:27:01 -0400 Subject: [PATCH 08/39] create/plot country markers, added marker png, discovered the coordniates are wrong for most countries --- app/views/pages/landing.ejs | 191 +++++++++++++--------------------- static/images/logo-marker.png | Bin 0 -> 4945 bytes 2 files changed, 74 insertions(+), 117 deletions(-) create mode 100644 static/images/logo-marker.png diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 346bc5e2..681e613e 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -52,6 +52,25 @@ width:5vw; height:5vh; } + + .marker { + background-image: url('static/images/logo-marker.png'); + background-size: cover; + width: 50px; + height: 50px; + border-radius: 50%; + cursor: pointer; + } + + .mapboxgl-popup { + max-width: 200px; + } + + .mapboxgl-popup-content { + text-align: center; + } + + \ No newline at end of file diff --git a/static/images/logo-marker.png b/static/images/logo-marker.png new file mode 100644 index 0000000000000000000000000000000000000000..a0474e125f0c1e6b5512734cdac4ca9ed7219fe0 GIT binary patch literal 4945 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 Date: Fri, 3 Apr 2020 21:38:35 -0400 Subject: [PATCH 09/39] fix error where country link list doesn't open on mobile, remove unused map code --- app/views/pages/landing.ejs | 55 +++++++++---------------------------- 1 file changed, 13 insertions(+), 42 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 681e613e..a6886f20 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -99,7 +99,7 @@
  • - @@ -321,47 +321,6 @@ doubleClickZoom : false }); - - map.on('load', function() { - - - - - - /* map.addSource('reports', { - type: 'geojson', - data: '<%= urls.map %>/geojson', - cluster: true, - clusterMaxZoom: 100, // Max zoom to cluster points on - clusterRadius: 80, - clusterProperties: { - positive: ['+', ['case', positive, 1, 0]], - symptoms: ['+', ['case', symptoms, 1, 0]], - healthy: ['+', ['case', healthy, 1, 0]] - } - }); - - map.addLayer({ - id: 'report_individual', - type: 'circle', - source: 'reports', - filter: ['!=', ['get', 'cluster'], true], - paint: { - 'circle-color': [ - 'case', - positive, - colors.positive, - symptoms, - colors.symptoms, - healthy, - colors.healthy, - '#000000' - ], - 'circle-radius': 12 - } - });*/ - }); - var markers = {}; var markersOnScreen = {}; @@ -425,6 +384,16 @@ \ No newline at end of file From d52a65c6fa8e53f7eee02509b4d8e31dcd9856a9 Mon Sep 17 00:00:00 2001 From: zac Date: Fri, 3 Apr 2020 21:46:56 -0400 Subject: [PATCH 10/39] update logo text, add icon attribution link, remove postal code attribution link --- app/views/pages/landing.ejs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index a6886f20..90fa27b9 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -92,14 +92,20 @@
    - <%- include('partials/logo') -%> - <% if (showLocaleSelector) { %> - <%- include('partials/locale-selector') -%> - <% } %> + + +
    +
    + <%- __("coronastatus").replace(//g, '') %> +
    +
    +
    • - @@ -314,7 +320,7 @@ center: [<%= locals.mapCenter %>], zoom: 3, maxZoom: 4, - customAttribution: 'Postal Codes ©GeoNames', + customAttribution: 'Marker icon ©iconmonstr', hash: true, scrollZoom : false, boxZoom : false, From 82538376880577ca73c4762f7039b2ec6e174335 Mon Sep 17 00:00:00 2001 From: zac Date: Sat, 4 Apr 2020 02:52:48 -0400 Subject: [PATCH 11/39] location whooshing, show location, change icon --- app/views/pages/landing.ejs | 77 ++++++++++++++++++++++++++-------- static/images/logo-marker.png | Bin 4945 -> 15320 bytes 2 files changed, 59 insertions(+), 18 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 90fa27b9..c7499762 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -145,10 +145,11 @@
      +
      • -
      • @@ -318,9 +319,9 @@ container: 'map', style: 'https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json', center: [<%= locals.mapCenter %>], - zoom: 3, + zoom: 2, maxZoom: 4, - customAttribution: 'Marker icon ©iconmonstr', + customAttribution: 'Pin icon ©iconmonstr', hash: true, scrollZoom : false, boxZoom : false, @@ -373,19 +374,13 @@ }); - navigator.geolocation.getCurrentPosition(function(geolocation) { - map.flyTo({ - zoom: 4, - center: [geolocation.coords.longitude, geolocation.coords.latitude], - essential: true - }); - }); + var countries = <%- JSON.stringify(locals.countries) %>; - var geojson = { - type: 'FeatureCollection', - features: [] - }; + var geojson = []; + + + @@ -429,7 +424,7 @@ } function createMarkerObject(key) { - geojson.features.push({ + geojson.push({ type: 'Feature', geometry: { type: 'Point', @@ -443,7 +438,7 @@ } function plotMarker(marker) { - geojson.features.forEach(function(marker) { + geojson.forEach(function(marker) { var el = document.createElement('div'); el.className = 'marker'; new mapboxgl.Marker(el) @@ -461,11 +456,57 @@ Object.keys(countries).forEach(function(key){ createCountryButton(key, container); createMarkerObject(key); - plotMarker(geojson.features[geojson.features.length - 1]); + plotMarker(geojson[geojson.length - 1]); }); + + + + } processCountriesJson(); - + + function getLocation() { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition(showPosition); + } + //whether or not getting the location worked we start cycling countries after 5 seconds + window.setTimeout(function () { + playback(0); + },5000) +} + +function showPosition(position) { + map.flyTo({ + zoom: 4, + center: [position.coords.longitude, position.coords.latitude], + essential: true + }); + + +} + +var currentCountry = document.getElementById("current-country"); +function playback(index) { + currentCountry.innerHTML = "

        "+geojson[index].properties.title+"
        "+geojson[index].properties.domain.split("//")[1].replace("status","status")+"

        "; + +// Animate the map position based on camera properties +map.flyTo({ + zoom: 4, + center: [geojson[index].geometry.coordinates[0], geojson[index].geometry.coordinates[1]], + essential: true + }); + +map.once('moveend', function() { +// Duration the slide is on screen after interaction +window.setTimeout(function() { +// Increment index +index = index + 1 === geojson.length ? 0 : index + 1; +playback(index); +}, 3500); +}); +} + +getLocation() \ No newline at end of file diff --git a/static/images/logo-marker.png b/static/images/logo-marker.png index a0474e125f0c1e6b5512734cdac4ca9ed7219fe0..81368dff9b96e3e491b896de8cdb32118fefb91f 100644 GIT binary patch literal 15320 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 literal 4945 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 Date: Sat, 4 Apr 2020 03:06:58 -0400 Subject: [PATCH 12/39] I've decided to use the browser geolocation. Going from timezone to a lat,long inside that range is a whole project in itself, I think it could maybe be a saas (there are like 10 companies selling the ability to go lat,long->timezone but I couldn't find any in reverse). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I think asking for location is privacy friendly because its opt in. Whether or not we go to the users location, after 5 seconds the map starts cycling through all the websites location on the map. Their name and a third link to them is displayed underneath. Still todo: 1) I need to get accurate lat, long for each country. My numbers are way off. There don't seem to be any data available for this so I will just find them manually tomorrow (I have a map🗺). 2) Where does the About coronastatus button link to? --- app/views/pages/landing.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index c7499762..2f22aa2e 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -149,7 +149,7 @@
        • -
        • From 1a14a3c23ac773490a0d9b49e0ed1ea62134dd74 Mon Sep 17 00:00:00 2001 From: zac Date: Sat, 4 Apr 2020 14:15:34 -0400 Subject: [PATCH 13/39] update first seven countries geoposition --- static/countries.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/static/countries.json b/static/countries.json index f06ae2be..1873ece6 100644 --- a/static/countries.json +++ b/static/countries.json @@ -1,37 +1,37 @@ { "no": { "name": "Norway", - "center": [64.2959,8.7755], + "center": [60.0837, 10.4596], "domain": "https://coronastatus.no/" }, "nl": { "name": "The Netherlands", - "center": [52.1951,3.0367], + "center": [52.0770, 5.2725], "domain": "https://coronastatus.nl/" }, "sk": { "name": "Slovakia", - "center": [48.6543,17.4567], + "center": [48.5920, 18.7996], "domain": "https://coronastatus.sk" }, "dk": { "name": "Denmark", - "center": [56.21285,9.3001], + "center": [55.2697, 10.0582], "domain": "https://coronastatus.dk/" }, "co": { "name": "Colombia", - "center": [4.6098,-83.3857], + "center": [5.1571, -75.2997], "domain": "https://coronastatus.co/" }, "it": { "name": "Italy", - "center": [4.6098,83.3857], + "center": [42.2367, 12.1992], "domain": "https://coronastatus.it/" }, "fr": { "name": "France", - "center": [4.6098,-83.3857], + "center": [46.2378, 2.1338], "domain": "https://coronastatus.fr" }, "mx": { From 1111fde8c019b8964914ee68d4273ec08767c0a7 Mon Sep 17 00:00:00 2001 From: Luke Seelenbinder Date: Sat, 4 Apr 2020 20:41:07 +0200 Subject: [PATCH 14/39] Use custom map theme. --- app/views/pages/landing.ejs | 2 +- static/landing-map-theme.json | 553 ++++++++++++++++++++++++++++++++++ 2 files changed, 554 insertions(+), 1 deletion(-) create mode 100644 static/landing-map-theme.json diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 2f22aa2e..f9ac5794 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -317,7 +317,7 @@ @@ -393,36 +409,42 @@ } } + function jumpToCountryLinks() { + //used by the second Contribute now button under 1. Survey + window.scrollTo(0,0); + toggleCountryLinks(); + document.getElementById("country-links-container").focus(); + } + function createCountryButton(key, container) { var li = document.createElement("li"); - li.classList.add("p-4"); - li.classList.add("whitespace-no-wrap"); - li.classList.add("m-2"); - li.classList.add("md:text-base"); - li.classList.add("text-sm"); - li.classList.add("text-gray-600"); - li.classList.add("hover:text-gray-800"); - li.classList.add("hover:bg-gray-100"); - li.id = key+"-item"; - - var a = document.createElement("a"); - a.classList.add("px-2"); - a.classList.add("py-1"); - a.href = countries[key].domain; - - var span = document.createElement("span"); - span.innerText = countries[key].name; - a.appendChild(span); - - li.style.backgroundImage = "url(static/flags/1x1/"+key+".svg)"; - li.style.backgroundRepeat = "no-repeat"; - - li.append(a); - container.appendChild(li); + li.classList.add("p-4"); + li.classList.add("whitespace-no-wrap"); + li.classList.add("m-2"); + li.classList.add("md:text-base"); + li.classList.add("text-sm"); + li.classList.add("text-gray-600"); + li.classList.add("hover:text-gray-800"); + li.classList.add("hover:bg-gray-100"); + li.id = key+"-item"; + + var a = document.createElement("a"); + a.classList.add("px-2"); + a.classList.add("py-1"); + a.href = countries[key].domain; + + var span = document.createElement("span"); + span.innerText = countries[key].name; + a.appendChild(span); + + li.style.backgroundImage = "url(static/flags/1x1/"+key+".svg)"; + li.style.backgroundRepeat = "no-repeat"; + + li.append(a); + container.appendChild(li); } function createMarkerObject(key) { - console.log(key); geojson.push({ type: 'Feature', geometry: { @@ -443,11 +465,9 @@ el.className = 'marker'; new mapboxgl.Marker(el) .setLngLat(marker.geometry.coordinates) - - .setPopup(new mapboxgl.Popup({ offset: 25 }) // add popups - .setHTML('

          ' + marker.properties.title + '

          ')) - .addTo(map); - + .setPopup(new mapboxgl.Popup({ offset: 25 }) + .setHTML('

          ' + marker.properties.title + '

          ')) + .addTo(map); }); } @@ -458,58 +478,51 @@ createMarkerObject(key); plotMarker(geojson[geojson.length - 1]); }); - - - - } processCountriesJson(); - function getLocation() { - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition(showPosition); - } - //whether or not getting the location worked we start cycling countries after 5 seconds - window.setTimeout(function () { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition(showPosition); + } + //whether or not getting the location worked we start cycling countries after 5 seconds + window.setTimeout(function () { playback(0); },5000) -} + } + + function showPosition(position) { + map.flyTo({ + zoom: 4, + center: [position.coords.longitude, position.coords.latitude], + essential: true + }); + } -function showPosition(position) { + var currentCountry = document.getElementById("current-country"); + function playback(index) { + currentCountry.innerHTML = ""; + map.flyTo({ - zoom: 4, - center: [position.coords.longitude, position.coords.latitude], - essential: true + zoom: 4, + center: [geojson[index].geometry.coordinates[0], geojson[index].geometry.coordinates[1]], + essential: true + }); + map.once('moveend', function() { + window.setTimeout(function() { + index = index + 1 === geojson.length ? 0 : index + 1; + playback(index); + }, 3500); }); - - -} - -var currentCountry = document.getElementById("current-country"); -function playback(index) { - currentCountry.innerHTML = ""; - - - - -// Animate the map position based on camera properties -map.flyTo({ - zoom: 4, - center: [geojson[index].geometry.coordinates[0], geojson[index].geometry.coordinates[1]], - essential: true - }); - -map.once('moveend', function() { -// Duration the slide is on screen after interaction -window.setTimeout(function() { -// Increment index -index = index + 1 === geojson.length ? 0 : index + 1; -playback(index); -}, 3500); -}); -} - -getLocation() + } + getLocation() \ No newline at end of file diff --git a/static/countries.json b/static/countries.json index d69596ac..b2abeded 100644 --- a/static/countries.json +++ b/static/countries.json @@ -36,107 +36,112 @@ }, "mx": { "name": "Mexico", - "center": [4.6098,-83.3857], + "center": [19.9029, -101.3202], "domain": "https://coronastatus.mx" }, "us": { "name": "United States of America (USA)", - "center": [4.6098,-83.3857], + "center": [38.8806, -96.2579], "domain": "https://coronastatus.us" }, "ua": { "name": "Ukraine", - "center": [48.2558,26.6914], + "center": [48.7290, 30.4927], "domain": "https://coronastatus.ua" }, "es": { "name": "Spain", - "center": [40.1301,-8.2033], + "center": [39.5819, -4.2702], "domain": "https://coronastatus.es" }, "br": { "name": "Brazil", - "center": [-13.6602,-69.6791], + "center": [-12.5045, -50.2552], "domain": "https://coronastatus.net.br/" }, "ca": { "name": "Canada", - "center": [-13.6602,69.6791], + "center": [47.2537, -79.8621], "domain": "https://coronastatus.es" }, "au": { "name": "Australia", - "center": [-24.9885,115.1955], + "center": [-23.8739, 133.9817], "domain": "https://coronastatusau.org/" }, "sg": { "name": "Singapore", - "center": [1.3143,103.7041], + "center": [1.3153, 103.7927], "domain": "https://coronastatus.sg/" }, "ar": { "name": "Argentina", - "center": [-37.0560,-81.6327], + "center": [-36.9873, -64.7463], "domain": "https://coronastatus.com.ar" }, "my": { "name": "Malaysia", - "center": [4.1389,105.1200], + "center": [4.9931, 100.9891], "domain": "https://coronastatusmy.org" }, "mt": { "name": "Malta", - "center": [35.9426,14.2382], + "center": [35.9072, 14.3940], "domain": "https://coronastatusmt.com/" }, "cl": { "name": "Chile", - "center": [35.4088,-106.2311], + "center": [-25.1075, -69.6246], "domain": "https://coronastatus.cl/" }, "in": { "name": "India", - "center": [20.7707,73.7214], + "center": [21.8148, 76.9734], "domain": "https://corona-status.in/" }, "pt": { "name": "Portugal", - "center": [36.8983,-27.8261], + "center": [39.0350, -9.1833], "domain": "https://coronastatus.pt/" }, "tr": { "name": "Turkey", - "center": [39.0100,30.6870], + "center": [39.7921, 33.0780], "domain": "https://coronastatustr.com/" }, "lt": { "name": "Lithuania", - "center": [55.1561,21.6408], + "center": [55.4282, 23.8051], "domain": "https://coronastatus.lt/" }, "np": { "name": "Nepal", - "center": [28.3838,81.8862], + "center": [27.7196, 85.5117], "domain": "https://coronastatusnp.com/" }, "cz": { "name": "Czech Republic", - "center": [49.7856,13.2321], + "center": [49.8388, 15.2756], "domain": "https://corona-status.cz/" }, "id": { "name": "Indonesia", - "center": [-2.2760,99.4600], + "center": [-7.3975, 111.2813], "domain": "https://coronastatus.id/" }, "ph": { "name": "Philippines", - "center": [11.5780,113.5793], + "center": [14.5953, 121.3796], "domain": "https://coronastatus.ph/" }, "ng": { "name": "Nigeria", - "center": [9.0173,4.1796], + "center": [9.2234, 7.6952], "domain": "https://coronastatus.ng/" + }, + "ro": { + "name": "Romania", + "center": [46.1221, 25.1062], + "domain": "https://coronastatus.ro/" } } \ No newline at end of file From 6d1771b92454ade5506987bf6899b6c5a063dfb9 Mon Sep 17 00:00:00 2001 From: zac Date: Sat, 4 Apr 2020 23:37:21 -0400 Subject: [PATCH 20/39] cleanup --- app/views/pages/landing.ejs | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 5155d35d..c2c873ab 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -404,6 +404,7 @@ var con = document.getElementById("country-links-container"); if (con.classList.contains("hidden")) { con.classList.remove("hidden"); + } else { con.classList.add("hidden"); } From d69db4cd1bfaf670b976f744719ef910960c5e1f Mon Sep 17 00:00:00 2001 From: zac Date: Sun, 5 Apr 2020 13:49:34 -0400 Subject: [PATCH 21/39] update marker --- static/images/logo-marker.png | Bin 15320 -> 10645 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/static/images/logo-marker.png b/static/images/logo-marker.png index 81368dff9b96e3e491b896de8cdb32118fefb91f..2cf59c574222bddaa47ba609c9d273467badd763 100644 GIT binary patch literal 10645 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 From 59ce71504421ec35a0c2d4543af963c411f10327 Mon Sep 17 00:00:00 2001 From: zac Date: Sun, 5 Apr 2020 15:46:45 -0400 Subject: [PATCH 22/39] pause/play map animation, resize marker icon --- app/views/pages/landing.ejs | 27 ++++++++++++++++++++++++--- static/images/logo-marker.png | Bin 10645 -> 14987 bytes 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index c2c873ab..22c7bbf8 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -74,6 +74,8 @@ width:80%; margin-left: 10%; } + + \ No newline at end of file diff --git a/static/images/logo-marker.png b/static/images/logo-marker.png index 2cf59c574222bddaa47ba609c9d273467badd763..0834d7e94ea9440fb6be6995fb9d11229559fabd 100644 GIT binary patch literal 14987 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 literal 10645 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 Date: Sun, 5 Apr 2020 16:03:35 -0400 Subject: [PATCH 23/39] even out the play/pause bottom margins --- app/views/pages/landing.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 22c7bbf8..774ee02e 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -539,7 +539,7 @@ function toggleAnimation() { if (play) { play = false; - document.getElementById("animation-control").innerHTML = ''; + document.getElementById("animation-control").innerHTML = ''; } else { play = true; document.getElementById("animation-control").innerHTML = ''; From 827b935a3a50a9ab745f2c26b26e96e331044ca3 Mon Sep 17 00:00:00 2001 From: zac Date: Mon, 6 Apr 2020 00:22:09 -0400 Subject: [PATCH 24/39] added python script to build static/countries.json --- app/domain/urls.ts | 1 + app/views/pages/landing.ejs | 52 +++++++------ countries.test.json | 1 + genCountries.py | 53 +++++++++++++ static/countries.json | 148 +----------------------------------- textCountries.json | 0 6 files changed, 84 insertions(+), 171 deletions(-) create mode 100644 countries.test.json create mode 100644 genCountries.py create mode 100644 textCountries.json diff --git a/app/domain/urls.ts b/app/domain/urls.ts index ef3111ec..03dc629c 100644 --- a/app/domain/urls.ts +++ b/app/domain/urls.ts @@ -44,6 +44,7 @@ interface CountrySpecificUrls { apiDocs: string; statistics: string; limit: string; + landing: string; } type Urls = { diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 774ee02e..cde3b300 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -424,7 +424,7 @@ document.getElementById("country-links-container").focus(); } - function createCountryButton(key, container) { + function createCountryButton(i, container) { var li = document.createElement("li"); li.classList.add("p-4"); li.classList.add("whitespace-no-wrap"); @@ -434,26 +434,30 @@ li.classList.add("text-gray-600"); li.classList.add("hover:text-gray-800"); li.classList.add("hover:bg-gray-100"); - li.id = key+"-item"; + li.id = i+"-item"; var a = document.createElement("a"); a.classList.add("px-2"); a.classList.add("py-1"); - a.href = countries[key].domain; + a.href = countries[i].BASE_URL; var span = document.createElement("span"); - span.innerText = countries[key].name; + span.innerText = countries[i].COUNTRY_NAME; a.appendChild(span); - li.style.backgroundImage = "url(static/flags/1x1/"+key+".svg)"; + li.style.backgroundImage = "url(static/flags/1x1/"+countries[i].COUNTRY_CODE+".svg)"; li.style.backgroundRepeat = "no-repeat"; li.append(a); container.appendChild(li); } - function createMarkerObject(key) { - geojson.push({ + function createMarkerObject(i) { + countries[i].flag = 'static/flags/1x1/'+countries[i].COUNTRY_CODE+'.svg' + center = countries[i].MAP_CENTER.split(",") + countries[i].MAP_CENTER = center; + //countries[i].center = center + /* geojson.push({ type: 'Feature', geometry: { type: 'Point', @@ -464,28 +468,28 @@ domain: countries[key].domain, flag: 'static/flags/1x1/'+key+'.svg' } - }); + }); */ } - function plotMarker(marker) { - geojson.forEach(function(marker) { + function plotMarkers() { + countries.forEach(function(country) { var el = document.createElement('div'); el.className = 'marker'; new mapboxgl.Marker(el) - .setLngLat(marker.geometry.coordinates) + .setLngLat(country.MAP_CENTER) .setPopup(new mapboxgl.Popup({ offset: 25 }) - .setHTML('

          ' + marker.properties.title + '

          ')) + .setHTML('

          ' + country.COUNTRY_NAME + '

          ')) .addTo(map); }); } function processCountriesJson () { var container = document.getElementById("country-links-container"); - Object.keys(countries).forEach(function(key){ - createCountryButton(key, container); - createMarkerObject(key); - plotMarker(geojson[geojson.length - 1]); - }); + for (i = 0; i < countries.length; i++){ + createCountryButton(i, container); + createMarkerObject(i); + }; + plotMarkers(); } processCountriesJson(); @@ -511,23 +515,23 @@ var play = true; function playback(index) { currentCountry.innerHTML = ""; map.flyTo({ zoom: 4, - center: [geojson[index].geometry.coordinates[0], geojson[index].geometry.coordinates[1]], + center: countries[index].MAP_CENTER, essential: true }); map.once('moveend', function() { window.setTimeout(function() { - index = index + 1 === geojson.length ? 0 : index + 1; + index = index + 1 === countries.length ? 0 : index + 1; if (play) { playback(index); } @@ -543,7 +547,7 @@ } else { play = true; document.getElementById("animation-control").innerHTML = ''; - playback(Math.floor(Math.random() * geojson.length)); + playback(Math.floor(Math.random() * countries.length)); } } diff --git a/countries.test.json b/countries.test.json new file mode 100644 index 00000000..83c5dd7d --- /dev/null +++ b/countries.test.json @@ -0,0 +1 @@ +[{"BASE_URL": "coronastatus.sk", "COUNTRY_CODE": "sk", "MAP_CENTER": "19.2688, 48.7269", "COUNTRY_NAME": "Slovensku"},{"BASE_URL": "coronastatus.se", "COUNTRY_CODE": "se", "MAP_CENTER": "16.177382, 62.421176", "COUNTRY_NAME": "Sverige"},{"BASE_URL": "coronastatus.us", "COUNTRY_CODE": "us", "MAP_CENTER": "-113.6829028, 36.2167248", "COUNTRY_NAME": "The United States"},{"BASE_URL": "coronastatus.org.ua", "COUNTRY_CODE": "ua", "MAP_CENTER": "48.379433, 31.165581", "COUNTRY_NAME": "України"},{"BASE_URL": "coronastatusmt.com", "COUNTRY_CODE": "mt", "MAP_CENTER": "14.3582, 35.9401", "COUNTRY_NAME": "Malta"},{"BASE_URL": "coronastatus.ng", "COUNTRY_CODE": "ng", "MAP_CENTER": "9.077751, 8.6774567", "COUNTRY_NAME": "Nigeria"},{"BASE_URL": "coronastatus.no", "COUNTRY_CODE": "no", "MAP_CENTER": "10.7522, 63.9139", "COUNTRY_NAME": "Norge"},{"BASE_URL": "coronastatusbd.com", "COUNTRY_CODE": "bd", "MAP_CENTER": "90.132953, 23.993410", "COUNTRY_NAME": "বাংলাদেশ"},{"BASE_URL": "corona-status.in", "COUNTRY_CODE": "in", "MAP_CENTER": "73.706197, 20.7699369", "COUNTRY_NAME": "India"},{"BASE_URL": "coronastatus.co", "COUNTRY_CODE": "co", "MAP_CENTER": "5.046, -73.575", "COUNTRY_NAME": "Colombia"},{"BASE_URL": "coronastatus.it", "COUNTRY_CODE": "it", "MAP_CENTER": "8.2126042, 41.2114557", "COUNTRY_NAME": "Italia"},{"BASE_URL": "coronastatus.ca", "COUNTRY_CODE": "ca", "MAP_CENTER": "-95.9, 60.49", "COUNTRY_NAME": "Canada"},{"BASE_URL": "corona-status.cz", "COUNTRY_CODE": "cz", "MAP_CENTER": "15.4749126, 49.8037633", "COUNTRY_NAME": "Česká Republika"},{"BASE_URL": "coronastatus.ro", "COUNTRY_CODE": "ro", "MAP_CENTER": "22.7775903,45.9199635", "COUNTRY_NAME": "Romania"},{"BASE_URL": "coronastatus.pt", "COUNTRY_CODE": "pt", "MAP_CENTER": "-27.8092509,36.8819358", "COUNTRY_NAME": "Portugal"},{"BASE_URL": "coronastatus.sg", "COUNTRY_CODE": "sg", "MAP_CENTER": "103.8198, 1.3520", "COUNTRY_NAME": "Singapore"},{"BASE_URL": "coronastatus.ph", "COUNTRY_CODE": "ph", "MAP_CENTER": "121.7740173, 12.8797207", "COUNTRY_NAME": "Philippines"},{"BASE_URL": "coronastatusmy.org", "COUNTRY_CODE": "my", "MAP_CENTER": "101.9757, 4.2104", "COUNTRY_NAME": "Malaysia"},{"BASE_URL": "coronastatus.com.ar", "COUNTRY_CODE": "ar", "MAP_CENTER": "-40.28, -67.77", "COUNTRY_NAME": "Argentina"},{"BASE_URL": "coronastatusau.org", "COUNTRY_CODE": "au", "MAP_CENTER": "133.77, -25.27", "COUNTRY_NAME": "Australia"},{"BASE_URL": "coronastatus.nl", "COUNTRY_CODE": "nl", "MAP_CENTER": "5.2793, 52.2129", "COUNTRY_NAME": "Nederland"},{"BASE_URL": "coronastatusnp.com", "COUNTRY_CODE": "np", "MAP_CENTER": "85.2911132, 27.7090319", "COUNTRY_NAME": "Nepal"},{"BASE_URL": "coronastatus.mx", "COUNTRY_CODE": "mx", "MAP_CENTER": "-100.479, 27.0781", "COUNTRY_NAME": "México"},{"BASE_URL": "coronastatus.de", "COUNTRY_CODE": "de", "MAP_CENTER": "10.517304, 51.117540", "COUNTRY_NAME": "Deutschland"},{"BASE_URL": "coronastatus.dk", "COUNTRY_CODE": "dk", "MAP_CENTER": "10.399100, 55.463329", "COUNTRY_NAME": "Danmark"},{"BASE_URL": "coronastatus.net.br", "COUNTRY_CODE": "br", "MAP_CENTER": "-47.05, -15.47", "COUNTRY_NAME": "Brasil"},{"BASE_URL": "coronastatus.id", "COUNTRY_CODE": "id", "MAP_CENTER": "106.845, -6.214", "COUNTRY_NAME": "Indonesia"},{"BASE_URL": "coronastatus.fr", "COUNTRY_CODE": "fr", "MAP_CENTER": "2.5582, 48.9236", "COUNTRY_NAME": "France"},{"BASE_URL": "coronastatus.es", "COUNTRY_CODE": "es", "MAP_CENTER": "-8.2011537, 40.1217673", "COUNTRY_NAME": "España"},{"BASE_URL": "coronastatus.co.uk", "COUNTRY_CODE": "en", "MAP_CENTER": "51.505485, -0.111218", "COUNTRY_NAME": "The United Kingdom"},{"BASE_URL": "coronastatus.lt", "COUNTRY_CODE": "lt", "MAP_CENTER": "55.1735998, 23.8948016", "COUNTRY_NAME": "Lietuvai"},{"BASE_URL": "coronastatus.cl", "COUNTRY_CODE": "cl", "MAP_CENTER": "-33.4706, -70.6368", "COUNTRY_NAME": "Chile"},{"BASE_URL": "coronastatustr.com", "COUNTRY_CODE": "tr", "MAP_CENTER": "39.0100,30.6885", "COUNTRY_NAME": "Türkiye"}] \ No newline at end of file diff --git a/genCountries.py b/genCountries.py new file mode 100644 index 00000000..36e41d93 --- /dev/null +++ b/genCountries.py @@ -0,0 +1,53 @@ +import os + +def findVarsInFiles(filePath, object, matches): + with open(filePath) as file: + for line in file.readlines(): + for match in matches: + ifFoundSet(country, match, line) + +def ifFoundSet(object, match, line): + if match in line: + values = line.split("'") + object[match] = values[1] + + +def deleteIfExists(fileName): + if (os.path.isfile(fileName)): + os.remove(fileName) + + +countriesFilePath = "./static/countries.json" +basePath = "./app/countrySpecific/" + +#delete the file if it exists so we can start fresh +deleteIfExists(countriesFilePath) + +for (_, dirnames, _) in os.walk(basePath): + countries = {} + file = open(countriesFilePath, "a") + file.write("[") + file.close() + index = 0 + for dir in dirnames: + country = {} + + config = basePath+dir+"/config.ts" + findVarsInFiles(config, country, ["BASE_URL", "COUNTRY_CODE", "MAP_CENTER"]) + textVariables = basePath+dir+"/text-variables.ts" + findVarsInFiles(textVariables, country, ["COUNTRY_NAME"]) + + file = open(countriesFilePath, "a") + file.write(str(country).replace("'",'"')+",") + file.close() + + #remove trailing commma + file = open(countriesFilePath, "r") + lines = file.read() + lines = lines[:-1] + file.close() + file = open(countriesFilePath, "w") + file.write(lines+"]") + file.close() + break + diff --git a/static/countries.json b/static/countries.json index b2abeded..bf39647d 100644 --- a/static/countries.json +++ b/static/countries.json @@ -1,147 +1 @@ -{ - "no": { - "name": "Norway", - "center": [60.0837, 10.4596], - "domain": "https://coronastatus.no/" - }, - "nl": { - "name": "The Netherlands", - "center": [52.0770, 5.2725], - "domain": "https://coronastatus.nl/" - }, - "sk": { - "name": "Slovakia", - "center": [48.5920, 18.7996], - "domain": "https://coronastatus.sk" - }, - "dk": { - "name": "Denmark", - "center": [55.2697, 10.0582], - "domain": "https://coronastatus.dk/" - }, - "co": { - "name": "Colombia", - "center": [5.1571, -75.2997], - "domain": "https://coronastatus.co/" - }, - "it": { - "name": "Italy", - "center": [42.2367, 12.1992], - "domain": "https://coronastatus.it/" - }, - "fr": { - "name": "France", - "center": [46.2378, 2.1338], - "domain": "https://coronastatus.fr" - }, - "mx": { - "name": "Mexico", - "center": [19.9029, -101.3202], - "domain": "https://coronastatus.mx" - }, - "us": { - "name": "United States of America (USA)", - "center": [38.8806, -96.2579], - "domain": "https://coronastatus.us" - }, - "ua": { - "name": "Ukraine", - "center": [48.7290, 30.4927], - "domain": "https://coronastatus.ua" - }, - "es": { - "name": "Spain", - "center": [39.5819, -4.2702], - "domain": "https://coronastatus.es" - }, - "br": { - "name": "Brazil", - "center": [-12.5045, -50.2552], - "domain": "https://coronastatus.net.br/" - }, - "ca": { - "name": "Canada", - "center": [47.2537, -79.8621], - "domain": "https://coronastatus.es" - }, - "au": { - "name": "Australia", - "center": [-23.8739, 133.9817], - "domain": "https://coronastatusau.org/" - }, - "sg": { - "name": "Singapore", - "center": [1.3153, 103.7927], - "domain": "https://coronastatus.sg/" - }, - "ar": { - "name": "Argentina", - "center": [-36.9873, -64.7463], - "domain": "https://coronastatus.com.ar" - }, - "my": { - "name": "Malaysia", - "center": [4.9931, 100.9891], - "domain": "https://coronastatusmy.org" - }, - "mt": { - "name": "Malta", - "center": [35.9072, 14.3940], - "domain": "https://coronastatusmt.com/" - }, - "cl": { - "name": "Chile", - "center": [-25.1075, -69.6246], - "domain": "https://coronastatus.cl/" - }, - "in": { - "name": "India", - "center": [21.8148, 76.9734], - "domain": "https://corona-status.in/" - }, - "pt": { - "name": "Portugal", - "center": [39.0350, -9.1833], - "domain": "https://coronastatus.pt/" - }, - "tr": { - "name": "Turkey", - "center": [39.7921, 33.0780], - "domain": "https://coronastatustr.com/" - }, - "lt": { - "name": "Lithuania", - "center": [55.4282, 23.8051], - "domain": "https://coronastatus.lt/" - }, - "np": { - "name": "Nepal", - "center": [27.7196, 85.5117], - "domain": "https://coronastatusnp.com/" - }, - "cz": { - "name": "Czech Republic", - "center": [49.8388, 15.2756], - "domain": "https://corona-status.cz/" - }, - "id": { - "name": "Indonesia", - "center": [-7.3975, 111.2813], - "domain": "https://coronastatus.id/" - }, - "ph": { - "name": "Philippines", - "center": [14.5953, 121.3796], - "domain": "https://coronastatus.ph/" - }, - "ng": { - "name": "Nigeria", - "center": [9.2234, 7.6952], - "domain": "https://coronastatus.ng/" - }, - "ro": { - "name": "Romania", - "center": [46.1221, 25.1062], - "domain": "https://coronastatus.ro/" - } -} \ No newline at end of file +[{"BASE_URL": "coronastatus.sk", "COUNTRY_CODE": "sk", "MAP_CENTER": "19.2688, 48.7269", "COUNTRY_NAME": "Slovensku"},{"BASE_URL": "coronastatus.se", "COUNTRY_CODE": "se", "MAP_CENTER": "16.177382, 62.421176", "COUNTRY_NAME": "Sverige"},{"BASE_URL": "coronastatus.us", "COUNTRY_CODE": "us", "MAP_CENTER": "-113.6829028, 36.2167248", "COUNTRY_NAME": "The United States"},{"BASE_URL": "coronastatus.org.ua", "COUNTRY_CODE": "ua", "MAP_CENTER": "48.379433, 31.165581", "COUNTRY_NAME": "України"},{"BASE_URL": "coronastatusmt.com", "COUNTRY_CODE": "mt", "MAP_CENTER": "14.3582, 35.9401", "COUNTRY_NAME": "Malta"},{"BASE_URL": "coronastatus.ng", "COUNTRY_CODE": "ng", "MAP_CENTER": "9.077751, 8.6774567", "COUNTRY_NAME": "Nigeria"},{"BASE_URL": "coronastatus.no", "COUNTRY_CODE": "no", "MAP_CENTER": "10.7522, 63.9139", "COUNTRY_NAME": "Norge"},{"BASE_URL": "coronastatusbd.com", "COUNTRY_CODE": "bd", "MAP_CENTER": "90.132953, 23.993410", "COUNTRY_NAME": "বাংলাদেশ"},{"BASE_URL": "corona-status.in", "COUNTRY_CODE": "in", "MAP_CENTER": "73.706197, 20.7699369", "COUNTRY_NAME": "India"},{"BASE_URL": "coronastatus.co", "COUNTRY_CODE": "co", "MAP_CENTER": "5.046, -73.575", "COUNTRY_NAME": "Colombia"},{"BASE_URL": "coronastatus.it", "COUNTRY_CODE": "it", "MAP_CENTER": "8.2126042, 41.2114557", "COUNTRY_NAME": "Italia"},{"BASE_URL": "coronastatus.ca", "COUNTRY_CODE": "ca", "MAP_CENTER": "-95.9, 60.49", "COUNTRY_NAME": "Canada"},{"BASE_URL": "corona-status.cz", "COUNTRY_CODE": "cz", "MAP_CENTER": "15.4749126, 49.8037633", "COUNTRY_NAME": "Česká Republika"},{"BASE_URL": "coronastatus.ro", "COUNTRY_CODE": "ro", "MAP_CENTER": "22.7775903,45.9199635", "COUNTRY_NAME": "Romania"},{"BASE_URL": "coronastatus.pt", "COUNTRY_CODE": "pt", "MAP_CENTER": "-27.8092509,36.8819358", "COUNTRY_NAME": "Portugal"},{"BASE_URL": "coronastatus.sg", "COUNTRY_CODE": "sg", "MAP_CENTER": "103.8198, 1.3520", "COUNTRY_NAME": "Singapore"},{"BASE_URL": "coronastatus.ph", "COUNTRY_CODE": "ph", "MAP_CENTER": "121.7740173, 12.8797207", "COUNTRY_NAME": "Philippines"},{"BASE_URL": "coronastatusmy.org", "COUNTRY_CODE": "my", "MAP_CENTER": "101.9757, 4.2104", "COUNTRY_NAME": "Malaysia"},{"BASE_URL": "coronastatus.com.ar", "COUNTRY_CODE": "ar", "MAP_CENTER": "-40.28, -67.77", "COUNTRY_NAME": "Argentina"},{"BASE_URL": "coronastatusau.org", "COUNTRY_CODE": "au", "MAP_CENTER": "133.77, -25.27", "COUNTRY_NAME": "Australia"},{"BASE_URL": "coronastatus.nl", "COUNTRY_CODE": "nl", "MAP_CENTER": "5.2793, 52.2129", "COUNTRY_NAME": "Nederland"},{"BASE_URL": "coronastatusnp.com", "COUNTRY_CODE": "np", "MAP_CENTER": "85.2911132, 27.7090319", "COUNTRY_NAME": "Nepal"},{"BASE_URL": "coronastatus.mx", "COUNTRY_CODE": "mx", "MAP_CENTER": "-100.479, 27.0781", "COUNTRY_NAME": "México"},{"BASE_URL": "coronastatus.de", "COUNTRY_CODE": "de", "MAP_CENTER": "10.517304, 51.117540", "COUNTRY_NAME": "Deutschland"},{"BASE_URL": "coronastatus.dk", "COUNTRY_CODE": "dk", "MAP_CENTER": "10.399100, 55.463329", "COUNTRY_NAME": "Danmark"},{"BASE_URL": "coronastatus.net.br", "COUNTRY_CODE": "br", "MAP_CENTER": "-47.05, -15.47", "COUNTRY_NAME": "Brasil"},{"BASE_URL": "coronastatus.id", "COUNTRY_CODE": "id", "MAP_CENTER": "106.845, -6.214", "COUNTRY_NAME": "Indonesia"},{"BASE_URL": "coronastatus.fr", "COUNTRY_CODE": "fr", "MAP_CENTER": "2.5582, 48.9236", "COUNTRY_NAME": "France"},{"BASE_URL": "coronastatus.es", "COUNTRY_CODE": "es", "MAP_CENTER": "-8.2011537, 40.1217673", "COUNTRY_NAME": "España"},{"BASE_URL": "coronastatus.co.uk", "COUNTRY_CODE": "en", "MAP_CENTER": "-1.451602, 52.198167", "COUNTRY_NAME": "The United Kingdom"},{"BASE_URL": "coronastatus.lt", "COUNTRY_CODE": "lt", "MAP_CENTER": "55.1735998, 23.8948016", "COUNTRY_NAME": "Lietuvai"},{"BASE_URL": "coronastatus.cl", "COUNTRY_CODE": "cl", "MAP_CENTER": "-33.4706, -70.6368", "COUNTRY_NAME": "Chile"},{"BASE_URL": "coronastatustr.com", "COUNTRY_CODE": "tr", "MAP_CENTER": "39.0100,30.6885", "COUNTRY_NAME": "Türkiye"}] \ No newline at end of file diff --git a/textCountries.json b/textCountries.json new file mode 100644 index 00000000..e69de29b From db962700b330c4d49d04897fec01b47c9e5968b0 Mon Sep 17 00:00:00 2001 From: Eirik Fosse Date: Mon, 6 Apr 2020 10:44:14 +0200 Subject: [PATCH 25/39] fix wrong coordinates and split it into a lat/lng object instead --- app/config.ts | 3 --- app/countrySpecific/ar/config.ts | 5 ++++- app/countrySpecific/au/config.ts | 5 ++++- app/countrySpecific/bd/config.ts | 5 ++++- app/countrySpecific/br/config.ts | 5 ++++- app/countrySpecific/ca/config.ts | 5 ++++- app/countrySpecific/cl/config.ts | 5 ++++- app/countrySpecific/co/config.ts | 7 +++++-- app/countrySpecific/cz/config.ts | 5 ++++- app/countrySpecific/de/config.ts | 9 ++++++--- app/countrySpecific/dk/config.ts | 5 ++++- app/countrySpecific/en/config.ts | 5 ++++- app/countrySpecific/es/config.ts | 5 ++++- app/countrySpecific/fr/config.ts | 7 +++++-- app/countrySpecific/id/config.ts | 7 +++++-- app/countrySpecific/in/config.ts | 5 ++++- app/countrySpecific/it/config.ts | 5 ++++- app/countrySpecific/lt/config.ts | 7 +++++-- app/countrySpecific/mt/config.ts | 5 ++++- app/countrySpecific/mx/config.ts | 7 +++++-- app/countrySpecific/my/config.ts | 5 ++++- app/countrySpecific/ng/config.ts | 5 ++++- app/countrySpecific/nl/config.ts | 5 ++++- app/countrySpecific/no/config.ts | 5 ++++- app/countrySpecific/np/config.ts | 5 ++++- app/countrySpecific/ph/config.ts | 5 ++++- app/countrySpecific/pt/config.ts | 5 ++++- app/countrySpecific/ro/config.ts | 7 +++++-- app/countrySpecific/se/config.ts | 5 ++++- app/countrySpecific/sg/config.ts | 5 ++++- app/countrySpecific/sk/config.ts | 7 +++++-- app/countrySpecific/tr/config.ts | 7 +++++-- app/countrySpecific/ua/config.ts | 5 ++++- app/countrySpecific/us/config.ts | 5 ++++- app/domain/types.ts | 2 +- app/views/pages/map.ejs | 2 +- 36 files changed, 144 insertions(+), 48 deletions(-) diff --git a/app/config.ts b/app/config.ts index ba7d7705..80a11fac 100644 --- a/app/config.ts +++ b/app/config.ts @@ -20,9 +20,6 @@ if (process.env.DB_PATH) { if (process.env.LOCALE) { configOverrides.LOCALE = process.env.LOCALE as Locale; } -if (process.env.MAP_CENTER) { - configOverrides.MAP_CENTER = process.env.MAP_CENTER; -} if (process.env.MAP_MAX_ZOOM) { configOverrides.MAP_ZOOM = parseInt(process.env.MAP_MAX_ZOOM, 10); } diff --git a/app/countrySpecific/ar/config.ts b/app/countrySpecific/ar/config.ts index a9c2c9d1..97e6ad05 100644 --- a/app/countrySpecific/ar/config.ts +++ b/app/countrySpecific/ar/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'ar', DB_PATH: './covid_db', LOCALE: 'es-AR', - MAP_CENTER: '-40.28, -67.77', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: -35.43, + lon: -63.77 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 3, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/au/config.ts b/app/countrySpecific/au/config.ts index f2b3f2b6..0b7837ee 100644 --- a/app/countrySpecific/au/config.ts +++ b/app/countrySpecific/au/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'au', DB_PATH: './covid_db', LOCALE: 'en-AU', - MAP_CENTER: '133.77, -25.27', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: -25.27, + lon: 133.77 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/bd/config.ts b/app/countrySpecific/bd/config.ts index 8cd2d3fa..9bc568c2 100644 --- a/app/countrySpecific/bd/config.ts +++ b/app/countrySpecific/bd/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'bd', DB_PATH: './covid_db', LOCALE: 'bd', - MAP_CENTER: '90.132953, 23.993410', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 23.98, + lon: 90.01 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/br/config.ts b/app/countrySpecific/br/config.ts index df46566b..3e5668d5 100644 --- a/app/countrySpecific/br/config.ts +++ b/app/countrySpecific/br/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'br', DB_PATH: './covid_db', LOCALE: 'pt-BR', - MAP_CENTER: '-47.05, -15.47', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: -15.47, + lon: -47.05 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/ca/config.ts b/app/countrySpecific/ca/config.ts index a4849a73..b665fef8 100644 --- a/app/countrySpecific/ca/config.ts +++ b/app/countrySpecific/ca/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'ca', DB_PATH: './covid_db', LOCALE: 'en-CA', - MAP_CENTER: '-95.9, 60.49', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 60.49, + lon: -95.9 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 3, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/cl/config.ts b/app/countrySpecific/cl/config.ts index 8c6d8d46..3305c1b8 100644 --- a/app/countrySpecific/cl/config.ts +++ b/app/countrySpecific/cl/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'cl', DB_PATH: './covid_db', LOCALE: 'es-CL', - MAP_CENTER: '-33.4706, -70.6368', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: -33.47, + lon: -70.64 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/co/config.ts b/app/countrySpecific/co/config.ts index 1a4fcbfc..dbb723b0 100644 --- a/app/countrySpecific/co/config.ts +++ b/app/countrySpecific/co/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'co', DB_PATH: './covid_db', LOCALE: 'es-CO', - MAP_CENTER: '5.046, -73.575', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 5.05, + lon: -73.57 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 4, + MAP_ZOOM: 5, PASSCODE_LENGTH: 3, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/cz/config.ts b/app/countrySpecific/cz/config.ts index 170a1e06..866077c4 100644 --- a/app/countrySpecific/cz/config.ts +++ b/app/countrySpecific/cz/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'cz', DB_PATH: './covid_db', LOCALE: 'cs-CZ', - MAP_CENTER: '15.4749126, 49.8037633', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 49.8, + lon: 15.47 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 7, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/de/config.ts b/app/countrySpecific/de/config.ts index ecdccd2e..ee935618 100644 --- a/app/countrySpecific/de/config.ts +++ b/app/countrySpecific/de/config.ts @@ -4,15 +4,18 @@ export const countrySpecificConfig: Config = { BASE_URL: 'coronastatus.de', COUNTRY_CODE: 'de', DB_PATH: './covid_db', - LOCALE: 'de', - MAP_CENTER: '10.517304, 51.117540', // NB! Lat/lng is opposite of what you find on Google Maps + LOCALE: 'de-DE', + MAP_CENTER: { + lat: 51.12, + lon: 10.52 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 4, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting REDIRECT_TO_GOVERNMENT: false, - SUPPORTED_LOCALES: ['de'], + SUPPORTED_LOCALES: ['de-DE'], THOUSAND_SEPARATOR: '.', ZIP_GUIDE: false, ZIP_PATTERN: '[0-9]{5}', diff --git a/app/countrySpecific/dk/config.ts b/app/countrySpecific/dk/config.ts index c740dd7e..3ea6e8d7 100644 --- a/app/countrySpecific/dk/config.ts +++ b/app/countrySpecific/dk/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'dk', DB_PATH: './covid_db', LOCALE: 'dk', - MAP_CENTER: '10.399100, 55.463329', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 55.46, + lon: 10.4 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/en/config.ts b/app/countrySpecific/en/config.ts index c11dcb0f..4b932d10 100644 --- a/app/countrySpecific/en/config.ts +++ b/app/countrySpecific/en/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'en', DB_PATH: './covid_db', LOCALE: 'en', - MAP_CENTER: '51.505485, -0.111218', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 51.51, + lon: -0.11 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/es/config.ts b/app/countrySpecific/es/config.ts index 544ee6c5..bc937660 100644 --- a/app/countrySpecific/es/config.ts +++ b/app/countrySpecific/es/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'es', DB_PATH: './covid_db', LOCALE: 'es-ES', - MAP_CENTER: '-8.2011537, 40.1217673', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 40.12, + lon: -8.2 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/fr/config.ts b/app/countrySpecific/fr/config.ts index 2587d6e7..261cc92a 100644 --- a/app/countrySpecific/fr/config.ts +++ b/app/countrySpecific/fr/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'fr', DB_PATH: './covid_db', LOCALE: 'fr-FR', - MAP_CENTER: '2.5582, 48.9236', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 48.92, + lon: 2.56 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 3, + MAP_ZOOM: 4, PASSCODE_LENGTH: 4, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/id/config.ts b/app/countrySpecific/id/config.ts index 910d4414..9f128f7d 100644 --- a/app/countrySpecific/id/config.ts +++ b/app/countrySpecific/id/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'id', DB_PATH: './covid_db', LOCALE: 'id-ID', - MAP_CENTER: '106.845, -6.214', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: -3.9, + lon: 119.83 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 5, + MAP_ZOOM: 4, PASSCODE_LENGTH: 4, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/in/config.ts b/app/countrySpecific/in/config.ts index b3966460..728154e7 100644 --- a/app/countrySpecific/in/config.ts +++ b/app/countrySpecific/in/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'in', DB_PATH: './covid_db', LOCALE: 'en-IN', - MAP_CENTER: '73.706197, 20.7699369', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 20.77, + lon: 73.71 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/it/config.ts b/app/countrySpecific/it/config.ts index 1108477a..ee215bc0 100644 --- a/app/countrySpecific/it/config.ts +++ b/app/countrySpecific/it/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'it', DB_PATH: './covid_db', LOCALE: 'it', - MAP_CENTER: '8.2126042, 41.2114557', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 42.75, + lon: 11.45 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/lt/config.ts b/app/countrySpecific/lt/config.ts index e05683ac..402c762e 100644 --- a/app/countrySpecific/lt/config.ts +++ b/app/countrySpecific/lt/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'lt', DB_PATH: './covid_db', LOCALE: 'lt', - MAP_CENTER: '55.1735998, 23.8948016', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 55.17, + lon: 23.89 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 4, + MAP_ZOOM: 5, PASSCODE_LENGTH: 3, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/mt/config.ts b/app/countrySpecific/mt/config.ts index 165cbdb2..68d7ff5c 100644 --- a/app/countrySpecific/mt/config.ts +++ b/app/countrySpecific/mt/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'mt', DB_PATH: './covid_db', LOCALE: 'en-MT', - MAP_CENTER: '14.3582, 35.9401', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 35.94, + lon: 14.36 + }, MAP_MAX_ZOOM: 14, MAP_ZOOM: 10, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/mx/config.ts b/app/countrySpecific/mx/config.ts index 84608a6b..6029f3d6 100644 --- a/app/countrySpecific/mx/config.ts +++ b/app/countrySpecific/mx/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'mx', DB_PATH: './covid_db', LOCALE: 'es-MX', - MAP_CENTER: '-100.479, 27.0781', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 27.08, + lon: -100.48 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 5, + MAP_ZOOM: 4, PASSCODE_LENGTH: 4, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/my/config.ts b/app/countrySpecific/my/config.ts index edd0caa2..13b48bab 100644 --- a/app/countrySpecific/my/config.ts +++ b/app/countrySpecific/my/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'my', DB_PATH: './covid_db', LOCALE: 'ms-MY', - MAP_CENTER: '101.9757, 4.2104', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 4.21, + lon: 101.98 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/ng/config.ts b/app/countrySpecific/ng/config.ts index 5cf3b39b..5b2566ba 100644 --- a/app/countrySpecific/ng/config.ts +++ b/app/countrySpecific/ng/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'ng', DB_PATH: './covid_db', LOCALE: 'en-NG', - MAP_CENTER: '9.077751, 8.6774567', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 8.68, + lon: 9.08 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 6, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/nl/config.ts b/app/countrySpecific/nl/config.ts index 6f428ade..8ff0a42b 100644 --- a/app/countrySpecific/nl/config.ts +++ b/app/countrySpecific/nl/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'nl', DB_PATH: './covid_db', LOCALE: 'nl', - MAP_CENTER: '5.2793, 52.2129', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 52.21, + lon: 5.28 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 7, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/no/config.ts b/app/countrySpecific/no/config.ts index bda1c73a..8e4bd5c2 100644 --- a/app/countrySpecific/no/config.ts +++ b/app/countrySpecific/no/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'no', DB_PATH: './covid_db', LOCALE: 'no', - MAP_CENTER: '10.7522, 63.9139', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 63.91, + lon: 10.75 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/np/config.ts b/app/countrySpecific/np/config.ts index 1853b355..1bff0ed9 100644 --- a/app/countrySpecific/np/config.ts +++ b/app/countrySpecific/np/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'np', DB_PATH: './covid_db', LOCALE: 'ne', - MAP_CENTER: '85.2911132, 27.7090319', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 27.71, + lon: 85.29 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/ph/config.ts b/app/countrySpecific/ph/config.ts index 1fcc8b6a..00707095 100644 --- a/app/countrySpecific/ph/config.ts +++ b/app/countrySpecific/ph/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'ph', DB_PATH: './covid_db', LOCALE: 'en-PH', - MAP_CENTER: '121.7740173, 12.8797207', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 12.88, + lon: 121.77 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/pt/config.ts b/app/countrySpecific/pt/config.ts index 852eb62a..27a12af1 100644 --- a/app/countrySpecific/pt/config.ts +++ b/app/countrySpecific/pt/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'pt', DB_PATH: './covid_db', LOCALE: 'pt-PT', - MAP_CENTER: '-27.8092509,36.8819358', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 38.78, + lon: -9.41 + }, MAP_MAX_ZOOM: 10, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/ro/config.ts b/app/countrySpecific/ro/config.ts index 33fb2699..f22689b1 100644 --- a/app/countrySpecific/ro/config.ts +++ b/app/countrySpecific/ro/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'ro', DB_PATH: './covid_db', LOCALE: 'ro-RO', - MAP_CENTER: '22.7775903,45.9199635', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 45.92, + lon: 22.78 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 6, + MAP_ZOOM: 5, PASSCODE_LENGTH: 3, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/se/config.ts b/app/countrySpecific/se/config.ts index 3bb6a2b2..3a202eb2 100644 --- a/app/countrySpecific/se/config.ts +++ b/app/countrySpecific/se/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'se', DB_PATH: './covid_db', LOCALE: 'se', - MAP_CENTER: '16.177382, 62.421176', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 62.42, + lon: 16.18 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 3, diff --git a/app/countrySpecific/sg/config.ts b/app/countrySpecific/sg/config.ts index 0112119f..06c04b6b 100644 --- a/app/countrySpecific/sg/config.ts +++ b/app/countrySpecific/sg/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'sg', DB_PATH: './covid_db', LOCALE: 'en-SG', - MAP_CENTER: '103.8198, 1.3520', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 1.35, + lon: 103.82 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 4, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/sk/config.ts b/app/countrySpecific/sk/config.ts index e4bc5560..34ff1e31 100644 --- a/app/countrySpecific/sk/config.ts +++ b/app/countrySpecific/sk/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'sk', DB_PATH: './covid_db', LOCALE: 'sk', - MAP_CENTER: '19.2688, 48.7269', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 48.73, + lon: 19.27 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 7, + MAP_ZOOM: 6, PASSCODE_LENGTH: 4, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/tr/config.ts b/app/countrySpecific/tr/config.ts index dc6c75ad..fccda4b9 100644 --- a/app/countrySpecific/tr/config.ts +++ b/app/countrySpecific/tr/config.ts @@ -5,9 +5,12 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'tr', DB_PATH: './covid_db', LOCALE: 'tr', - MAP_CENTER: '39.0100,30.6885', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 39.13, + lon: 35.21 + }, MAP_MAX_ZOOM: 13, - MAP_ZOOM: 4, + MAP_ZOOM: 5, PASSCODE_LENGTH: 4, RATE_LIMIT_COUNT: 20, // Maximum number of submissions per IP RATE_LIMIT_WINDOW: 86400000, // Time window in milliseconds for rate limiting diff --git a/app/countrySpecific/ua/config.ts b/app/countrySpecific/ua/config.ts index 76434839..0d43b944 100644 --- a/app/countrySpecific/ua/config.ts +++ b/app/countrySpecific/ua/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'ua', DB_PATH: './covid_db', LOCALE: 'uk-UA', - MAP_CENTER: '48.379433, 31.165581', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 48.38, + lon: 31.17 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 5, PASSCODE_LENGTH: 4, diff --git a/app/countrySpecific/us/config.ts b/app/countrySpecific/us/config.ts index b2faf47e..eb96979d 100644 --- a/app/countrySpecific/us/config.ts +++ b/app/countrySpecific/us/config.ts @@ -5,7 +5,10 @@ export const countrySpecificConfig: Config = { COUNTRY_CODE: 'us', DB_PATH: './covid_db', LOCALE: 'en-US', - MAP_CENTER: '-113.6829028, 36.2167248', // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: { + lat: 36.21, + lon: -113.68 + }, MAP_MAX_ZOOM: 13, MAP_ZOOM: 3, PASSCODE_LENGTH: 4, diff --git a/app/domain/types.ts b/app/domain/types.ts index 07338a66..4208611b 100644 --- a/app/domain/types.ts +++ b/app/domain/types.ts @@ -149,7 +149,7 @@ export interface Config { COUNTRY_CODE: CountryCode; DB_PATH: string; LOCALE: Locale; - MAP_CENTER: string; // NB! Lat/lng is opposite of what you find on Google Maps + MAP_CENTER: Coordinate; MAP_MAX_ZOOM: number; MAP_ZOOM: number; PASSCODE_LENGTH: number; diff --git a/app/views/pages/map.ejs b/app/views/pages/map.ejs index c1fb3a6d..694cc2e2 100644 --- a/app/views/pages/map.ejs +++ b/app/views/pages/map.ejs @@ -48,7 +48,7 @@ var map = new mapboxgl.Map({ container: 'map', style: 'https://tiles.stadiamaps.com/styles/alidade_smooth_dark.json', - center: [<%= locals.mapCenter %>], + center: [<%= locals.mapCenter.lon %>, <%= locals.mapCenter.lat %>], zoom: <%= locals.mapZoom %>, maxZoom: <%= locals.mapMaxZoom %>, customAttribution: 'Postal Codes ©GeoNames', From 7c950e2685aac4d83acb41c4e01d573089167dc4 Mon Sep 17 00:00:00 2001 From: zac Date: Mon, 6 Apr 2020 13:16:38 -0400 Subject: [PATCH 26/39] - added server option to pick if a users location should be requested to center the map on at start - updated the python script to gather country location/site data - clean up the javascript parts of landing.js --- app/views/pages/landing.ejs | 41 ++++++++++++------------------------- genCountries.py | 25 ++++++++++++++++------ static/countries.json | 2 +- 3 files changed, 33 insertions(+), 35 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index cde3b300..cc780761 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -9,7 +9,7 @@ } = locals; const shouldAddAnalytics = !locals.profile; %> -<% const { show = true, menu = true, home = false, fullscreen = false, lastCommit = false, showLocaleSelector = true } = locals; %> +<% const { show = true, menu = true, home = false, fullscreen = false, lastCommit = false, showLocaleSelector = true, tryStartOnUserLocation = false } = locals; %> @@ -345,7 +345,6 @@ var map = new mapboxgl.Map({ container: 'map', style: '/static/landing-map-theme.json', - center: [<%= locals.mapCenter %>], zoom: 2, maxZoom: 4, customAttribution: 'Pin icon ©iconmonstr', @@ -401,7 +400,6 @@ }); var countries = <%- JSON.stringify(locals.countries) %>; - var geojson = []; @@ -454,21 +452,7 @@ function createMarkerObject(i) { countries[i].flag = 'static/flags/1x1/'+countries[i].COUNTRY_CODE+'.svg' - center = countries[i].MAP_CENTER.split(",") - countries[i].MAP_CENTER = center; - //countries[i].center = center - /* geojson.push({ - type: 'Feature', - geometry: { - type: 'Point', - coordinates: [countries[key].center[1], countries[key].center[0]] - }, - properties: { - title: countries[key].name, - domain: countries[key].domain, - flag: 'static/flags/1x1/'+key+'.svg' - } - }); */ + countries[i].MAP_CENTER = [countries[i].lon, countries[i].lat]; } function plotMarkers() { @@ -494,9 +478,15 @@ processCountriesJson(); function getLocation() { - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition(showPosition); - } + <% if (locals.tryStartOnUserLocation) { %> + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition((result) => { + if (result.coordinates) { + showPosition([result.coordinates.longitude, result.coordinates.latitude]); + } + }); + } + <% } %> //whether or not getting the location worked we start cycling countries after 5 seconds window.setTimeout(function () { playback(0); @@ -506,7 +496,7 @@ function showPosition(position) { map.flyTo({ zoom: 4, - center: [position.coords.longitude, position.coords.latitude], + center: position, essential: true }); } @@ -523,12 +513,7 @@ +"'>" +countries[index].BASE_URL.replace("status","status") +"
    "; - - map.flyTo({ - zoom: 4, - center: countries[index].MAP_CENTER, - essential: true - }); + showPosition(countries[index].MAP_CENTER); map.once('moveend', function() { window.setTimeout(function() { index = index + 1 === countries.length ? 0 : index + 1; diff --git a/genCountries.py b/genCountries.py index 36e41d93..26d7c6f5 100644 --- a/genCountries.py +++ b/genCountries.py @@ -1,15 +1,26 @@ import os -def findVarsInFiles(filePath, object, matches): +def findStringVarsInFiles(filePath, obj, matches): with open(filePath) as file: for line in file.readlines(): for match in matches: - ifFoundSet(country, match, line) + ifFoundSet(obj, match, line) + +def findFloatVarsInFiles(filePath, obj, matches): + with open(filePath) as file: + for line in file.readlines(): + for match in matches: + if match in line: + print("found match", match) + parts = line.split(":") + parts = parts[1] + value = parts.split(",") + country[match] = value[0].rstrip() -def ifFoundSet(object, match, line): +def ifFoundSet(obj, match, line): if match in line: values = line.split("'") - object[match] = values[1] + obj[match] = values[1] def deleteIfExists(fileName): @@ -33,11 +44,13 @@ def deleteIfExists(fileName): country = {} config = basePath+dir+"/config.ts" - findVarsInFiles(config, country, ["BASE_URL", "COUNTRY_CODE", "MAP_CENTER"]) + findStringVarsInFiles(config, country, ["BASE_URL", "COUNTRY_CODE"]) + findFloatVarsInFiles(config, country, ["lat", "lon"]) textVariables = basePath+dir+"/text-variables.ts" - findVarsInFiles(textVariables, country, ["COUNTRY_NAME"]) + findStringVarsInFiles(textVariables, country, ["COUNTRY_NAME"]) file = open(countriesFilePath, "a") + print(country) file.write(str(country).replace("'",'"')+",") file.close() diff --git a/static/countries.json b/static/countries.json index bf39647d..6ecadd4f 100644 --- a/static/countries.json +++ b/static/countries.json @@ -1 +1 @@ -[{"BASE_URL": "coronastatus.sk", "COUNTRY_CODE": "sk", "MAP_CENTER": "19.2688, 48.7269", "COUNTRY_NAME": "Slovensku"},{"BASE_URL": "coronastatus.se", "COUNTRY_CODE": "se", "MAP_CENTER": "16.177382, 62.421176", "COUNTRY_NAME": "Sverige"},{"BASE_URL": "coronastatus.us", "COUNTRY_CODE": "us", "MAP_CENTER": "-113.6829028, 36.2167248", "COUNTRY_NAME": "The United States"},{"BASE_URL": "coronastatus.org.ua", "COUNTRY_CODE": "ua", "MAP_CENTER": "48.379433, 31.165581", "COUNTRY_NAME": "України"},{"BASE_URL": "coronastatusmt.com", "COUNTRY_CODE": "mt", "MAP_CENTER": "14.3582, 35.9401", "COUNTRY_NAME": "Malta"},{"BASE_URL": "coronastatus.ng", "COUNTRY_CODE": "ng", "MAP_CENTER": "9.077751, 8.6774567", "COUNTRY_NAME": "Nigeria"},{"BASE_URL": "coronastatus.no", "COUNTRY_CODE": "no", "MAP_CENTER": "10.7522, 63.9139", "COUNTRY_NAME": "Norge"},{"BASE_URL": "coronastatusbd.com", "COUNTRY_CODE": "bd", "MAP_CENTER": "90.132953, 23.993410", "COUNTRY_NAME": "বাংলাদেশ"},{"BASE_URL": "corona-status.in", "COUNTRY_CODE": "in", "MAP_CENTER": "73.706197, 20.7699369", "COUNTRY_NAME": "India"},{"BASE_URL": "coronastatus.co", "COUNTRY_CODE": "co", "MAP_CENTER": "5.046, -73.575", "COUNTRY_NAME": "Colombia"},{"BASE_URL": "coronastatus.it", "COUNTRY_CODE": "it", "MAP_CENTER": "8.2126042, 41.2114557", "COUNTRY_NAME": "Italia"},{"BASE_URL": "coronastatus.ca", "COUNTRY_CODE": "ca", "MAP_CENTER": "-95.9, 60.49", "COUNTRY_NAME": "Canada"},{"BASE_URL": "corona-status.cz", "COUNTRY_CODE": "cz", "MAP_CENTER": "15.4749126, 49.8037633", "COUNTRY_NAME": "Česká Republika"},{"BASE_URL": "coronastatus.ro", "COUNTRY_CODE": "ro", "MAP_CENTER": "22.7775903,45.9199635", "COUNTRY_NAME": "Romania"},{"BASE_URL": "coronastatus.pt", "COUNTRY_CODE": "pt", "MAP_CENTER": "-27.8092509,36.8819358", "COUNTRY_NAME": "Portugal"},{"BASE_URL": "coronastatus.sg", "COUNTRY_CODE": "sg", "MAP_CENTER": "103.8198, 1.3520", "COUNTRY_NAME": "Singapore"},{"BASE_URL": "coronastatus.ph", "COUNTRY_CODE": "ph", "MAP_CENTER": "121.7740173, 12.8797207", "COUNTRY_NAME": "Philippines"},{"BASE_URL": "coronastatusmy.org", "COUNTRY_CODE": "my", "MAP_CENTER": "101.9757, 4.2104", "COUNTRY_NAME": "Malaysia"},{"BASE_URL": "coronastatus.com.ar", "COUNTRY_CODE": "ar", "MAP_CENTER": "-40.28, -67.77", "COUNTRY_NAME": "Argentina"},{"BASE_URL": "coronastatusau.org", "COUNTRY_CODE": "au", "MAP_CENTER": "133.77, -25.27", "COUNTRY_NAME": "Australia"},{"BASE_URL": "coronastatus.nl", "COUNTRY_CODE": "nl", "MAP_CENTER": "5.2793, 52.2129", "COUNTRY_NAME": "Nederland"},{"BASE_URL": "coronastatusnp.com", "COUNTRY_CODE": "np", "MAP_CENTER": "85.2911132, 27.7090319", "COUNTRY_NAME": "Nepal"},{"BASE_URL": "coronastatus.mx", "COUNTRY_CODE": "mx", "MAP_CENTER": "-100.479, 27.0781", "COUNTRY_NAME": "México"},{"BASE_URL": "coronastatus.de", "COUNTRY_CODE": "de", "MAP_CENTER": "10.517304, 51.117540", "COUNTRY_NAME": "Deutschland"},{"BASE_URL": "coronastatus.dk", "COUNTRY_CODE": "dk", "MAP_CENTER": "10.399100, 55.463329", "COUNTRY_NAME": "Danmark"},{"BASE_URL": "coronastatus.net.br", "COUNTRY_CODE": "br", "MAP_CENTER": "-47.05, -15.47", "COUNTRY_NAME": "Brasil"},{"BASE_URL": "coronastatus.id", "COUNTRY_CODE": "id", "MAP_CENTER": "106.845, -6.214", "COUNTRY_NAME": "Indonesia"},{"BASE_URL": "coronastatus.fr", "COUNTRY_CODE": "fr", "MAP_CENTER": "2.5582, 48.9236", "COUNTRY_NAME": "France"},{"BASE_URL": "coronastatus.es", "COUNTRY_CODE": "es", "MAP_CENTER": "-8.2011537, 40.1217673", "COUNTRY_NAME": "España"},{"BASE_URL": "coronastatus.co.uk", "COUNTRY_CODE": "en", "MAP_CENTER": "-1.451602, 52.198167", "COUNTRY_NAME": "The United Kingdom"},{"BASE_URL": "coronastatus.lt", "COUNTRY_CODE": "lt", "MAP_CENTER": "55.1735998, 23.8948016", "COUNTRY_NAME": "Lietuvai"},{"BASE_URL": "coronastatus.cl", "COUNTRY_CODE": "cl", "MAP_CENTER": "-33.4706, -70.6368", "COUNTRY_NAME": "Chile"},{"BASE_URL": "coronastatustr.com", "COUNTRY_CODE": "tr", "MAP_CENTER": "39.0100,30.6885", "COUNTRY_NAME": "Türkiye"}] \ No newline at end of file +[{"BASE_URL": "coronastatus.sk", "COUNTRY_CODE": "sk", "lat": " 48.73", "lon": " 19.27", "COUNTRY_NAME": "Slovensku"},{"BASE_URL": "coronastatus.se", "COUNTRY_CODE": "se", "lat": " 62.42", "lon": " 16.18", "COUNTRY_NAME": "Sverige"},{"BASE_URL": "coronastatus.us", "COUNTRY_CODE": "us", "lat": " 36.21", "lon": " -113.68", "COUNTRY_NAME": "The United States"},{"BASE_URL": "coronastatus.org.ua", "COUNTRY_CODE": "ua", "lat": " 48.38", "lon": " 31.17", "COUNTRY_NAME": "України"},{"BASE_URL": "coronastatusmt.com", "COUNTRY_CODE": "mt", "lat": " 35.94", "lon": " 14.36", "COUNTRY_NAME": "Malta"},{"BASE_URL": "coronastatus.ng", "COUNTRY_CODE": "ng", "lat": " 8.68", "lon": " 9.08", "COUNTRY_NAME": "Nigeria"},{"BASE_URL": "coronastatus.no", "COUNTRY_CODE": "no", "lat": " 63.91", "lon": " 10.75", "COUNTRY_NAME": "Norge"},{"BASE_URL": "coronastatusbd.com", "COUNTRY_CODE": "bd", "lat": " 23.98", "lon": " 90.01", "COUNTRY_NAME": "বাংলাদেশ"},{"BASE_URL": "corona-status.in", "COUNTRY_CODE": "in", "lat": " 20.77", "lon": " 73.71", "COUNTRY_NAME": "India"},{"BASE_URL": "coronastatus.co", "COUNTRY_CODE": "co", "lat": " 5.05", "lon": " -73.57", "COUNTRY_NAME": "Colombia"},{"BASE_URL": "coronastatus.it", "COUNTRY_CODE": "it", "lat": " 42.75", "lon": " 11.45", "COUNTRY_NAME": "Italia"},{"BASE_URL": "coronastatus.ca", "COUNTRY_CODE": "ca", "lat": " 60.49", "lon": " -95.9", "COUNTRY_NAME": "Canada"},{"BASE_URL": "corona-status.cz", "COUNTRY_CODE": "cz", "lat": " 49.8", "lon": " 15.47", "COUNTRY_NAME": "Česká Republika"},{"BASE_URL": "coronastatus.ro", "COUNTRY_CODE": "ro", "lat": " 45.92", "lon": " 22.78", "COUNTRY_NAME": "Romania"},{"BASE_URL": "coronastatus.pt", "COUNTRY_CODE": "pt", "lat": " 38.78", "lon": " -9.41", "COUNTRY_NAME": "Portugal"},{"BASE_URL": "coronastatus.sg", "COUNTRY_CODE": "sg", "lat": " 1.35", "lon": " 103.82", "COUNTRY_NAME": "Singapore"},{"BASE_URL": "coronastatus.ph", "COUNTRY_CODE": "ph", "lat": " 12.88", "lon": " 121.77", "COUNTRY_NAME": "Philippines"},{"BASE_URL": "coronastatusmy.org", "COUNTRY_CODE": "my", "lat": " 4.21", "lon": " 101.98", "COUNTRY_NAME": "Malaysia"},{"BASE_URL": "coronastatus.com.ar", "COUNTRY_CODE": "ar", "lat": " -35.43", "lon": " -63.77", "COUNTRY_NAME": "Argentina"},{"BASE_URL": "coronastatusau.org", "COUNTRY_CODE": "au", "lat": " -25.27", "lon": " 133.77", "COUNTRY_NAME": "Australia"},{"BASE_URL": "coronastatus.nl", "COUNTRY_CODE": "nl", "lat": " 52.21", "lon": " 5.28", "COUNTRY_NAME": "Nederland"},{"BASE_URL": "coronastatusnp.com", "COUNTRY_CODE": "np", "lat": " 27.71", "lon": " 85.29", "COUNTRY_NAME": "Nepal"},{"BASE_URL": "coronastatus.mx", "COUNTRY_CODE": "mx", "lat": " 27.08", "lon": " -100.48", "COUNTRY_NAME": "México"},{"BASE_URL": "coronastatus.de", "COUNTRY_CODE": "de", "lat": " 51.12", "lon": " 10.52", "COUNTRY_NAME": "Deutschland"},{"BASE_URL": "coronastatus.dk", "COUNTRY_CODE": "dk", "lat": " 55.46", "lon": " 10.4", "COUNTRY_NAME": "Danmark"},{"BASE_URL": "coronastatus.net.br", "COUNTRY_CODE": "br", "lat": " -15.47", "lon": " -47.05", "COUNTRY_NAME": "Brasil"},{"BASE_URL": "coronastatus.id", "COUNTRY_CODE": "id", "lat": " -3.9", "lon": " 119.83", "COUNTRY_NAME": "Indonesia"},{"BASE_URL": "coronastatus.fr", "COUNTRY_CODE": "fr", "lat": " 48.92", "lon": " 2.56", "COUNTRY_NAME": "France"},{"BASE_URL": "coronastatus.es", "COUNTRY_CODE": "es", "lat": " 40.12", "lon": " -8.2", "COUNTRY_NAME": "España"},{"BASE_URL": "coronastatus.co.uk", "COUNTRY_CODE": "en", "lat": " 51.51", "lon": " -0.11", "COUNTRY_NAME": "The United Kingdom"},{"BASE_URL": "coronastatus.lt", "COUNTRY_CODE": "lt", "lat": " 55.17", "lon": " 23.89", "COUNTRY_NAME": "Lietuvai"},{"BASE_URL": "coronastatus.cl", "COUNTRY_CODE": "cl", "lat": " -33.47", "lon": " -70.64", "COUNTRY_NAME": "Chile"},{"BASE_URL": "coronastatustr.com", "COUNTRY_CODE": "tr", "lat": " 39.13", "lon": " 35.21", "COUNTRY_NAME": "Türkiye"}] \ No newline at end of file From f4fe0425e9ac682610ca52138d6f61abb8073b0b Mon Sep 17 00:00:00 2001 From: zacel <54048016+zacel@users.noreply.github.com> Date: Mon, 6 Apr 2020 13:38:04 -0400 Subject: [PATCH 27/39] Delete textCountries.json --- textCountries.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 textCountries.json diff --git a/textCountries.json b/textCountries.json deleted file mode 100644 index e69de29b..00000000 From 960de6018d0f69a7ac21187bac407de464ad363a Mon Sep 17 00:00:00 2001 From: zac Date: Mon, 6 Apr 2020 14:51:37 -0400 Subject: [PATCH 28/39] make all strings ready to be translated --- app/views/pages/landing.ejs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index cc780761..3e114671 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -164,8 +164,8 @@
    -

    1. Survey

    -

    Select your *country and fill out the anonymous survey.

    +

    <%= __("1. Survey") %>

    +

    <%= __("Select your *country and fill out the anonymous survey.") %>

    -

    2. Share

    -

    Share the link with your friends, family, and encourage them to fill it in.

    +

    <%= __("2. Share") %>

    +

    <%= __("Share the link with your friends, family, and encourage them to fill it in.") %>

    <%- include('partials/share', { amount: formatNumber(10000) }) -%>
    -

    3. Build

    -

    Don't see your country on the map?
    Why not set it up? We can help you do it.

    +

    <%= __("3. Build") %>

    +

    <%= __("Don't see your country on the map?") %>
    Why not set it up? We can help you do it.

    Date: Mon, 6 Apr 2020 15:27:35 -0400 Subject: [PATCH 29/39] fix linting issues --- app/domain/urls.ts | 2 +- app/routes/various-routes.ts | 3 ++- app/views/pages/landing.ejs | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/domain/urls.ts b/app/domain/urls.ts index 03dc629c..0f883207 100644 --- a/app/domain/urls.ts +++ b/app/domain/urls.ts @@ -373,7 +373,7 @@ export const countrySpecificUrls: Urls = { api: '/api', apiDocs: '/api-docs', statistics: '/statistici', - landing: "/landing", + landing: '/landing', limit: '/limit' }, se: { diff --git a/app/routes/various-routes.ts b/app/routes/various-routes.ts index 29e0e640..6aa37103 100644 --- a/app/routes/various-routes.ts +++ b/app/routes/various-routes.ts @@ -26,7 +26,8 @@ router.get(urls.contributors, (req, res) => { router.get(`${urls.landing}`, (req, res) => { return res.render('pages/landing'); -}) +}); + router.get(urls.limit, (req, res) => { return res.render('pages/limit'); }); diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 3e114671..97927924 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -145,7 +145,7 @@
    - Animation: + <%= __("Animation") %>: From 2e5324a46d8c928ecbf2985c6fa907520284ed08 Mon Sep 17 00:00:00 2001 From: zac Date: Mon, 6 Apr 2020 15:29:06 -0400 Subject: [PATCH 30/39] make python script less complex --- genCountries.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/genCountries.py b/genCountries.py index 26d7c6f5..74b7b644 100644 --- a/genCountries.py +++ b/genCountries.py @@ -4,7 +4,9 @@ def findStringVarsInFiles(filePath, obj, matches): with open(filePath) as file: for line in file.readlines(): for match in matches: - ifFoundSet(obj, match, line) + if match in line: + values = line.split("'") + obj[match] = values[1] def findFloatVarsInFiles(filePath, obj, matches): with open(filePath) as file: @@ -16,11 +18,6 @@ def findFloatVarsInFiles(filePath, obj, matches): parts = parts[1] value = parts.split(",") country[match] = value[0].rstrip() - -def ifFoundSet(obj, match, line): - if match in line: - values = line.split("'") - obj[match] = values[1] def deleteIfExists(fileName): From 288e4fe29224ce366924da2c82bf745bf49b6807 Mon Sep 17 00:00:00 2001 From: zac Date: Mon, 6 Apr 2020 17:09:10 -0400 Subject: [PATCH 31/39] remove out of date attribution link, resize map marker --- app/views/pages/landing.ejs | 1 - static/images/logo-marker.png | Bin 14987 -> 11079 bytes 2 files changed, 1 deletion(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 97927924..48c9ce43 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -347,7 +347,6 @@ style: '/static/landing-map-theme.json', zoom: 2, maxZoom: 4, - customAttribution: 'Pin icon ©iconmonstr', hash: true, scrollZoom : false, boxZoom : false, diff --git a/static/images/logo-marker.png b/static/images/logo-marker.png index 0834d7e94ea9440fb6be6995fb9d11229559fabd..28100e82b399202e196b37deb07b3e9ebca841e4 100644 GIT binary patch literal 11079 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 From da51017cd5201d4239baf1866d607fdeb447c68a Mon Sep 17 00:00:00 2001 From: zac Date: Tue, 7 Apr 2020 15:35:21 -0400 Subject: [PATCH 32/39] move countries.json generator script to scripts/ --- genCountries.py => scripts/genCountries.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename genCountries.py => scripts/genCountries.py (100%) diff --git a/genCountries.py b/scripts/genCountries.py similarity index 100% rename from genCountries.py rename to scripts/genCountries.py From 6da8a3286cc98ca03f2b3f23981d485783bed874 Mon Sep 17 00:00:00 2001 From: zac Date: Tue, 7 Apr 2020 21:08:53 -0400 Subject: [PATCH 33/39] -create api route to expose some countrySpecific fields to the frontend -currently the request takes a full 3 seconds to complete on first load -this is the last version with the countries.json version of landing page intact --- app/routes/api-routes.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/app/routes/api-routes.ts b/app/routes/api-routes.ts index 371ee85b..b79c9d4b 100644 --- a/app/routes/api-routes.ts +++ b/app/routes/api-routes.ts @@ -2,6 +2,8 @@ import express from 'express'; import cors from 'cors'; import 'csv-express'; +import { readdirSync } from 'fs'; +import path from 'path'; import { NotEnoughReportsError } from '../domain/errors'; import { CacheWithLifetime } from '../repository/CacheWithLifetime'; @@ -183,6 +185,32 @@ router.get('/reports', cors(), async (req, res) => { return res.json(result); }); +router.get("/countries", cors(), async (req, res) => { + var countries: { COUNTRY_CODE: string, BASE_URL: string, MAP_CENTER: string, COUNTRY_NAME: string }[] = []; + const basePath = path.join(path.basename(path.dirname(__dirname)), "/countrySpecific"); + readdirSync(basePath, { withFileTypes: true }) + .filter(dirent => dirent.isDirectory()) + .forEach(directory => { + countries.push({ "COUNTRY_CODE": directory.name, BASE_URL: "", MAP_CENTER: "", COUNTRY_NAME: "" }); + }); + + if (countries.length === 0) { + res.send("'No country files found'"); + } + + countries.map(country => { + const {countrySpecificConfig} = require(`../countrySpecific/${country.COUNTRY_CODE}/config.ts`); + country.BASE_URL = countrySpecificConfig.BASE_URL; + country.MAP_CENTER = countrySpecificConfig.MAP_CENTER; + + const {countrySpecificTexts} = require(`../countrySpecific/${country.COUNTRY_CODE}/text-variables.ts`); + country.COUNTRY_NAME = countrySpecificTexts.COUNTRY_NAME; + return country; + + }); + res.send(countries); +}); + router.get('*', (req, res) => { res.status(404).json({ status: 404, From 64b4185d27b451d8a3e50aa9d93e6b1aa17b73cd Mon Sep 17 00:00:00 2001 From: zac Date: Tue, 7 Apr 2020 21:28:58 -0400 Subject: [PATCH 34/39] fix some of the linting errors --- app/routes/api-routes.ts | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/app/routes/api-routes.ts b/app/routes/api-routes.ts index b79c9d4b..15df05fd 100644 --- a/app/routes/api-routes.ts +++ b/app/routes/api-routes.ts @@ -185,13 +185,26 @@ router.get('/reports', cors(), async (req, res) => { return res.json(result); }); -router.get("/countries", cors(), async (req, res) => { - var countries: { COUNTRY_CODE: string, BASE_URL: string, MAP_CENTER: string, COUNTRY_NAME: string }[] = []; - const basePath = path.join(path.basename(path.dirname(__dirname)), "/countrySpecific"); +router.get('/countries', cors(), async (req, res) => { + const countries: { + COUNTRY_CODE: string; + BASE_URL: string; + MAP_CENTER: string; + COUNTRY_NAME: string; + }[] = []; + const basePath = path.join( + path.basename(path.dirname(__dirname)), + '/countrySpecific' + ); readdirSync(basePath, { withFileTypes: true }) .filter(dirent => dirent.isDirectory()) .forEach(directory => { - countries.push({ "COUNTRY_CODE": directory.name, BASE_URL: "", MAP_CENTER: "", COUNTRY_NAME: "" }); + countries.push({ + COUNTRY_CODE: directory.name, + BASE_URL: '', + MAP_CENTER: '', + COUNTRY_NAME: '' + }); }); if (countries.length === 0) { @@ -199,14 +212,17 @@ router.get("/countries", cors(), async (req, res) => { } countries.map(country => { - const {countrySpecificConfig} = require(`../countrySpecific/${country.COUNTRY_CODE}/config.ts`); + const { + countrySpecificConfig + } = require(`../countrySpecific/${country.COUNTRY_CODE}/config.ts`); country.BASE_URL = countrySpecificConfig.BASE_URL; country.MAP_CENTER = countrySpecificConfig.MAP_CENTER; - const {countrySpecificTexts} = require(`../countrySpecific/${country.COUNTRY_CODE}/text-variables.ts`); + const { + countrySpecificTexts + } = require(`../countrySpecific/${country.COUNTRY_CODE}/text-variables.ts`); country.COUNTRY_NAME = countrySpecificTexts.COUNTRY_NAME; return country; - }); res.send(countries); }); From 97130ca9a69ef05d0e0bd83ed9f96893234cb8b7 Mon Sep 17 00:00:00 2001 From: zac Date: Tue, 7 Apr 2020 21:47:25 -0400 Subject: [PATCH 35/39] -remove contries.json and python script for it's creation -remove all references to countries.json in server.ts and ejs part of landing.ejs -convert landing.ejs to make httprequest to api/countries and use that data -move all landing.ejs startup function calls into callback from httprequest --- app/server.ts | 2 -- app/views/pages/landing.ejs | 28 ++++++++++------- scripts/genCountries.py | 63 ------------------------------------- static/countries.json | 1 - 4 files changed, 16 insertions(+), 78 deletions(-) delete mode 100644 scripts/genCountries.py delete mode 100644 static/countries.json diff --git a/app/server.ts b/app/server.ts index 23267f43..69a1d46b 100644 --- a/app/server.ts +++ b/app/server.ts @@ -16,7 +16,6 @@ import { localeToFlag } from './domain/flags'; import config from './config'; import { ensureAllLocalesAreValidJSON } from './util/locale-validation'; import { createNumberFormatter } from './util/number-formatter'; -import countries from '../static/countries.json'; import { getCountrySpecificTextVariables } from './countrySpecific/country-specific-text-variables'; const app = express(); @@ -84,7 +83,6 @@ app.use(async (req, res, next) => { res.locals.localeToFlag = localeToFlag; res.locals.currentLocale = req.getLocale(); res.locals.formatNumber = createNumberFormatter(config.THOUSAND_SEPARATOR); - res.locals.countries = countries; res.locals.textVariables = getCountrySpecificTextVariables( config.COUNTRY_CODE ); diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index 48c9ce43..ccff305c 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -4,8 +4,7 @@ passcode, baseUrl, formatNumber, - urls, - countries + urls } = locals; const shouldAddAnalytics = !locals.profile; %> @@ -398,7 +397,7 @@ updateMarkers(); }); - var countries = <%- JSON.stringify(locals.countries) %>; + @@ -408,7 +407,6 @@ var con = document.getElementById("country-links-container"); if (con.classList.contains("hidden")) { con.classList.remove("hidden"); - } else { con.classList.add("hidden"); } @@ -451,19 +449,20 @@ function createMarkerObject(i) { countries[i].flag = 'static/flags/1x1/'+countries[i].COUNTRY_CODE+'.svg' - countries[i].MAP_CENTER = [countries[i].lon, countries[i].lat]; + countries[i].MAP_CENTER = [countries[i].MAP_CENTER.lon, countries[i].MAP_CENTER.lat]; } function plotMarkers() { - countries.forEach(function(country) { + console.log(countries); + for (var i = 0; i < countries.length; i++) { var el = document.createElement('div'); el.className = 'marker'; new mapboxgl.Marker(el) - .setLngLat(country.MAP_CENTER) + .setLngLat(countries[i].MAP_CENTER) .setPopup(new mapboxgl.Popup({ offset: 25 }) - .setHTML('

    ' + country.COUNTRY_NAME + '

    ')) + .setHTML('

    ' + countries[i].COUNTRY_NAME + '

    ')) .addTo(map); - }); + }; } function processCountriesJson () { @@ -474,7 +473,6 @@ }; plotMarkers(); } - processCountriesJson(); function getLocation() { <% if (locals.tryStartOnUserLocation) { %> @@ -522,7 +520,6 @@ }, 3500); }); } - getLocation() function toggleAnimation() { if (play) { @@ -534,5 +531,12 @@ playback(Math.floor(Math.random() * countries.length)); } } - + var countries = new XMLHttpRequest(); + countries.addEventListener("load", () => { + countries = JSON.parse(countries.responseText); + processCountriesJson(); + getLocation(); + }); + countries.open("GET", "api/countries"); + countries.send(); \ No newline at end of file diff --git a/scripts/genCountries.py b/scripts/genCountries.py deleted file mode 100644 index 74b7b644..00000000 --- a/scripts/genCountries.py +++ /dev/null @@ -1,63 +0,0 @@ -import os - -def findStringVarsInFiles(filePath, obj, matches): - with open(filePath) as file: - for line in file.readlines(): - for match in matches: - if match in line: - values = line.split("'") - obj[match] = values[1] - -def findFloatVarsInFiles(filePath, obj, matches): - with open(filePath) as file: - for line in file.readlines(): - for match in matches: - if match in line: - print("found match", match) - parts = line.split(":") - parts = parts[1] - value = parts.split(",") - country[match] = value[0].rstrip() - - -def deleteIfExists(fileName): - if (os.path.isfile(fileName)): - os.remove(fileName) - - -countriesFilePath = "./static/countries.json" -basePath = "./app/countrySpecific/" - -#delete the file if it exists so we can start fresh -deleteIfExists(countriesFilePath) - -for (_, dirnames, _) in os.walk(basePath): - countries = {} - file = open(countriesFilePath, "a") - file.write("[") - file.close() - index = 0 - for dir in dirnames: - country = {} - - config = basePath+dir+"/config.ts" - findStringVarsInFiles(config, country, ["BASE_URL", "COUNTRY_CODE"]) - findFloatVarsInFiles(config, country, ["lat", "lon"]) - textVariables = basePath+dir+"/text-variables.ts" - findStringVarsInFiles(textVariables, country, ["COUNTRY_NAME"]) - - file = open(countriesFilePath, "a") - print(country) - file.write(str(country).replace("'",'"')+",") - file.close() - - #remove trailing commma - file = open(countriesFilePath, "r") - lines = file.read() - lines = lines[:-1] - file.close() - file = open(countriesFilePath, "w") - file.write(lines+"]") - file.close() - break - diff --git a/static/countries.json b/static/countries.json deleted file mode 100644 index 6ecadd4f..00000000 --- a/static/countries.json +++ /dev/null @@ -1 +0,0 @@ -[{"BASE_URL": "coronastatus.sk", "COUNTRY_CODE": "sk", "lat": " 48.73", "lon": " 19.27", "COUNTRY_NAME": "Slovensku"},{"BASE_URL": "coronastatus.se", "COUNTRY_CODE": "se", "lat": " 62.42", "lon": " 16.18", "COUNTRY_NAME": "Sverige"},{"BASE_URL": "coronastatus.us", "COUNTRY_CODE": "us", "lat": " 36.21", "lon": " -113.68", "COUNTRY_NAME": "The United States"},{"BASE_URL": "coronastatus.org.ua", "COUNTRY_CODE": "ua", "lat": " 48.38", "lon": " 31.17", "COUNTRY_NAME": "України"},{"BASE_URL": "coronastatusmt.com", "COUNTRY_CODE": "mt", "lat": " 35.94", "lon": " 14.36", "COUNTRY_NAME": "Malta"},{"BASE_URL": "coronastatus.ng", "COUNTRY_CODE": "ng", "lat": " 8.68", "lon": " 9.08", "COUNTRY_NAME": "Nigeria"},{"BASE_URL": "coronastatus.no", "COUNTRY_CODE": "no", "lat": " 63.91", "lon": " 10.75", "COUNTRY_NAME": "Norge"},{"BASE_URL": "coronastatusbd.com", "COUNTRY_CODE": "bd", "lat": " 23.98", "lon": " 90.01", "COUNTRY_NAME": "বাংলাদেশ"},{"BASE_URL": "corona-status.in", "COUNTRY_CODE": "in", "lat": " 20.77", "lon": " 73.71", "COUNTRY_NAME": "India"},{"BASE_URL": "coronastatus.co", "COUNTRY_CODE": "co", "lat": " 5.05", "lon": " -73.57", "COUNTRY_NAME": "Colombia"},{"BASE_URL": "coronastatus.it", "COUNTRY_CODE": "it", "lat": " 42.75", "lon": " 11.45", "COUNTRY_NAME": "Italia"},{"BASE_URL": "coronastatus.ca", "COUNTRY_CODE": "ca", "lat": " 60.49", "lon": " -95.9", "COUNTRY_NAME": "Canada"},{"BASE_URL": "corona-status.cz", "COUNTRY_CODE": "cz", "lat": " 49.8", "lon": " 15.47", "COUNTRY_NAME": "Česká Republika"},{"BASE_URL": "coronastatus.ro", "COUNTRY_CODE": "ro", "lat": " 45.92", "lon": " 22.78", "COUNTRY_NAME": "Romania"},{"BASE_URL": "coronastatus.pt", "COUNTRY_CODE": "pt", "lat": " 38.78", "lon": " -9.41", "COUNTRY_NAME": "Portugal"},{"BASE_URL": "coronastatus.sg", "COUNTRY_CODE": "sg", "lat": " 1.35", "lon": " 103.82", "COUNTRY_NAME": "Singapore"},{"BASE_URL": "coronastatus.ph", "COUNTRY_CODE": "ph", "lat": " 12.88", "lon": " 121.77", "COUNTRY_NAME": "Philippines"},{"BASE_URL": "coronastatusmy.org", "COUNTRY_CODE": "my", "lat": " 4.21", "lon": " 101.98", "COUNTRY_NAME": "Malaysia"},{"BASE_URL": "coronastatus.com.ar", "COUNTRY_CODE": "ar", "lat": " -35.43", "lon": " -63.77", "COUNTRY_NAME": "Argentina"},{"BASE_URL": "coronastatusau.org", "COUNTRY_CODE": "au", "lat": " -25.27", "lon": " 133.77", "COUNTRY_NAME": "Australia"},{"BASE_URL": "coronastatus.nl", "COUNTRY_CODE": "nl", "lat": " 52.21", "lon": " 5.28", "COUNTRY_NAME": "Nederland"},{"BASE_URL": "coronastatusnp.com", "COUNTRY_CODE": "np", "lat": " 27.71", "lon": " 85.29", "COUNTRY_NAME": "Nepal"},{"BASE_URL": "coronastatus.mx", "COUNTRY_CODE": "mx", "lat": " 27.08", "lon": " -100.48", "COUNTRY_NAME": "México"},{"BASE_URL": "coronastatus.de", "COUNTRY_CODE": "de", "lat": " 51.12", "lon": " 10.52", "COUNTRY_NAME": "Deutschland"},{"BASE_URL": "coronastatus.dk", "COUNTRY_CODE": "dk", "lat": " 55.46", "lon": " 10.4", "COUNTRY_NAME": "Danmark"},{"BASE_URL": "coronastatus.net.br", "COUNTRY_CODE": "br", "lat": " -15.47", "lon": " -47.05", "COUNTRY_NAME": "Brasil"},{"BASE_URL": "coronastatus.id", "COUNTRY_CODE": "id", "lat": " -3.9", "lon": " 119.83", "COUNTRY_NAME": "Indonesia"},{"BASE_URL": "coronastatus.fr", "COUNTRY_CODE": "fr", "lat": " 48.92", "lon": " 2.56", "COUNTRY_NAME": "France"},{"BASE_URL": "coronastatus.es", "COUNTRY_CODE": "es", "lat": " 40.12", "lon": " -8.2", "COUNTRY_NAME": "España"},{"BASE_URL": "coronastatus.co.uk", "COUNTRY_CODE": "en", "lat": " 51.51", "lon": " -0.11", "COUNTRY_NAME": "The United Kingdom"},{"BASE_URL": "coronastatus.lt", "COUNTRY_CODE": "lt", "lat": " 55.17", "lon": " 23.89", "COUNTRY_NAME": "Lietuvai"},{"BASE_URL": "coronastatus.cl", "COUNTRY_CODE": "cl", "lat": " -33.47", "lon": " -70.64", "COUNTRY_NAME": "Chile"},{"BASE_URL": "coronastatustr.com", "COUNTRY_CODE": "tr", "lat": " 39.13", "lon": " 35.21", "COUNTRY_NAME": "Türkiye"}] \ No newline at end of file From 061891af5991ece376172bc38f6b0012dfcdf1ed Mon Sep 17 00:00:00 2001 From: zac Date: Tue, 7 Apr 2020 23:04:15 -0400 Subject: [PATCH 36/39] simplify the countries api route --- app/routes/api-routes.ts | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/app/routes/api-routes.ts b/app/routes/api-routes.ts index 15df05fd..f270ba2e 100644 --- a/app/routes/api-routes.ts +++ b/app/routes/api-routes.ts @@ -199,31 +199,22 @@ router.get('/countries', cors(), async (req, res) => { readdirSync(basePath, { withFileTypes: true }) .filter(dirent => dirent.isDirectory()) .forEach(directory => { + const { + countrySpecificConfig + } = require(`../countrySpecific/${directory.name}/config.ts`); + const { + countrySpecificTexts + } = require(`../countrySpecific/${directory.name}/text-variables.ts`); countries.push({ COUNTRY_CODE: directory.name, - BASE_URL: '', - MAP_CENTER: '', - COUNTRY_NAME: '' + BASE_URL: countrySpecificConfig.BASE_URL, + MAP_CENTER: countrySpecificConfig.MAP_CENTER, + COUNTRY_NAME: countrySpecificTexts.COUNTRY_NAME }); }); - if (countries.length === 0) { res.send("'No country files found'"); } - - countries.map(country => { - const { - countrySpecificConfig - } = require(`../countrySpecific/${country.COUNTRY_CODE}/config.ts`); - country.BASE_URL = countrySpecificConfig.BASE_URL; - country.MAP_CENTER = countrySpecificConfig.MAP_CENTER; - - const { - countrySpecificTexts - } = require(`../countrySpecific/${country.COUNTRY_CODE}/text-variables.ts`); - country.COUNTRY_NAME = countrySpecificTexts.COUNTRY_NAME; - return country; - }); res.send(countries); }); From 3c8c52c5c5f87b2cba8e21cc9c8daf4fda850c05 Mon Sep 17 00:00:00 2001 From: zac Date: Tue, 7 Apr 2020 23:06:33 -0400 Subject: [PATCH 37/39] clean up api/countries --- app/routes/api-routes.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/routes/api-routes.ts b/app/routes/api-routes.ts index f270ba2e..28d02275 100644 --- a/app/routes/api-routes.ts +++ b/app/routes/api-routes.ts @@ -212,9 +212,6 @@ router.get('/countries', cors(), async (req, res) => { COUNTRY_NAME: countrySpecificTexts.COUNTRY_NAME }); }); - if (countries.length === 0) { - res.send("'No country files found'"); - } res.send(countries); }); From a439389c2b8a03a16d44bd6127d4d7bb5180e8cd Mon Sep 17 00:00:00 2001 From: Eirik Fosse Date: Wed, 8 Apr 2020 17:38:21 +0200 Subject: [PATCH 38/39] cache countries when the server starts --- app/openAPI/reports.swagger.ts | 17 + app/repository/CountryRepository.ts | 58 + app/routes/api-routes.ts | 33 +- app/swagger.ts | 9 +- app/views/pages/landing.ejs | 22 +- countries.test.json | 1 - package-lock.json | 10732 -------------------------- 7 files changed, 98 insertions(+), 10774 deletions(-) create mode 100644 app/repository/CountryRepository.ts delete mode 100644 countries.test.json delete mode 100644 package-lock.json diff --git a/app/openAPI/reports.swagger.ts b/app/openAPI/reports.swagger.ts index f61be6e2..11e9c349 100644 --- a/app/openAPI/reports.swagger.ts +++ b/app/openAPI/reports.swagger.ts @@ -48,3 +48,20 @@ export const getReportsCsv = { } } }; + +export const getCountries = { + tags: ['Countries'], + description: 'Returns list of countries where coronastatus is available', + operationId: 'getCountries', + version: '0.0.1', + responses: { + '200': { + description: 'Countries', + content: { + 'application/json': { + schema: {} + } + } + } + } +}; diff --git a/app/repository/CountryRepository.ts b/app/repository/CountryRepository.ts new file mode 100644 index 00000000..953e3c09 --- /dev/null +++ b/app/repository/CountryRepository.ts @@ -0,0 +1,58 @@ +/* eslint-disable global-require, import/no-dynamic-require */ +import { readdirSync, Dirent } from 'fs'; +import path from 'path'; +import { Config, CountrySpecificTexts, Coordinate } from '../domain/types'; +import { CountryCode } from '../domain/urls'; + +const countriesDir = path.join(__dirname, '..', 'countrySpecific'); + +interface Country { + url: string; + countryCode: CountryCode; + mapCenter: Coordinate; + countryName: string; +} + +interface ConfigFile { + countrySpecificConfig: Config; +} + +interface TextVariablesFile { + countrySpecificTexts: CountrySpecificTexts; +} + +const readFromFile = (dirent: Dirent, fileName: string): T => + require(`../countrySpecific/${dirent.name}/${fileName}`); + +export class CountryRepository { + private countries: Country[]; + + constructor() { + console.log('Reading countries from files...'); + this.countries = this.readCountriesFromFiles(); + } + + private readCountriesFromFiles = (): Country[] => + readdirSync(countriesDir, { withFileTypes: true }) + .filter(dirent => dirent.isDirectory()) + .map(dirent => { + const { countrySpecificConfig } = readFromFile( + dirent, + 'config.ts' + ); + const { countrySpecificTexts } = readFromFile( + dirent, + 'text-variables.ts' + ); + return { + url: countrySpecificConfig.BASE_URL, + countryCode: countrySpecificConfig.COUNTRY_CODE, + mapCenter: countrySpecificConfig.MAP_CENTER, + countryName: countrySpecificTexts.COUNTRY_NAME + }; + }); + + public getCountries(): Country[] { + return this.countries; + } +} diff --git a/app/routes/api-routes.ts b/app/routes/api-routes.ts index 28d02275..04a0d631 100644 --- a/app/routes/api-routes.ts +++ b/app/routes/api-routes.ts @@ -2,8 +2,6 @@ import express from 'express'; import cors from 'cors'; import 'csv-express'; -import { readdirSync } from 'fs'; -import path from 'path'; import { NotEnoughReportsError } from '../domain/errors'; import { CacheWithLifetime } from '../repository/CacheWithLifetime'; @@ -21,9 +19,11 @@ import { SmokingHabit, IsolationStatus } from '../domain/types'; +import { CountryRepository } from '../repository/CountryRepository'; const router = express.Router(); const reportRepo = new CovidReportRepository(); +const countryRepo = new CountryRepository(); router.get('/aggregated', cors(), async (req, res) => { const reports = await reportRepo.getLatestCovidReports(); @@ -186,33 +186,8 @@ router.get('/reports', cors(), async (req, res) => { }); router.get('/countries', cors(), async (req, res) => { - const countries: { - COUNTRY_CODE: string; - BASE_URL: string; - MAP_CENTER: string; - COUNTRY_NAME: string; - }[] = []; - const basePath = path.join( - path.basename(path.dirname(__dirname)), - '/countrySpecific' - ); - readdirSync(basePath, { withFileTypes: true }) - .filter(dirent => dirent.isDirectory()) - .forEach(directory => { - const { - countrySpecificConfig - } = require(`../countrySpecific/${directory.name}/config.ts`); - const { - countrySpecificTexts - } = require(`../countrySpecific/${directory.name}/text-variables.ts`); - countries.push({ - COUNTRY_CODE: directory.name, - BASE_URL: countrySpecificConfig.BASE_URL, - MAP_CENTER: countrySpecificConfig.MAP_CENTER, - COUNTRY_NAME: countrySpecificTexts.COUNTRY_NAME - }); - }); - res.send(countries); + const countries = countryRepo.getCountries(); + res.json(countries); }); router.get('*', (req, res) => { diff --git a/app/swagger.ts b/app/swagger.ts index 42e1230a..32708d96 100644 --- a/app/swagger.ts +++ b/app/swagger.ts @@ -4,7 +4,11 @@ import { } from './openAPI/aggregated.swagger'; import config from './config'; import { countryCodeToUrls } from './domain/urls'; -import { getReports, getReportsCsv } from './openAPI/reports.swagger'; +import { + getReports, + getReportsCsv, + getCountries +} from './openAPI/reports.swagger'; const urls = countryCodeToUrls(config.COUNTRY_CODE); @@ -53,6 +57,9 @@ export const swaggerDocument = { }, '/reports/reports.csv': { get: getReportsCsv + }, + '/countries': { + get: getCountries } } }; diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index ccff305c..d07237bb 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -434,13 +434,13 @@ var a = document.createElement("a"); a.classList.add("px-2"); a.classList.add("py-1"); - a.href = countries[i].BASE_URL; + a.href = countries[i].url; var span = document.createElement("span"); - span.innerText = countries[i].COUNTRY_NAME; + span.innerText = countries[i].countryName; a.appendChild(span); - li.style.backgroundImage = "url(static/flags/1x1/"+countries[i].COUNTRY_CODE+".svg)"; + li.style.backgroundImage = "url(static/flags/1x1/"+countries[i].countryCode+".svg)"; li.style.backgroundRepeat = "no-repeat"; li.append(a); @@ -448,8 +448,8 @@ } function createMarkerObject(i) { - countries[i].flag = 'static/flags/1x1/'+countries[i].COUNTRY_CODE+'.svg' - countries[i].MAP_CENTER = [countries[i].MAP_CENTER.lon, countries[i].MAP_CENTER.lat]; + countries[i].flag = 'static/flags/1x1/'+countries[i].countryCode+'.svg' + countries[i].mapCenter = [countries[i].mapCenter.lon, countries[i].mapCenter.lat]; } function plotMarkers() { @@ -458,9 +458,9 @@ var el = document.createElement('div'); el.className = 'marker'; new mapboxgl.Marker(el) - .setLngLat(countries[i].MAP_CENTER) + .setLngLat(countries[i].mapCenter) .setPopup(new mapboxgl.Popup({ offset: 25 }) - .setHTML('

    ' + countries[i].COUNTRY_NAME + '

    ')) + .setHTML('

    ' + countries[i].countryName + '

    ')) .addTo(map); }; } @@ -504,13 +504,13 @@ currentCountry.innerHTML = ""; - showPosition(countries[index].MAP_CENTER); + showPosition(countries[index].mapCenter); map.once('moveend', function() { window.setTimeout(function() { index = index + 1 === countries.length ? 0 : index + 1; diff --git a/countries.test.json b/countries.test.json deleted file mode 100644 index 83c5dd7d..00000000 --- a/countries.test.json +++ /dev/null @@ -1 +0,0 @@ -[{"BASE_URL": "coronastatus.sk", "COUNTRY_CODE": "sk", "MAP_CENTER": "19.2688, 48.7269", "COUNTRY_NAME": "Slovensku"},{"BASE_URL": "coronastatus.se", "COUNTRY_CODE": "se", "MAP_CENTER": "16.177382, 62.421176", "COUNTRY_NAME": "Sverige"},{"BASE_URL": "coronastatus.us", "COUNTRY_CODE": "us", "MAP_CENTER": "-113.6829028, 36.2167248", "COUNTRY_NAME": "The United States"},{"BASE_URL": "coronastatus.org.ua", "COUNTRY_CODE": "ua", "MAP_CENTER": "48.379433, 31.165581", "COUNTRY_NAME": "України"},{"BASE_URL": "coronastatusmt.com", "COUNTRY_CODE": "mt", "MAP_CENTER": "14.3582, 35.9401", "COUNTRY_NAME": "Malta"},{"BASE_URL": "coronastatus.ng", "COUNTRY_CODE": "ng", "MAP_CENTER": "9.077751, 8.6774567", "COUNTRY_NAME": "Nigeria"},{"BASE_URL": "coronastatus.no", "COUNTRY_CODE": "no", "MAP_CENTER": "10.7522, 63.9139", "COUNTRY_NAME": "Norge"},{"BASE_URL": "coronastatusbd.com", "COUNTRY_CODE": "bd", "MAP_CENTER": "90.132953, 23.993410", "COUNTRY_NAME": "বাংলাদেশ"},{"BASE_URL": "corona-status.in", "COUNTRY_CODE": "in", "MAP_CENTER": "73.706197, 20.7699369", "COUNTRY_NAME": "India"},{"BASE_URL": "coronastatus.co", "COUNTRY_CODE": "co", "MAP_CENTER": "5.046, -73.575", "COUNTRY_NAME": "Colombia"},{"BASE_URL": "coronastatus.it", "COUNTRY_CODE": "it", "MAP_CENTER": "8.2126042, 41.2114557", "COUNTRY_NAME": "Italia"},{"BASE_URL": "coronastatus.ca", "COUNTRY_CODE": "ca", "MAP_CENTER": "-95.9, 60.49", "COUNTRY_NAME": "Canada"},{"BASE_URL": "corona-status.cz", "COUNTRY_CODE": "cz", "MAP_CENTER": "15.4749126, 49.8037633", "COUNTRY_NAME": "Česká Republika"},{"BASE_URL": "coronastatus.ro", "COUNTRY_CODE": "ro", "MAP_CENTER": "22.7775903,45.9199635", "COUNTRY_NAME": "Romania"},{"BASE_URL": "coronastatus.pt", "COUNTRY_CODE": "pt", "MAP_CENTER": "-27.8092509,36.8819358", "COUNTRY_NAME": "Portugal"},{"BASE_URL": "coronastatus.sg", "COUNTRY_CODE": "sg", "MAP_CENTER": "103.8198, 1.3520", "COUNTRY_NAME": "Singapore"},{"BASE_URL": "coronastatus.ph", "COUNTRY_CODE": "ph", "MAP_CENTER": "121.7740173, 12.8797207", "COUNTRY_NAME": "Philippines"},{"BASE_URL": "coronastatusmy.org", "COUNTRY_CODE": "my", "MAP_CENTER": "101.9757, 4.2104", "COUNTRY_NAME": "Malaysia"},{"BASE_URL": "coronastatus.com.ar", "COUNTRY_CODE": "ar", "MAP_CENTER": "-40.28, -67.77", "COUNTRY_NAME": "Argentina"},{"BASE_URL": "coronastatusau.org", "COUNTRY_CODE": "au", "MAP_CENTER": "133.77, -25.27", "COUNTRY_NAME": "Australia"},{"BASE_URL": "coronastatus.nl", "COUNTRY_CODE": "nl", "MAP_CENTER": "5.2793, 52.2129", "COUNTRY_NAME": "Nederland"},{"BASE_URL": "coronastatusnp.com", "COUNTRY_CODE": "np", "MAP_CENTER": "85.2911132, 27.7090319", "COUNTRY_NAME": "Nepal"},{"BASE_URL": "coronastatus.mx", "COUNTRY_CODE": "mx", "MAP_CENTER": "-100.479, 27.0781", "COUNTRY_NAME": "México"},{"BASE_URL": "coronastatus.de", "COUNTRY_CODE": "de", "MAP_CENTER": "10.517304, 51.117540", "COUNTRY_NAME": "Deutschland"},{"BASE_URL": "coronastatus.dk", "COUNTRY_CODE": "dk", "MAP_CENTER": "10.399100, 55.463329", "COUNTRY_NAME": "Danmark"},{"BASE_URL": "coronastatus.net.br", "COUNTRY_CODE": "br", "MAP_CENTER": "-47.05, -15.47", "COUNTRY_NAME": "Brasil"},{"BASE_URL": "coronastatus.id", "COUNTRY_CODE": "id", "MAP_CENTER": "106.845, -6.214", "COUNTRY_NAME": "Indonesia"},{"BASE_URL": "coronastatus.fr", "COUNTRY_CODE": "fr", "MAP_CENTER": "2.5582, 48.9236", "COUNTRY_NAME": "France"},{"BASE_URL": "coronastatus.es", "COUNTRY_CODE": "es", "MAP_CENTER": "-8.2011537, 40.1217673", "COUNTRY_NAME": "España"},{"BASE_URL": "coronastatus.co.uk", "COUNTRY_CODE": "en", "MAP_CENTER": "51.505485, -0.111218", "COUNTRY_NAME": "The United Kingdom"},{"BASE_URL": "coronastatus.lt", "COUNTRY_CODE": "lt", "MAP_CENTER": "55.1735998, 23.8948016", "COUNTRY_NAME": "Lietuvai"},{"BASE_URL": "coronastatus.cl", "COUNTRY_CODE": "cl", "MAP_CENTER": "-33.4706, -70.6368", "COUNTRY_NAME": "Chile"},{"BASE_URL": "coronastatustr.com", "COUNTRY_CODE": "tr", "MAP_CENTER": "39.0100,30.6885", "COUNTRY_NAME": "Türkiye"}] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2afd27e9..00000000 --- a/package-lock.json +++ /dev/null @@ -1,10732 +0,0 @@ -{ - "name": "covid", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "json5": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", - "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", - "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", - "dev": true, - "requires": { - "@babel/types": "^7.9.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", - "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", - "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", - "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", - "dev": true - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", - "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.0", - "@babel/types": "^7.9.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", - "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@fullhuman/postcss-purgecss": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-1.3.0.tgz", - "integrity": "sha512-zvfS3dPKD2FAtMcXapMJXGbDgEp9E++mLR6lTgSruv6y37uvV5xJ1crVktuC1gvnmMwsa7Zh1m05FeEiz4VnIQ==", - "dev": true, - "requires": { - "postcss": "^7.0.14", - "purgecss": "^1.4.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@jest/console": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.6.tgz", - "integrity": "sha512-bGp+0PicZVCEhb+ifnW9wpKWONNdkhtJsRE7ap729hiAfTvCN6VhGx0s/l/V/skA2pnyqq+N/7xl9ZWfykDpsg==", - "dev": true, - "requires": { - "@jest/source-map": "^25.2.6", - "chalk": "^3.0.0", - "jest-util": "^25.2.6", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.2.7.tgz", - "integrity": "sha512-Nd6ELJyR+j0zlwhzkfzY70m04hAur0VnMwJXVe4VmmD/SaQ6DEyal++ERQ1sgyKIKKEqRuui6k/R0wHLez4P+g==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/reporters": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.3", - "jest-changed-files": "^25.2.6", - "jest-config": "^25.2.7", - "jest-haste-map": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-resolve-dependencies": "^25.2.7", - "jest-runner": "^25.2.7", - "jest-runtime": "^25.2.7", - "jest-snapshot": "^25.2.7", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", - "jest-watcher": "^25.2.7", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "realpath-native": "^2.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.6.tgz", - "integrity": "sha512-17WIw+wCb9drRNFw1hi8CHah38dXVdOk7ga9exThhGtXlZ9mK8xH4DjSB9uGDGXIWYSHmrxoyS6KJ7ywGr7bzg==", - "dev": true, - "requires": { - "@jest/fake-timers": "^25.2.6", - "@jest/types": "^25.2.6", - "jest-mock": "^25.2.6" - } - }, - "@jest/fake-timers": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.6.tgz", - "integrity": "sha512-A6qtDIA2zg/hVgUJJYzQSHFBIp25vHdSxW/s4XmTJAYxER6eL0NQdQhe4+232uUSviKitubHGXXirt5M7blPiA==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-util": "^25.2.6", - "lolex": "^5.0.0" - } - }, - "@jest/reporters": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.2.6.tgz", - "integrity": "sha512-DRMyjaxcd6ZKctiXNcuVObnPwB1eUs7xrUVu0J2V0p5/aZJei5UM9GL3s/bmN4hRV8Mt3zXh+/9X2o0Q4ClZIA==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "jest-haste-map": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-util": "^25.2.6", - "jest-worker": "^25.2.6", - "node-notifier": "^6.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^3.1.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz", - "integrity": "sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "@jest/test-result": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.6.tgz", - "integrity": "sha512-gmGgcF4qz/pkBzyfJuVHo2DA24kIgVQ5Pf/VpW4QbyMLSegi8z+9foSZABfIt5se6k0fFj/3p/vrQXdaOgit0w==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/types": "^25.2.6", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.2.7.tgz", - "integrity": "sha512-s2uYGOXONDSTJQcZJ9A3Zkg3hwe53RlX1HjUNqjUy3HIqwgwCKJbnAKYsORPbhxXi3ARMKA7JNBi9arsTxXoYw==", - "dev": true, - "requires": { - "@jest/test-result": "^25.2.6", - "jest-haste-map": "^25.2.6", - "jest-runner": "^25.2.7", - "jest-runtime": "^25.2.7" - } - }, - "@jest/transform": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.6.tgz", - "integrity": "sha512-rZnjCjZf9avPOf9q/w9RUZ9Uc29JmB53uIXNJmNz04QbDMD5cR/VjfikiMKajBsXe2vnFl5sJ4RTt+9HPicauQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^25.2.6", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^3.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.6", - "jest-regex-util": "^25.2.6", - "jest-util": "^25.2.6", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "realpath-native": "^2.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.6.tgz", - "integrity": "sha512-myJTTV37bxK7+3NgKc4Y/DlQ5q92/NOwZsZ+Uch7OXdElxOg61QYc72fPYNAjlvbnJ2YvbXLamIsa9tj48BmyQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - } - }, - "@sinonjs/commons": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz", - "integrity": "sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@types/babel__core": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", - "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", - "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz", - "integrity": "sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cookie-parser": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz", - "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/cors": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.6.tgz", - "integrity": "sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" - }, - "@types/express": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz", - "integrity": "sha512-DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-rate-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express-rate-limit/-/express-rate-limit-5.0.0.tgz", - "integrity": "sha512-tVRtvshGIYTNiUET3XJaONn1Li0V9mhi9Tb23Kf3rJ19hsgbCywkZBOf5Xhd9OXBO0Ssw7B+qAHL77xe/TiqUw==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz", - "integrity": "sha512-sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/range-parser": "*" - } - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/i18n": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.8.6.tgz", - "integrity": "sha512-LUJ+htzQKV6HnUIfLpDVtoEq14xEqD+WjgU4yx9Wzo3rhgvCQcDFafhsYcjTb6XyYd9xDEYKNZjR0LPe+fNMyw==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.1.tgz", - "integrity": "sha512-msra1bCaAeEdkSyA0CZ6gW1ukMIvZ5YoJkdXw/qhQdsuuDlFTcEUrUw8CLCPt2rVRUfXlClVvK2gvPs9IokZaA==", - "dev": true, - "requires": { - "jest-diff": "^25.2.1", - "pretty-format": "^25.2.1" - } - }, - "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/mime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", - "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==", - "dev": true - }, - "@types/mime-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz", - "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "@types/node": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz", - "integrity": "sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ==" - }, - "@types/node-fetch": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.5.tgz", - "integrity": "sha512-IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/pg": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-7.14.3.tgz", - "integrity": "sha512-go5zddQ1FrUQHeBvqPzQ1svKo4KKucSwvqLsvwc/EIuQ9sxDA21b68xc/RwhzAK5pPCnez8NrkYatFIGdJBVvA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/pg-types": "*" - } - }, - "@types/pg-types": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/@types/pg-types/-/pg-types-1.11.5.tgz", - "integrity": "sha512-L8ogeT6vDzT1vxlW3KITTCt+BVXXVkLXfZ/XNm6UqbcJgxf+KPO7yjWx7dQQE8RW07KopL10x2gNMs41+IkMGQ==", - "dev": true - }, - "@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true - }, - "@types/puppeteer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-2.0.1.tgz", - "integrity": "sha512-G8vEyU83Bios+dzs+DZGpAirDmMqRhfFBJCkFrg+A5+6n5EPPHxwBLImJto3qjh0mrBXbLBCyuahhhtTrAfR5g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", - "dev": true - }, - "@types/qs": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.1.tgz", - "integrity": "sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", - "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" - } - }, - "@types/sqlite3": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.6.tgz", - "integrity": "sha512-OBsK0KIGUICExQ/ZvnPY4cKx5Kz4NcrVyGTIvOL5y4ajXu7r++RfBajfpGfGDmDVCKcoCDX1dO84/oeyeITnxA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", - "dev": true - }, - "@types/swagger-ui-express": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.2.tgz", - "integrity": "sha512-t9teFTU8dKe69rX9EwL6OM2hbVquYdFM+sQ0REny4RalPlxAm+zyP04B12j4c7qEuDS6CnlwICywqWStPA3v4g==", - "dev": true, - "requires": { - "@types/express": "*", - "@types/serve-static": "*" - } - }, - "@types/yargs": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", - "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz", - "integrity": "sha512-4yUnLv40bzfzsXcTAtZyTjbiGUXMrcIJcIMioI22tSOyAxpdXiZ4r7YQUU8Jj6XXrLz9d5aMHPQf5JFR7h27Nw==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "2.26.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.26.0.tgz", - "integrity": "sha512-RELVoH5EYd+JlGprEyojUv9HeKcZqF7nZUGSblyAw1FwOGNnmQIU8kxJ69fttQvEwCsX5D6ECJT8GTozxrDKVQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.26.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.26.0.tgz", - "integrity": "sha512-+Xj5fucDtdKEVGSh9353wcnseMRkPpEAOY96EEenN7kJVrLqy/EVwtIh3mxcUz8lsFXW1mT5nN5vvEam/a5HiQ==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.26.0", - "@typescript-eslint/typescript-estree": "2.26.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.26.0.tgz", - "integrity": "sha512-3x4SyZCLB4zsKsjuhxDLeVJN6W29VwBnYpCsZ7vIdPel9ZqLfIZJgJXO47MNUkurGpQuIBALdPQKtsSnWpE1Yg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^6.3.0", - "tsutils": "^3.17.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "abab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", - "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true - } - } - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", - "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==" - }, - "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - } - } - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.5.tgz", - "integrity": "sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg==", - "requires": { - "browserslist": "^4.11.0", - "caniuse-lite": "^1.0.30001036", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.27", - "postcss-value-parser": "^4.0.3" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, - "axobject-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", - "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==", - "dev": true - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-jest": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.2.6.tgz", - "integrity": "sha512-MDJOAlwtIeIQiGshyX0d2PxTbV73xZMpNji40ivVTPQOm59OdRR9nYCkffqI7ugtsK4JR98HgNKbDbuVf4k5QQ==", - "dev": true, - "requires": { - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.2.6", - "chalk": "^3.0.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz", - "integrity": "sha512-qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw==", - "dev": true, - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-jest": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.2.6.tgz", - "integrity": "sha512-Xh2eEAwaLY9+SyMt/xmGZDnXTW/7pSaBPG0EMo7EuhvosFKVWYB6CqwYD31DaEQuoTL090oDZ0FEqygffGRaSQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-bigint": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^25.2.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserslist": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz", - "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==", - "requires": { - "caniuse-lite": "^1.0.30001038", - "electron-to-chromium": "^1.3.390", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001039", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz", - "integrity": "sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", - "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.3.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - } - } - }, - "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", - "dev": true - }, - "connect-sqlite3": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/connect-sqlite3/-/connect-sqlite3-0.9.11.tgz", - "integrity": "sha1-TlQVXcLq3ypZmDhbLzXoPdkkCy0=", - "requires": { - "sqlite3": "^4.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-parser": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz", - "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==", - "requires": { - "cookie": "0.4.0", - "cookie-signature": "1.0.6" - } - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", - "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==" - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" - }, - "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "dev": true, - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", - "dev": true - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", - "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "csv-express": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/csv-express/-/csv-express-1.2.2.tgz", - "integrity": "sha1-hPwWQg7loyTh5m4V/KKPvbmlz2Q=", - "requires": { - "iconv-lite": "^0.4.13" - } - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "dependency-graph": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.8.1.tgz", - "integrity": "sha512-g213uqF8fyk40W8SBjm079n3CZB4qSpCrA2ye1fLGzH/4HEgB6tzuW2CbLE7leb4t45/6h44Ud59Su1/ROTfqw==" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.2.tgz", - "integrity": "sha512-IncmUpn1yN84hy2shb0POJ80FWrfGNY0cxO9f4v+/sG7qcBvAtVWUA1IdzY/8EYUmOVhoKJVdJjNd3AZcnxOjA==" - }, - "electron-to-chromium": { - "version": "1.3.397", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz", - "integrity": "sha512-zcUd1p/7yzTSdWkCTrqGvbnEOASy96d0RJL/lc5BDJoO23Z3G/VHd0yIPbguDU9n8QNUTCigLO7oEdtOb7fp2A==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", - "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - } - } - }, - "eslint-config-airbnb": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.1.0.tgz", - "integrity": "sha512-kZFuQC/MPnH7KJp6v95xsLBf63G/w7YqdPfQ0MUanxQ7zcKUNG8j+sSY860g3NwCBOa62apw16J6pRN+AOgXzw==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^14.1.0", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1" - } - }, - "eslint-config-airbnb-base": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz", - "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.9", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1" - } - }, - "eslint-config-prettier": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz", - "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - }, - "dependencies": { - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "eslint-import-resolver-typescript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.0.0.tgz", - "integrity": "sha512-bT5Frpl8UWoHBtY25vKUOMoVIMlJQOMefHLyQ4Tz3MQpIZ2N6yYKEEIHMo38bszBNUuMBW6M3+5JNYxeiGFH4w==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "is-glob": "^4.0.1", - "resolve": "^1.12.0", - "tiny-glob": "^0.2.6", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", - "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.5", - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", - "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.2", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^7.0.2", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - } - } - }, - "eslint-plugin-prettier": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", - "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", - "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", - "dev": true, - "requires": { - "estraverse": "^5.0.0" - }, - "dependencies": { - "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expect": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.2.7.tgz", - "integrity": "sha512-yA+U2Ph0MkMsJ9N8q5hs9WgWI6oJYfecdXta6LkP/alY/jZZL1MHlJ2wbLh60Ucqf3G+51ytbqV3mlGfmxkpNw==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "ansi-styles": "^4.0.0", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.2.7", - "jest-message-util": "^25.2.6", - "jest-regex-util": "^25.2.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "express-rate-limit": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.1.1.tgz", - "integrity": "sha512-puA1zcCx/quwWUOU6pT6daCt6t7SweD9wKChKhb+KSgFMKRwS81C224hiSAUANw/gnSHiwEhgozM/2ezEBZPeA==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", - "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz", - "integrity": "sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==", - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-stdin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", - "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalyzer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.4.tgz", - "integrity": "sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==", - "dev": true - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - }, - "globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", - "dev": true, - "requires": { - "agent-base": "5", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "i18n": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.6.tgz", - "integrity": "sha512-aMsJq8i1XXrb+BBsgmJBwak9mr69zPEIAUPb6c5yw2G/O4k1Q52lBxL+agZdQDN/RGf1ylQzrCswsOOgIiC1FA==", - "requires": { - "debug": "*", - "make-plural": "^6.0.1", - "math-interval-parser": "^2.0.1", - "messageformat": "^2.3.0", - "mustache": "*", - "sprintf-js": "^1.1.2" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", - "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-25.2.7.tgz", - "integrity": "sha512-XV1n/CE2McCikl4tfpCY950RytHYvxdo/wvtgmn/qwA8z1s16fuvgFL/KoPrrmkqJTaPMUlLVE58pwiaTX5TdA==", - "dev": true, - "requires": { - "@jest/core": "^25.2.7", - "import-local": "^3.0.2", - "jest-cli": "^25.2.7" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-cli": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.2.7.tgz", - "integrity": "sha512-OOAZwY4Jkd3r5WhVM5L3JeLNFaylvHUczMLxQDVLrrVyb1Cy+DNJ6MVsb5TLh6iBklB42m5TOP+IbOgKGGOtMw==", - "dev": true, - "requires": { - "@jest/core": "^25.2.7", - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^25.2.7", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", - "prompts": "^2.0.1", - "realpath-native": "^2.0.0", - "yargs": "^15.3.1" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-changed-files": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.2.6.tgz", - "integrity": "sha512-F7l2m5n55jFnJj4ItB9XbAlgO+6umgvz/mdK76BfTd2NGkvGf9x96hUXP/15a1K0k14QtVOoutwpRKl360msvg==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "execa": "^3.2.0", - "throat": "^5.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-config": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.2.7.tgz", - "integrity": "sha512-rIdPPXR6XUxi+7xO4CbmXXkE6YWprvlKc4kg1SrkCL2YV5m/8MkHstq9gBZJ19Qoa3iz/GP+0sTG/PcIwkFojg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.2.7", - "@jest/types": "^25.2.6", - "babel-jest": "^25.2.6", - "chalk": "^3.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "jest-environment-jsdom": "^25.2.6", - "jest-environment-node": "^25.2.6", - "jest-get-type": "^25.2.6", - "jest-jasmine2": "^25.2.7", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", - "micromatch": "^4.0.2", - "pretty-format": "^25.2.6", - "realpath-native": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.6.tgz", - "integrity": "sha512-KuadXImtRghTFga+/adnNrv9s61HudRMR7gVSbP35UKZdn4IK2/0N0PpGZIqtmllK9aUyye54I3nu28OYSnqOg==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.2.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.2.6.tgz", - "integrity": "sha512-VAYrljEq0upq0oERfIaaNf28gC6p9gORndhHstCYF8NWGNQJnzoaU//S475IxfWMk4UjjVmS9rJKLe5Jjjbixw==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.2.6.tgz", - "integrity": "sha512-OgQ01VINaRD6idWJOhCYwUc5EcgHBiFlJuw+ON2VgYr7HLtMFyCcuo+3mmBvuLUH4QudREZN7cDCZviknzsaJQ==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "jest-util": "^25.2.6", - "pretty-format": "^25.2.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.2.6.tgz", - "integrity": "sha512-/o7MZIhGmLGIEG5j7r5B5Az0umWLCHU+F5crwfbm0BzC4ybHTJZOQTFQWhohBg+kbTCNOuftMcqHlVkVduJCQQ==", - "dev": true, - "requires": { - "@jest/environment": "^25.2.6", - "@jest/fake-timers": "^25.2.6", - "@jest/types": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-util": "^25.2.6", - "jsdom": "^15.2.1" - } - }, - "jest-environment-node": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.2.6.tgz", - "integrity": "sha512-D1Ihj14fxZiMHGeTtU/LunhzSI+UeBvlr/rcXMTNyRMUMSz2PEhuqGbB78brBY6Dk3FhJDk7Ta+8reVaGjLWhA==", - "dev": true, - "requires": { - "@jest/environment": "^25.2.6", - "@jest/fake-timers": "^25.2.6", - "@jest/types": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-util": "^25.2.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-haste-map": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.6.tgz", - "integrity": "sha512-nom0+fnY8jwzelSDQnrqaKAcDZczYQvMEwcBjeL3PQ4MlcsqeB7dmrsAniUw/9eLkngT5DE6FhnenypilQFsgA==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.3", - "jest-serializer": "^25.2.6", - "jest-util": "^25.2.6", - "jest-worker": "^25.2.6", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-jasmine2": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.2.7.tgz", - "integrity": "sha512-HeQxEbonp8fUvik9jF0lkU9ab1u5TQdIb7YSU9Fj7SxWtqHNDGyCpF6ZZ3r/5yuertxi+R95Ba9eA91GMQ38eA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^25.2.6", - "@jest/source-map": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "co": "^4.6.0", - "expect": "^25.2.7", - "is-generator-fn": "^2.0.0", - "jest-each": "^25.2.6", - "jest-matcher-utils": "^25.2.7", - "jest-message-util": "^25.2.6", - "jest-runtime": "^25.2.7", - "jest-snapshot": "^25.2.7", - "jest-util": "^25.2.6", - "pretty-format": "^25.2.6", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.2.6.tgz", - "integrity": "sha512-n+aJUM+j/x1kIaPVxzerMqhAUuqTU1PL5kup46rXh+l9SP8H6LqECT/qD1GrnylE1L463/0StSPkH4fUpkuEjA==", - "dev": true, - "requires": { - "jest-get-type": "^25.2.6", - "pretty-format": "^25.2.6" - } - }, - "jest-matcher-utils": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.7.tgz", - "integrity": "sha512-jNYmKQPRyPO3ny0KY1I4f0XW4XnpJ3Nx5ovT4ik0TYDOYzuXJW40axqOyS61l/voWbVT9y9nZ1THL1DlpaBVpA==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.2.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.6.tgz", - "integrity": "sha512-Hgg5HbOssSqOuj+xU1mi7m3Ti2nwSQJQf/kxEkrz2r2rp2ZLO1pMeKkz2WiDUWgSR+APstqz0uMFcE5yc0qdcg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.2.6", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.6.tgz", - "integrity": "sha512-vc4nibavi2RGPdj/MyZy/azuDjZhpYZLvpfgq1fxkhbyTpKVdG7CgmRVKJ7zgLpY5kuMjTzDYA6QnRwhsCU+tA==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6" - } - }, - "jest-pnp-resolver": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", - "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==", - "dev": true - }, - "jest-regex-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", - "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", - "dev": true - }, - "jest-resolve": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.2.6.tgz", - "integrity": "sha512-7O61GVdcAXkLz/vNGKdF+00A80/fKEAA47AEXVNcZwj75vEjPfZbXDaWFmAQCyXj4oo9y9dC9D+CLA11t8ieGw==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^2.0.0", - "resolve": "^1.15.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.7.tgz", - "integrity": "sha512-IrnMzCAh11Xd2gAOJL+ThEW6QO8DyqNdvNkQcaCticDrOAr9wtKT7yT6QBFFjqKFgjjvaVKDs59WdgUhgYnHnQ==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "jest-regex-util": "^25.2.6", - "jest-snapshot": "^25.2.7" - } - }, - "jest-runner": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.2.7.tgz", - "integrity": "sha512-RFEr71nMrtNwcpoHzie5+fe1w3JQCGMyT2xzNwKe3f88+bK+frM2o1v24gEcPxQ2QqB3COMCe2+1EkElP+qqqQ==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/environment": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.3", - "jest-config": "^25.2.7", - "jest-docblock": "^25.2.6", - "jest-haste-map": "^25.2.6", - "jest-jasmine2": "^25.2.7", - "jest-leak-detector": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-runtime": "^25.2.7", - "jest-util": "^25.2.6", - "jest-worker": "^25.2.6", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.2.7.tgz", - "integrity": "sha512-Gw3X8KxTTFylu2T/iDSNKRUQXQiPIYUY0b66GwVYa7W8wySkUljKhibQHSq0VhmCAN7vRBEQjlVQ+NFGNmQeBw==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/environment": "^25.2.6", - "@jest/source-map": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.3", - "jest-config": "^25.2.7", - "jest-haste-map": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-snapshot": "^25.2.7", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", - "realpath-native": "^2.0.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz", - "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==", - "dev": true - }, - "jest-snapshot": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.2.7.tgz", - "integrity": "sha512-Rm8k7xpGM4tzmYhB6IeRjsOMkXaU8/FOz5XlU6oYwhy53mq6txVNqIKqN1VSiexzpC80oWVxVDfUDt71M6XPOA==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^25.2.6", - "@types/prettier": "^1.19.0", - "chalk": "^3.0.0", - "expect": "^25.2.7", - "jest-diff": "^25.2.6", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.2.7", - "jest-message-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "make-dir": "^3.0.0", - "natural-compare": "^1.4.0", - "pretty-format": "^25.2.6", - "semver": "^6.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.6.tgz", - "integrity": "sha512-gpXy0H5ymuQ0x2qgl1zzHg7LYHZYUmDEq6F7lhHA8M0eIwDB2WteOcCnQsohl9c/vBKZ3JF2r4EseipCZz3s4Q==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.6.tgz", - "integrity": "sha512-a4GN7hYbqQ3Rt9iHsNLFqQz7HDV7KiRPCwPgo5nqtTIWNZw7gnT8KchG+Riwh+UTSn8REjFCodGp50KX/fRNgQ==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.2.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.2.7.tgz", - "integrity": "sha512-RdHuW+f49tahWtluTnUdZ2iPliebleROI2L/J5phYrUS6DPC9RB3SuUtqYyYhGZJsbvRSuLMIlY/cICJ+PIecw==", - "dev": true, - "requires": { - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-util": "^25.2.6", - "string-length": "^3.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz", - "integrity": "sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdom": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", - "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^7.1.0", - "acorn-globals": "^4.3.2", - "array-equal": "^1.0.0", - "cssom": "^0.4.1", - "cssstyle": "^2.0.0", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.1", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.2.0", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.7", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^7.0.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, - "lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - }, - "dependencies": { - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "make-plural": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.1.0.tgz", - "integrity": "sha512-0ekbPHqxcdRcmjZ43TkRuejK5rXgMF1OjG4FVnVHgCvOcjrexaSX7a0dfAvqhOm1qWPgjYnXtmz3cHpHW5ZewA==" - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" - }, - "messageformat": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", - "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", - "requires": { - "make-plural": "^4.3.0", - "messageformat-formatters": "^2.0.1", - "messageformat-parser": "^4.1.2" - }, - "dependencies": { - "make-plural": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", - "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "messageformat-formatters": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", - "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" - }, - "messageformat-parser": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.2.tgz", - "integrity": "sha512-7dWuifeyldz7vhEuL96Kwq1fhZXBW+TUfbnHN4UCrCxoXQTYjHnR78eI66Gk9LaLLsAvzPNVJBaa66DRfFNaiA==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "requires": { - "mime-db": "1.43.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mustache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz", - "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "needle": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz", - "integrity": "sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", - "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.1.1", - "semver": "^6.3.0", - "shellwords": "^0.1.1", - "which": "^1.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "optional": true - } - } - }, - "node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "node-releases": { - "version": "1.1.53", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", - "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==" - }, - "nodemon": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz", - "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==", - "dev": true, - "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^2.5.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "normalize.css": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-each-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", - "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pg": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/pg/-/pg-7.18.2.tgz", - "integrity": "sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA==", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "0.1.3", - "pg-packet-stream": "^1.1.0", - "pg-pool": "^2.0.10", - "pg-types": "^2.1.0", - "pgpass": "1.x", - "semver": "4.3.2" - }, - "dependencies": { - "semver": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", - "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=" - } - } - }, - "pg-connection-string": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz", - "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=" - }, - "pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" - }, - "pg-packet-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz", - "integrity": "sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg==" - }, - "pg-pool": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.10.tgz", - "integrity": "sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==" - }, - "pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz", - "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=", - "requires": { - "split": "^1.0.0" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-cli": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.0.tgz", - "integrity": "sha512-tCGK0GO2reu644dUHxks8U2SAtKnzftQTAXN1dwzFPoKXZr0b7VX4vTkQ2Pl2Lunas6+o8uHR56hlcYBm1srZg==", - "requires": { - "chalk": "^3.0.0", - "chokidar": "^3.3.0", - "dependency-graph": "^0.8.0", - "fs-extra": "^8.1.0", - "get-stdin": "^7.0.0", - "globby": "^10.0.1", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "postcss-reporter": "^6.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-functions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", - "integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", - "requires": { - "glob": "^7.1.2", - "object-assign": "^4.1.1", - "postcss": "^6.0.9", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", - "integrity": "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==", - "requires": { - "camelcase-css": "^2.0.1", - "postcss": "^7.0.18" - } - }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-nested": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.1.tgz", - "integrity": "sha512-AMayXX8tS0HCp4O4lolp4ygj9wBn32DJWXvG6gCv+ZvJrEa00GUxJcJEEzMh87BIe6FrWdYkpR2cuyqHKrxmXw==", - "requires": { - "postcss": "^7.0.21", - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-reporter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", - "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", - "requires": { - "chalk": "^2.4.1", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "postcss": "^7.0.7" - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", - "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==" - }, - "postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" - }, - "postgres-date": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.4.tgz", - "integrity": "sha512-bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA==" - }, - "postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "requires": { - "xtend": "^4.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "pretty-format": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.6.tgz", - "integrity": "sha512-DEiWxLBaCHneffrIT4B+TpMvkV9RNvvJrd3lY9ew1CEQobDzEXmYT1mg0hJhljZty7kCc10z13ohOFAE8jrUDg==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", - "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.4" - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "pstree.remy": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", - "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "puppeteer": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-2.1.1.tgz", - "integrity": "sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg==", - "dev": true, - "requires": { - "@types/mime-types": "^2.1.0", - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^4.0.0", - "mime": "^2.0.3", - "mime-types": "^2.1.25", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "purgecss": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz", - "integrity": "sha512-hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.0", - "yargs": "^14.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "requires": { - "pify": "^2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "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" - } - }, - "readdirp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", - "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", - "requires": { - "picomatch": "^2.0.7" - } - }, - "realpath-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", - "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", - "dev": true - }, - "reduce-css-calc": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz", - "integrity": "sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==", - "requires": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", - "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "request-promise-native": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", - "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", - "dev": true, - "requires": { - "request-promise-core": "1.1.3", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "dev": true, - "requires": { - "xmlchars": "^2.1.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { - "through": "2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "sqlite3": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.1.tgz", - "integrity": "sha512-CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==", - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.11.0", - "request": "^2.87.0" - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz", - "integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz", - "integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - }, - "swagger-ui-dist": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.25.0.tgz", - "integrity": "sha512-vwvJPPbdooTvDwLGzjIXinOXizDJJ6U1hxnJL3y6U3aL1d2MSXDmKg2139XaLBhsVZdnQJV2bOkX4reB+RXamg==" - }, - "swagger-ui-express": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.1.4.tgz", - "integrity": "sha512-Ea96ecpC+Iq9GUqkeD/LFR32xSs8gYqmTW1gXCuKg81c26WV6ZC2FsBSPVExQP6WkyUuz5HEiR0sEv/HCC343g==", - "requires": { - "swagger-ui-dist": "^3.18.1" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tailwindcss": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.2.0.tgz", - "integrity": "sha512-CKvY0ytB3ze5qvynG7qv4XSpQtFNGPbu9pUn8qFdkqgD8Yo/vGss8mhzbqls44YCXTl4G62p3qVZBj45qrd6FQ==", - "requires": { - "autoprefixer": "^9.4.5", - "bytes": "^3.0.0", - "chalk": "^3.0.0", - "detective": "^5.2.0", - "fs-extra": "^8.0.0", - "lodash": "^4.17.15", - "node-emoji": "^1.8.1", - "normalize.css": "^8.0.1", - "postcss": "^7.0.11", - "postcss-functions": "^3.0.0", - "postcss-js": "^2.0.0", - "postcss-nested": "^4.1.1", - "postcss-selector-parser": "^6.0.0", - "pretty-hrtime": "^1.0.3", - "reduce-css-calc": "^2.1.6", - "resolve": "^1.14.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tiny-glob": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.6.tgz", - "integrity": "sha512-A7ewMqPu1B5PWwC3m7KVgAu96Ch5LA0w4SnEN/LbDREj/gAD0nPWboRbn8YoP9ISZXqeNAlMvKSKoEuhcfK3Pw==", - "dev": true, - "requires": { - "globalyzer": "^0.1.0", - "globrex": "^0.1.1" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - }, - "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "ts-jest": { - "version": "25.3.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.3.1.tgz", - "integrity": "sha512-O53FtKguoMUByalAJW+NWEv7c4tus5ckmhfa7/V0jBb2z8v5rDSLFC1Ate7wLknYPC1euuhY6eJjQq4FtOZrkg==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "micromatch": "4.x", - "mkdirp": "1.x", - "resolve": "1.x", - "semver": "6.x", - "yargs-parser": "18.x" - }, - "dependencies": { - "json5": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", - "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "ts-node": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.8.1.tgz", - "integrity": "sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg==", - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "3.1.1" - } - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==" - }, - "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "requires": { - "debug": "^2.2.0" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } - } - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", - "dev": true - }, - "v8-to-istanbul": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz", - "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "dev": true, - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "dev": true, - "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "dev": true - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", - "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - } - } -} From efe99837a5f38fb33180a439e732e804437cddff Mon Sep 17 00:00:00 2001 From: zac Date: Fri, 10 Apr 2020 11:24:59 -0400 Subject: [PATCH 39/39] Fix links to countries bug found by @trkoch --- app/views/pages/landing.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/pages/landing.ejs b/app/views/pages/landing.ejs index d07237bb..9563784b 100644 --- a/app/views/pages/landing.ejs +++ b/app/views/pages/landing.ejs @@ -434,7 +434,7 @@ var a = document.createElement("a"); a.classList.add("px-2"); a.classList.add("py-1"); - a.href = countries[i].url; + a.href = "http://"+countries[i].url; var span = document.createElement("span"); span.innerText = countries[i].countryName; @@ -505,7 +505,7 @@ +countries[index].flag +"'>" +countries[index].countryName - +"