From 83496ec50d5210fb84f786b5927f4300212958a1 Mon Sep 17 00:00:00 2001 From: Stefan Date: Wed, 12 Feb 2020 16:57:01 +0100 Subject: [PATCH 01/67] refactor && add sessionStore functionality && sso --- examples/basic-mongo/config.js | 48 +- examples/basic-mongo/index.js | 2 +- index.js | 4 - lib/config.js | 61 - lib/controller.js | 327 --- lib/helpers.js | 23 - lib/hooks.js | 24 - lib/middleware/preventBrowserCache.js | 9 - lib/router.js | 27 - lib/service.js | 127 -- package-lock.json | 2625 ++++++++++++++++++++++++- package.json | 11 +- readme.md | 433 +--- 13 files changed, 2570 insertions(+), 1151 deletions(-) delete mode 100644 lib/config.js delete mode 100644 lib/controller.js delete mode 100644 lib/helpers.js delete mode 100644 lib/hooks.js delete mode 100644 lib/middleware/preventBrowserCache.js delete mode 100644 lib/router.js delete mode 100644 lib/service.js diff --git a/examples/basic-mongo/config.js b/examples/basic-mongo/config.js index 8facd70..af253db 100644 --- a/examples/basic-mongo/config.js +++ b/examples/basic-mongo/config.js @@ -1,32 +1,30 @@ module.exports = { mongoConnectionString: process.env.MONGO_CONNECTIONSTRING || 'mongodb://localhost:27017/basic-mongo-auth', port: process.env.PORT || '2000', - session:{ - name: process.env.SESSION_NAME || 'authsessionid', - secret: process.env.SESSION_SECRET || 'thisisthesessionsecretusedtosigncookie', - resave: false, - saveUninitialized: true, - }, - auth: { - oauthHost: process.env.OAUTH_HOST || 'https://api-oauth2-o.antwerpen.be', - apiHost: process.env.API_HOST || 'https://api-gw-o.antwerpen.be', - errorRedirect: process.env.AUTH_ERROR_REDIRECT || '/', - basePath: process.env.AUTH_BASEPATH || '/auth', - auth: { - clientId: process.env.CLIENT_ID || 'your-client-id', - clientSecret: process.env.CLIENT_SECRET || 'your-client-secret', + '@digipolis/auth': { + basePath: '/auth', + clientId: process.env.CLIENT_ID || 'your-client-id', + clientSecret: process.env.CLIENT_SECRET || 'your-client-secret', + oauthHost: 'https://api-oauth2-a.antwerpen.be', + consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', + scopeGroups: { + personalInformation: [ + 'astad.aprofiel.v1.name', + 'astad.aprofiel.v1.avatar', + 'astad.aprofiel.v1.email', + ], + high: ['crspersoon.nationalnumber'] }, - serviceProviders: { - aprofiel: { - scopes: process.env.APROFIEL_SCOPES || 'username', - url: process.env.APROFIEL_URL || 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/v1/me', - identifier: process.env.APROFIEL_IDENTIFIER || 'astad.aprofiel.v1', - tokenUrl: process.env.APROFIEL_TOKENURL || 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] + defaultScopes: ['username'], + url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', + hooks: { + loginSuccess: [ + (req, res, next) => { + console.log('hello'); + req.session.user.hookTest = 'hello'; + return next(); } - } + ] } } -} +} \ No newline at end of file diff --git a/examples/basic-mongo/index.js b/examples/basic-mongo/index.js index d978615..ee0fe88 100644 --- a/examples/basic-mongo/index.js +++ b/examples/basic-mongo/index.js @@ -9,7 +9,7 @@ let { auth: authConfig, mongoConnectionString, port = 2000 -} = require('./config'); +} = require('./old-config'); const app = express(); diff --git a/index.js b/index.js index a5278fa..52a0607 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,3 @@ -'use strict'; const createRouter = require('./lib/router'); -createRouter.MPROFIEL = 'astad.mprofiel.v1'; -createRouter.APROFIEL = 'astad.aprofiel.v1'; - module.exports = createRouter; diff --git a/lib/config.js b/lib/config.js deleted file mode 100644 index a633a95..0000000 --- a/lib/config.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -let config; -const REQUIRED_PROPS = ['oauthHost', 'apiHost', 'auth.clientId', 'auth.clientSecret']; -const REQUIRED_PERMISSION_PROPS = ['auth.apiKey', 'apiHost', 'applicationName']; -const getProp = require('lodash.get'); - -const defaultConfig = { - basePath: '/auth', - auth: { - apiKey: false, - clientId: false, - clientSecret: false - }, - errorRedirect: '/', - serviceProviders: { - aprofiel: { - scopes: '', - key: '', - url: '', - identifier: 'astad.aprofiel.v1', - tokenUrl: '/astad/aprofiel/v1/oauth2/token', - hooks: { - loginSuccess: false, - }, - }, - mprofiel: { - fetchPermissions: false, - } - } -}; - -function checkConfigValidity(options) { - REQUIRED_PROPS.forEach(key => { - if (!getProp(options, key)) { - throw new Error(`At least ${REQUIRED_PROPS.join(', ')} are required properties}`); - } - }); - - if (!options.fetchPermissions) { - return; - } - - REQUIRED_PERMISSION_PROPS.forEach(key => { - if (!getProp(options, key)) { - throw new Error(`At least - ${REQUIRED_PERMISSION_PROPS.join(', ')} are required properties} when fetchPermissions == true`); - } - }); -} -function createConfig(options) { - checkConfigValidity(options); - const auth = Object.assign({}, defaultConfig.auth, options.auth); - return Object.assign({}, defaultConfig, options, { auth: auth }, { - basePath: options.basePath || defaultConfig.basePath - }); -} - -module.exports = { - createConfig -}; diff --git a/lib/controller.js b/lib/controller.js deleted file mode 100644 index 39a74a5..0000000 --- a/lib/controller.js +++ /dev/null @@ -1,327 +0,0 @@ -'use strict'; -const async = require('async'); -const bcrypt = require('bcryptjs'); -const querystring = require('querystring'); -const uuid = require('uuid'); - -const hookService = require('./hooks'); -const createService = require('./service'); -const helpers = require('./helpers'); - -const EXPIRY_MARGIN = 5 * 60 * 1000; -module.exports = function createController(config) { - const service = createService(config); - - function createLoginUrl(host, serviceName, key, options) { - const serviceProvider = config.serviceProviders[serviceName] || {}; - const query = { - client_id: config.auth.clientId, - redirect_uri: serviceProvider.redirectUri || `${host}${config.basePath}/login/callback`, - state: key, - scope: serviceProvider.scopes, - service: serviceProvider.identifier, - save_consent: true, - response_type: 'code', - } - - if (options.auth_type) { - query.auth_type = options.auth_type; - } else if(serviceProvider.authenticationType) { - query.auth_type = serviceProvider.authenticationType; - } - - if(options.lng) { - query.lng = options.lng; - } - - if (serviceProvider.version === 'v2') { - delete query.service; - query.auth_methods = options.auth_methods || serviceProvider.authMethods; - query.minimal_assurance_level= serviceProvider.minimalAssuranceLevel; - } - - Object.keys(query).forEach(key => { - if (!query[key]) { - delete query[key]; - } - }); - - const authPath = (serviceProvider.version === 'v2') ? '/v2/authorize' : '/v1/authorize'; - - return `${config.oauthHost}${authPath}?${querystring.stringify(query)}`; - } - - function createLogoutUrl(serviceName, options) { - const serviceProvider = config.serviceProviders[serviceName] || {}; - const data = JSON.stringify({ - user_id: options.userId, - access_token: options.token, - redirect_uri: options.redirectUri - }); - - const query = { - client_id: config.auth.clientId, - service: config.serviceProviders[serviceName].identifier, - data: helpers.encrypt(data, config.auth.clientSecret), - }; - - if(serviceProvider.authenticationType) { - query.auth_type = serviceProvider.authenticationType; - } - - let logoutUrl = `${config.oauthHost}/v1/logout/redirect/encrypted?${querystring.stringify(query)}`; - - if (serviceProvider.version === 'v2') { - logoutUrl = `${config.oauthHost}/v2/logout/redirect/encrypted?${querystring.stringify(query)}`; - } - - return logoutUrl; - } - - function login(req, res) { - const serviceName = req.params.service; - const serviceProvider = config.serviceProviders[serviceName]; - - if (!serviceProvider) { - return res.sendStatus(404); - } - - const host = helpers.getHost(req); - const key = `${serviceName}_${uuid.v4()}`; - const url = createLoginUrl(host, serviceName, key, req.query); - req.session[`${serviceName}_key`] = key; - req.session.fromUrl = req.query.fromUrl || '/'; - - const configuredHooks = serviceProvider.hooks || {}; - - hookService.runHooks(configuredHooks.preLogin, req, res, () => { - return req.session.save(() => res.redirect(url)); - }); - } - - function isLoggedinInService(req, res) { - const serviceName = req.params.service; - const key = config.serviceProviders[serviceName].key || 'user'; - const user = req.session[key]; - if (user) { - return res.json({ - isLoggedin: true, - [key]: user - }); - } - - return res.json({ - isLoggedin: false, - }); - } - - function isLoggedin(req, res) { - const users = {}; - - Object.keys(config.serviceProviders).forEach(serviceProviderKey => { - const userKey = config.serviceProviders[serviceProviderKey].key || 'user'; - if(req.session[userKey]) { - users[userKey] = req.session[userKey]; - } - }); - - if(Object.keys(users).length === 0) { - return res.json({ - isLoggedin: false - }); - } - return res.json(Object.assign({ - isLoggedin: true, - }, users)); - } - - function callback(req, res) { - if (!req.query.code || !req.query.state) { - return res.redirect(config.errorRedirect); - } - - const state = req.query.state; - const serviceName = state.split('_')[0]; - - if (!config.serviceProviders[serviceName]) { - return res.sendStatus(404); - } - - if (req.query.state !== req.session[`${serviceName}_key`]) { - let loginUrl = `${config.basePath}/login/${serviceName}`; - const fromUrl = req.session.fromUrl; - if (fromUrl) { - loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; - } - return res.redirect(loginUrl); - } - - delete req.session[`${serviceName}_key`]; - let hooks = []; - const configuredHooks = config.serviceProviders[serviceName].hooks; - if (configuredHooks && Array.isArray(configuredHooks.loginSuccess)) { - hooks = configuredHooks.loginSuccess.map(hook => { - return (next) => hook(req, res, next); - }); - } - - service.loginUser(req.query.code, serviceName, (err, user, token) => { - if (err) { - console.log('error tijdens login', err); - return res.redirect(config.errorRedirect); - } - - const sessionKey = config.serviceProviders[serviceName].key || 'user'; - user.serviceType = serviceName; - req.session[sessionKey] = user; - req.session[`${sessionKey}Token`] = token; - - async.series(hooks, (error) => { - if (error) { - console.log(error); - return res.redirect(config.errorRedirect); - } - req.session.save(() => res.redirect(req.session.fromUrl || '/')); - }); - }); - } - - function logoutCallback(req, res) { - const serviceName = req.params.service; - - if(!config.serviceProviders[serviceName]) { - return res.sendStatus(404); - } - - let hooks = []; - const configuredHooks = config.serviceProviders[serviceName].hooks; - if (configuredHooks && Array.isArray(configuredHooks.logoutSuccess)) { - hooks = configuredHooks.logoutSuccess.map(hook => { - return (next) => hook(req, res, next); - }); - } - - const key = config.serviceProviders[serviceName].key || 'user'; - - async.series(hooks, () => { - delete req.session[key]; - delete req.session[`${key}Token`]; - delete req.session[`${serviceName}_logoutKey`]; - const tempSession = req.session; - req.session.regenerate(() => { - Object.assign(req.session, tempSession); - req.session.save(() => res.redirect(tempSession.logoutFromUrl || '/')); - }); - }); - } - - function logout(req, res) { - const serviceName = req.params.service; - if (!config.serviceProviders[serviceName]) { - return res.sendStatus(404); - } - - const serviceProvider = config.serviceProviders[serviceName]; - const key = serviceProvider.key || 'user'; - const token = req.session[`${key}Token`]; - const authenticationType = serviceProvider.authenticationType; - if(!req.session[key]) { - return res.redirect('/'); - } - - req.session.logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; - const state = uuid.v4(); - req.session[`${serviceName}_logoutKey`] = state; - - const logoutParams = { - redirectUri: `${helpers.getHost(req)}${config.basePath || '/auth'}/logout/callback/${serviceName}?state=${state}`, - token: token.accessToken, - userId: req.session[key].id, - authenticationType - }; - - if (serviceProvider.version === 'v2' && !req.session[key].id) { - logoutParams.userId = req.session[key].profile.id; - } - - const logoutUrl = createLogoutUrl(serviceName, logoutParams); - const configuredHooks = serviceProvider.hooks || {}; - - hookService.runHooks(configuredHooks.preLogout, req, res, () => { - req.session.save(() => res.redirect(logoutUrl)); - }); - } - - function refresh(req, res, next) { - let tokenKeys = [] - const tokensRefreshFunctions = {}; - Object.keys(config.serviceProviders).map(serviceProviderKey => { - const serviceProvider = config.serviceProviders[serviceProviderKey]; - - if(!serviceProvider.refresh) { - return; - } - const tokenKey = `${serviceProvider.key || 'user'}Token`; - const token = req.session[tokenKey]; - if(tokenKeys.indexOf(tokenKey) === -1 && token) { - tokenKeys.push(tokenKey); - if(new Date(token.expiresIn) <= new Date(Date.now() + EXPIRY_MARGIN)) { - tokensRefreshFunctions[tokenKey] = cb => service.refresh(token, serviceProviderKey, cb); - } - } - }); - - if(Object.keys(tokensRefreshFunctions).length === 0) { - return next(); - } - - async.parallel(tokensRefreshFunctions, (err, result) => { - if(err) { - return next(); - } - - req.session = Object.assign(req.session, result); - req.session.save(() => next()); - }); - } - - function loggedout(req, res, next) { - const { - headerKey = 'x-logout-token', - securityHash = '', - sessionStoreLogoutAdapter: adapter = false - } = config.logout || {}; - - const serviceProvider = config.serviceProviders[req.params.service] || false; - const token = req.get(headerKey) || ''; - - if (!serviceProvider) { - return res.sendStatus(404); - } - - if (!adapter) { - return res.sendStatus(200); - } - if (!bcrypt.compareSync(token, securityHash)) { - return res.sendStatus(401); - } - - const sessionKey = serviceProvider.key || 'user'; - const accessTokenKey = `${sessionKey}Token`; - adapter(sessionKey, accessTokenKey, req.body) - .then(() => res.sendStatus(200)) - .catch((err) => res.status(500).json(err)); - } - - return { - login, - logout, - logoutCallback, - isLoggedinInService, - isLoggedin, - callback, - refresh, - loggedout - } - -} diff --git a/lib/helpers.js b/lib/helpers.js deleted file mode 100644 index 6621103..0000000 --- a/lib/helpers.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -const crypto = require('crypto'); -const ALGORITHM = 'aes-128-ctr'; - -function encrypt(text, password) { - const hash = crypto.createHash('sha1'); - hash.update(password); - const key = hash.digest().slice(0, 16); - const ivBuffer = Buffer.alloc(16); - const cipher = crypto.createCipheriv(ALGORITHM, key, ivBuffer); - let crypted = cipher.update(text, 'utf8', 'hex'); - crypted += cipher.final('hex'); - return crypted; -} - -function getHost(req) { - return `${req.protocol}://${req.get('host')}` -} - -module.exports = { - encrypt, - getHost -}; \ No newline at end of file diff --git a/lib/hooks.js b/lib/hooks.js deleted file mode 100644 index 0130554..0000000 --- a/lib/hooks.js +++ /dev/null @@ -1,24 +0,0 @@ -const async = require('async'); - -function runHooks(configuredHook, req, res, next) { - if (!configuredHook || !Array.isArray(configuredHook)) { - return next(); - } - - const hooks = configuredHook.map(hook => { - return (callback) => hook(req, res, callback); - }); - - async.series(hooks, (error) => { - if (error) { - console.log(error); - return next(error); - } - - return next(); - }); -} - -module.exports = { - runHooks -}; diff --git a/lib/middleware/preventBrowserCache.js b/lib/middleware/preventBrowserCache.js deleted file mode 100644 index c19dbc5..0000000 --- a/lib/middleware/preventBrowserCache.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -module.exports = function preventBrowserCache(req, res, next) { - res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); - res.header('Expires', '-1'); - res.header('Vary', '*'); - res.header('Pragma', 'no-cache'); - next(); -}; diff --git a/lib/router.js b/lib/router.js deleted file mode 100644 index e017c48..0000000 --- a/lib/router.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -const express = require('express'); -const createConfig = require('./config').createConfig; -const createController = require('./controller'); -const preventBrowserCache = require('./middleware/preventBrowserCache'); - -module.exports = function loadRoutes(app, options) { - const config = createConfig(options); - - const basePath = config.basePath; - const controller = createController(config); - - const router = new express.Router(); - // Prevent browser cache on auth calls - - router.get(`${basePath}/login/callback`, preventBrowserCache, controller.callback); - router.get(`${basePath}/login/:service`, preventBrowserCache, controller.login); - router.get(`${basePath}/logout/:service`, preventBrowserCache, controller.logout); - router.get(`${basePath}/isloggedin/:service`, preventBrowserCache, controller.isLoggedinInService); - router.get(`${basePath}/isloggedin`, preventBrowserCache, controller.isLoggedin); - router.get(`${basePath}/logout/callback/:service`, preventBrowserCache, controller.logoutCallback); - router.post(`${basePath}/event/loggedout/:service`, express.json(), controller.loggedout); - app.use(controller.refresh); - - return router; -}; diff --git a/lib/service.js b/lib/service.js deleted file mode 100644 index 0562f06..0000000 --- a/lib/service.js +++ /dev/null @@ -1,127 +0,0 @@ -'use strict'; -const OAuth2 = require('oauth').OAuth2; -const request = require('request'); -const async = require('async'); -const URL = require('url-parse'); -module.exports = function createService(config) { - function createOAuth(serviceName) { - const url = new URL(config.serviceProviders[serviceName].tokenUrl); - return new OAuth2( - config.auth.clientId, - config.auth.clientSecret, - url.origin, - null, - url.pathname, - null - ); - } - - function createToken(results, refreshToken, serviceName) { - return { - accessToken: results.access_token, - refreshToken, - expiresIn: new Date(new Date().getTime() + (results.expires_in * 1000)), - serviceName, - isRefreshing: false - } - } - - function requestUserWithToken(token, serviceName, callback) { - const url = config.serviceProviders[serviceName].url; - request({ - url: url, - auth: { - bearer: token - }, - json: true - }, (err, response, body) => { - if (err) { - return callback(err); - } - if (response.statusCode >= 400) { - return callback(Object.assign({ status: response.statusCode }, (body || {}))); - } - - body.token = token; - return callback(null, body.data || body); - }); - } - - function requestPermissionsWithToken(token, cb) { - - request({ - url: `${config.apiHost}/acpaas/meauthz/v1/applications/${config.applicationName}/permissions`, - auth: { - bearer: token - }, - headers: { - apikey: config.auth.apiKey - }, - json: true - }, (err, response, body) => { - if (err) { - return cb(err); - } - if (response.statusCode >= 400) { - return cb(Object.assign({ status: response.statusCode }, (body || {}))); - } - - return cb(err, body.permissions || []); - }); - } - - function loginUser(code, serviceName, callback) { - - const oauth = createOAuth(serviceName); - oauth.getOAuthAccessToken(code, { - 'grant_type': 'authorization_code' - }, (err, accessToken, refreshToken, OAuthToken) => { - if (err) { - return callback(err); - } - - const actions = { - user: cb => requestUserWithToken(accessToken, serviceName, cb) - }; - - if (serviceName === 'mprofiel' && config.serviceProviders.mprofiel && config.serviceProviders.mprofiel.fetchPermissions) { - actions.permissions = cb => requestPermissionsWithToken(accessToken, cb); - } - - async.parallel(actions, (error, results) => { - if (error) { - return callback(error); - } - const user = results.user; - if (results.permissions) { - user.permissions = results.permissions; - } - - return callback(null, user, createToken(OAuthToken, refreshToken, serviceName)); - }); - }); - } - - function refresh(token, service, callback) { - - const oauth = createOAuth(service); - oauth.getOAuthAccessToken(token.refreshToken, { - 'grant_type': 'refresh_token' - }, (err, accessToken, refreshToken, OAuthToken) => { - if (err) { - return callback(err); - } - - return callback(null, createToken(OAuthToken, refreshToken)); - }); - } - - return { - loginUser, - requestPermissionsWithToken, - requestUserWithToken, - refresh - }; -} - - diff --git a/package-lock.json b/package-lock.json index d9fb10c..dc272a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,72 +13,2181 @@ "@babel/highlight": "^7.0.0" } }, + "@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "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 + }, + "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.5.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", "dev": true, "requires": { - "@babel/types": "^7.5.5", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "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/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "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-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-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" + }, + "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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "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/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + }, + "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/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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@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/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" } }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/parser": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", - "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", - "dev": true + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", + "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } }, "@babel/template": { "version": "7.4.4", @@ -136,6 +2245,43 @@ "to-fast-properties": "^2.0.0" } }, + "@rollup/plugin-node-resolve": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", + "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.6", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/pluginutils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", + "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "dev": true, + "requires": { + "estree-walker": "^1.0.1" + } + }, + "@types/node": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", + "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "ajv": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", @@ -239,6 +2385,15 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -274,6 +2429,23 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserslist": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", + "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001023", + "electron-to-chromium": "^1.3.341", + "node-releases": "^1.1.47" + } + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, "caching-transform": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", @@ -292,6 +2464,12 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, + "caniuse-lite": { + "version": "1.0.30001027", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", + "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -366,9 +2544,9 @@ } }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "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, "optional": true }, @@ -403,6 +2581,24 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -525,6 +2721,12 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "electron-to-chromium": { + "version": "1.3.346", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", + "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -536,6 +2738,14 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -596,6 +2806,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", @@ -974,6 +3190,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "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", @@ -1015,6 +3237,18 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "handlebars": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz", + "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -1095,6 +3329,14 @@ "sshpk": "^1.7.0" } }, + "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" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -1116,6 +3358,15 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, "invert-kv": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", @@ -1152,6 +3403,12 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -1164,8 +3421,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-symbol": { "version": "1.0.2", @@ -1193,6 +3449,15 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -1307,26 +3572,6 @@ "dev": true, "requires": { "handlebars": "^4.1.2" - }, - "dependencies": { - "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "js-tokens": { @@ -1367,6 +3612,23 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -1387,6 +3649,21 @@ "invert-kv": "^2.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 + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -1448,6 +3725,15 @@ "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", "dev": true }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -1676,9 +3962,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, "nested-error-stacks": { @@ -1756,6 +4042,32 @@ "semver": "^5.7.0" } }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node-releases": { + "version": "1.1.48", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", + "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", + "dev": true, + "requires": { + "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 + } + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -1928,14 +4240,6 @@ "requires": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } } }, "os-homedir": { @@ -2085,6 +4389,12 @@ "find-up": "^3.0.0" } }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, "propagate": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", @@ -2148,6 +4458,67 @@ "read-pkg": "^3.0.0" } }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, "release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", @@ -2218,6 +4589,15 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2249,6 +4629,33 @@ } } }, + "rollup-plugin-babel": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", + "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -2310,6 +4717,12 @@ "util": ">=0.10.3 <1" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "spawn-wrap": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", @@ -2490,25 +4903,44 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "uglify-js": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.2.tgz", - "integrity": "sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz", + "integrity": "sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==", "dev": true, "optional": true, "requires": { - "commander": "~2.19.0", + "commander": "~2.20.3", "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } } }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -2575,6 +5007,11 @@ "extsprintf": "^1.2.0" } }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -2599,6 +5036,12 @@ "string-width": "^1.0.2 || 2" } }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", diff --git a/package.json b/package.json index cd2c139..95455c1 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,10 @@ "name": "@digipolis/auth", "version": "1.5.0", "description": "", - "main": "index.js", + "main": "dist/index.cjs.js", + "module": "dist/index.es.js", "scripts": { + "build": "npx rollup -c", "test": "cross-env NODE_ENV=test nyc --reporter=lcov mocha -- -R spec -t 15000 --recursive --slow 2" }, "repository": { @@ -17,6 +19,7 @@ "async": "~2.5.0", "bcryptjs": "^2.4.3", "express": "^4.16.4", + "isomorphic-fetch": "^2.2.1", "lodash.get": "~4.4.2", "oauth": "~0.9.15", "request": "^2.88.0", @@ -24,11 +27,15 @@ "uuid": "~3.1.0" }, "devDependencies": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@rollup/plugin-node-resolve": "^7.1.1", "cross-env": "~5.2.0", "mocha": "^6.2.0", "mockery": "~2.1.0", "nock": "~9.0.14", "nyc": "^14.1.1", - "reqres": "~1.3.0" + "reqres": "~1.3.0", + "rollup-plugin-babel": "^4.3.3" } } diff --git a/readme.md b/readme.md index 42c88e5..7a6abf7 100644 --- a/readme.md +++ b/readme.md @@ -1,430 +1,3 @@ -# @digipolis/auth - -@digipolis/auth is implemented as an `Express` router. It exposes a couple of endpoints -that can be used in your application to handle the process of logging into a user's -AProfile, mprofile or eid via oAuth. - -## Setup -You should use `express-session` in your application to enable session-storage. -After this step, you can load the `@digipolis/auth` middleware - -```js -app.use(require('@digipolis/auth')(app, configuration)); -``` - -Be sure to load this middleware before your other routes, otherwise the automatic refresh of the user's token won't work properly. - -Also set the `trust proxy` application variable to `true`. Otherwise the callback URL might be constructed with protocol `http` instead of `https`. - -```js -// Trust proxy to make sure the @digipolis/auth module can construct the correct OAuth2 callback URL -app.enable('trust proxy'); -``` - -### API Store configuration - -For this module to fully work, some configuration on the API store is required. -After creating your application on the api store, you should create a contract with the Aprofiel/Mprofiel API. - -![Create Contract](/assets/create-contract.png "Create contract") - -The next step is to navigate to your applications and clicking on actions - -![actions](/assets/oauth-config.png "actions") - - -Click on oauth2 config. You'll find your clientId and secret here. - -![configure callback](/assets/callback.png "callback") - -You'll need to configure your callback path here -normally, it will be `:///auth/login/callback` -(this module exposes this endpoint) - -**Unless you configured a custom redirectUri. in this case, you should enter this one** - -### Event Handler configuration (only needed for Single log out) - -Navigate to the eventhandler and go to the oauth namespace -![oauth namespace](/assets/oauth-namespace.png "oauth namespace") - -Click on the topic related to your login methodology and click on + (add subscription) -![add subscription](/assets/add-subscription.png "add subscription") - -Configure your endpoint with the correct params: - -![subscription configuration](/assets/sub-config.png "subscription configuration") -the push url is `://{basePath}/event/loggedout/{service}` -(basePath defaults to auth). - -You should add a custom header which corresponds to the headerKey in your logout configuration (defaults to `x-logout-token`). Add your token. -(this token will not be known to your application, only the hashed version) - -save your subscription. - - - -### Module Configuration - -- **oauthHost** *string*: The domain corresponding to the oauth implementation - (e.g: https://api-oauth2-o.antwerpen.be'). -- **applicationname** *string*: required if permissions need to be fetched (name known in UM) -- **apiHost** *string*: the hostname corresponding to the API gateway (e.g: https://api-gw-o.antwerpen.be). -- **basePath=/auth (optional)** *string*: the basePath which is appended to the exposed endpoints. -- **errorRedirect=/ (optional)** *string*: where to redirect if the login fails (e.g: /login) -- **logout** (optional, but needed for SLO with the event handler) - - **headerKey** *string*: the name of the http header where the key is located (defaults to `x-logout-token`) - - **securityHash** *string* bcrypt hash of the token that will be placed in the http header. - - **sessionStoreLogoutAdapter** *Function*: function that returns a promise when the sessionStore has been successfully updated and rejects otherwise. This adapter is responsible for removing the session. [More information](#creating-and-using-sessionstorelogoutadapters) -- **auth** (credentials can be acquired from the api store) - - **clientId** *string*: client id of your application - - **clientSecret** *string*: client secret of your application - - **apiKey** *string*: required to fetch permissions (not needed otherwise) -- **serviceProviders**: object of the available oauth login services (currently aprofiel & MProfiel). You only need to configure the ones that you need. - - **aprofiel** (optional if not needed): - - **scopes** *string*: The scopes you want of the profile (space separated identifiers) - - **url** *string*: the url where to fetch the aprofile after the login succeeded - - **identifier** *string*: the service identifier, used to create login url. - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri, do not use unless absolutely necessary - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - - **mprofiel** (optional if not needed): - - **scopes** *string*: the scopes you want for the profile - - **url** *string*: url where to fetch the profile - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **fetchPermissions=false** *boolean*: whether to fetch permissions in the User Man. engine - - **authenticationType=form** *string*: `form` or `so`, can be used together, see example - - **identifier=astad.mprofiel.v1** *string*: the service identifier, used to create the login url. - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - - **eid** (optional if not needed): - - **scopes** *string*: the scopes you want for the profile - - **url** *string*: url where to fetch the profile - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **identifier=acpaas.fasdatastore.v1** *string*: the service identifier, used to create the login url. - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - -### Authentication 2.0 -If you want to use authentication 2.0 you can do so by adding `version: 'v2'` and add the necessary extra config. -Your application needs a contract with the Shared Identity Data API (Similar to the [API Store configuration](#api-store-configuration)) - - - **auth2aprofiel** (optional if not needed): - - **version** *string*: authentication version you want to use (`v2` in this case). Defaults to v1. - - **minimalAssuranceLevel** *string*: Minimal Assurance Level. We support `low`, `substantial` and `high`. - - **authMethods** *string*: the authentication methods you want to allow. (e.g. `iam-aprofiel-userpass` for simple username/password based authentication) - - **scopes** *string*: the scopes you want for the profile - - **url** *string*: url where to fetch the profile - - **identifier=astad.aprofiel.v1** *string*: the service identifier, used to log out. - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - -Concerning the authentication methods, we support: - -| Name | Assurance level | Description | -| --------------------- | --------------- | -------------------------------------------------------------- | -| iam-aprofiel-userpass | low | Our default aprofiel authentication with username and password | -| fas-citizen-bmid | substantial | Belgian Mobile ID (e.g. Itsme) | -| fas-citizen-otp | substantial | Authentication with one time password (e.g. sms) | -| fas-citizen-totp | substantial | Time-based one time password (e.g. Google Authenticator) | -| fas-citizen-eid | high | Authentication with eID-card and pin-code | - -`iam-aprofiel-userpass` will only work when `minimalAssuranceLevel` is `low`. - -`minimalAssuranceLevel` `high` will only show the `fas-citizen-eid` authentication method. - -In general; if your `minimalAssuranceLevel` is set to `substantial` you can only use `substantial` and above (`high`). - -#### Authentication 2.0 example config -```js - auth2eid: { - version: 'v2', - scopes: 'astad.aprofiel.v1.username astad.aprofiel.v1.name astad.aprofiel.v1.avatar astad.aprofiel.v1.email astad.aprofiel.v1.phone crspersoon.givenName', - url: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/me', - key: 'auth2eid', - authMethods: 'fas-citizen-bmid,fas-citizen-totp,fas-citizen-otp,iam-aprofiel-userpass', - minimalAssuranceLevel: 'low', - tokenUrl: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - } -``` - -#### Authentication 2.0 available scopes - -| Scope | Alias | -| ------------------------------- | ----------------- | -| astad.aprofiel.v1.address | aprofiel.address | -| astad.aprofiel.v1.all | aprofiel.all | -| astad.aprofiel.v1.avatar | aprofiel.avatar | -| astad.aprofiel.v1.email | aprofiel.email | -| astad.aprofiel.v1.name | aprofiel.name | -| astad.aprofiel.v1.phone | aprofiel.phone | -| astad.aprofiel.v1.username | aprofiel.username | -| crspersoon.birthdate | | -| crspersoon.death | | -| crspersoon.deathdate | | -| crspersoon.familyname | | -| crspersoon.gendercode | | -| crspersoon.givenName | | -| crspersoon.housenumber | | -| crspersoon.housenumberextension | | -| crspersoon.municipalityname | | -| crspersoon.municipalityniscode | | -| crspersoon.nationality | | -| crspersoon.nationalnumber | | -| crspersoon.postalcode | | -| crspersoon.registrationstate | | -| crspersoon.streetname | | - -## Creating and using SessionStoreLogoutAdapters - -Your sessionstore can be backed by your server's memory or a database system like postgres, mongodb. Because we have no generic way to query each type of store, -we introduce the concept of adapters. - -`function adapter(sessionKey: String, accessTokenKey: String, userInformation: Object): Promise` - -An adapter should return a promise which resolves if it succeeds in altering the session or rejects when it fails. - -It has 3 arguments: - -- **sessionKey**: this is the key under which your user is stored in the session (this is the same as the key property in your serviceProvider, defaults to `user`). essentially, -this is the property that should be removed from your session to remove the user's information -- **accessTokenKey**: this is the key of the accessToken property inside your session, which should also be removed. -- **userInformation**: this is an object that contains the information of the user that has been loggedout. - - **user**: the id of the user, - - **timestamp**: timestamp of logout. Could be used to ignore the request if the logout was long ago. - - -### Available adapters -Existing adapters will be added here. - -### Example of an adapter implementation -``` -// this is a non functional example, -function createAdapter(options) { - const { - connectionString - } = options; - - const db = createConnection(connectionString); - - return function adapter(sessionKey, accessTokenKey, userInformation) { - return new Promise((resolve, reject) => { - const session = db.query({ - [`session.${sessionKey}.id]: userInformation.user - }); - - // alter record and resave or do it in one query. - // be aware that multiple sessions could have the same userId, - // maybe we should also check whether the session is currently valid. - - return resolve(); - }) - } - - const authConfig = require(./authConfig); - - const adapter = createAdapter({ - connectionString: process.env.connectionString - }); - - Object.assign(authConfig, { - logout: { - adapter, - securityHash: 'blabla - } - }); -} -``` - -## Example implementation -```js -const session = require('express-session'); -const app = express(); -app.use(session({ - secret: 'blabla' -})) - -const profileLogin = require('@digipolis/auth'); -// load session with corresponding persistence (postgres, mongo....) -const loginSuccessHook = (req, res, next) => { - req.session.isEmployee = false; - if(req.digipolisLogin && req.digipolisLogin.serviceName === 'mprofiel') { - req.session.isEmployee = true; - } - - req.session.save(() => next()); -} - -app.use(profileLogin(app, { - oauthHost: 'https://api-oauth2-o.antwerpen.be', - apiHost: 'https://api-gw-o.antwerpen.be', - errorRedirect: '/', - applicationName: 'this-is-my-app', - basePath: '/auth', - auth: { - clientId: 'your-client-id', - clientSecret: 'your-client-secret', - apiKey: 'my-api-string', // required if fetchPermissions == true - }, - serviceProviders: { - aprofiel: { - scopes: '', - url: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/v1/me', - identifier:'astad.aprofiel.v1', - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - mprofiel: { - scopes: 'all', - url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', - identifier: 'astad.mprofiel.v1', - fetchPermissions: false, - - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - 'mprofiel-so': { - scopes: 'all', - url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', - identifier: 'astad.mprofiel.v1', - fetchPermissions: false, - authenticationType: 'so' - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - eid: { - scopes: 'name nationalregistrationnumber', - url: 'https://api-gw-o.antwerpen.be/acpaas/fasdatastore/v1/me', - key: 'eid' - identifier:'acpaas.fasdatastore.v1', - tokenUrl: 'https://api-gw-o.antwerpen.be//acpaas/fasdatastore/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - } -})); -``` - -## Session -Multiple profile can be logged in at the same time, if a key is configured inside the serviceProvider configuration. If no key is given, the default key `user` (`req.session.user`) is used, and the possibility exists that a previous user is overwritten by another when logging in. - -The token can be found under `req.session.userToken` if the default key is used, otherwise it can be found under `req.session[configuredKey + Token]` e.g: token configured is `aprofiel` , the access token will be found under `req.session.aprofielToken` -``` -{ - accessToken: 'D20A4360-EDD3-4983-8383-B64F46221115' - refreshToken: '469FDDA4-7352-4E3E-A810-D0830881AA02' - expiresIn: '2020-12-31T23.59.59.999Z' -} -``` - -## Available Routes - -Each route is prepended with the configured `basePath`, if no basePath is given, -default basePath `auth` will be used. - - -### GET {basePath}/login/{serviceName}?fromUrl={thisiswheretoredirectafterlogin}&lng={language}&auth_type={auth_type}&auth_methods={auth_methods} -This endpoints tries to redirect the user to the login page of the service corresponding to the serviceName (aprofiel, mprofiel, eid). -(this will not work if the endpoint is called with an AJAX call) - -#### query params - -- *fromUrl*: can be used to redirect the user to a given page after login. -- *lng*: can be used to define the language. Currently supported: `nl`, `de`, `fr` and `en` -- *auth_type*: can be used if you want to restrict the authentication types to others than defined in your service provider. -- *auth_methods*: can be used to override the default defined authMethods. to limit the number of available methods or to enable true SSO. (comma seperated list) - -### GET {basePath}/isloggedin - -The `isloggedin` endpoint can be used to check if the user is currently loggedIn in any of the configured services if he is logged in in some services, the following payload will be returned: -```js -{ - isLoggedin: true, - user: { ... }, - mprofiel: {...} // this corresponds to the key that is configured in the serviceProvider -} -``` - -If the user is not logged in in any of the services, the following payload is returned. -```js -{ - isLoggedin: false -} -``` - -### GET {basePath}/isloggedin/{service} - -check whether the user is logged in in the specified service. If he is logged in: - -{ - isLoggedin: true, - [serviceKey]: {...} // this corresponds to the key that is configured in the serviceProvider, defaults to user -} -``` - -If the user is not logged in int the service, the following payload is returned. -```js -{ - isLoggedin: false -} -``` - -### GET {basePath}/login/callback - -Endpoint that you should not use manually, is used to return from the identity server and fetches a user corresponding to the login and stores it on the session. - -If a redirect url was given through the `fromUrl` in the `login` endpoint, the user will be redirected to this url after the callback has executed successfully. - -If the callback is does not originate from the login flow triggered from the application, -it will trigger a 401. (this is checked with the state param). - -Hooks defined in the `serviceProviders[serviceName].hooks.loginSuccess` will be called here. -Session data can be modified in such a hook. - -### GET {basePath}/logout/{service}?fromUrl={thisiswheretoredirectafterlogout} - -Redirects the user to the logout for the specified service. This will cause the session to be destroyed on the IDP. - -the `fromUrl` query parameter can be used to redirect the user to a given page -after logout. - -### GET {basePath}/logout/callback/{service} - -Cleans up the session after the initial logout. - -### POST {basePath}/event/loggedout/{service} - -Endpoint which can be used to logout events from the eventhandler. This is used to remove a user's session when the user has logged out in an other application. - +# scopes +# auth methods +# assuranceLevel \ No newline at end of file From 9b16be501c9de02982a9ad34cad475c8ca638271 Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 25 Feb 2020 14:09:59 +0100 Subject: [PATCH 02/67] fix bugs & update inner workings --- examples/basic-mongo/config.js | 3 +- examples/basic-mongo/docker-compose.yml | 2 + examples/basic-mongo/package-lock.json | 895 ------------------------ examples/basic-mongo/package.json | 2 +- package-lock.json | 5 + package.json | 4 + test/auth20.js | 40 -- test/callback.js | 377 ---------- test/config.js | 13 - test/isLoggedin.js | 2 +- test/isLoggedinInService.js | 66 -- test/loggedout.js | 2 +- test/login.js | 2 +- test/logout.js | 2 +- test/logoutCallback.js | 2 +- test/mocks/oauth.js | 21 +- test/refresh.js | 2 +- 17 files changed, 23 insertions(+), 1417 deletions(-) delete mode 100644 examples/basic-mongo/package-lock.json delete mode 100644 test/auth20.js delete mode 100644 test/callback.js delete mode 100644 test/config.js delete mode 100644 test/isLoggedinInService.js diff --git a/examples/basic-mongo/config.js b/examples/basic-mongo/config.js index af253db..487d445 100644 --- a/examples/basic-mongo/config.js +++ b/examples/basic-mongo/config.js @@ -9,13 +9,12 @@ module.exports = { consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', scopeGroups: { personalInformation: [ - 'astad.aprofiel.v1.name', 'astad.aprofiel.v1.avatar', 'astad.aprofiel.v1.email', ], high: ['crspersoon.nationalnumber'] }, - defaultScopes: ['username'], + defaultScopes: ['astad.aprofiel.v1.name',], url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', hooks: { loginSuccess: [ diff --git a/examples/basic-mongo/docker-compose.yml b/examples/basic-mongo/docker-compose.yml index 6b43889..a95c63a 100644 --- a/examples/basic-mongo/docker-compose.yml +++ b/examples/basic-mongo/docker-compose.yml @@ -6,6 +6,8 @@ services: environment: - PORT=2000 - MONGO_CONNECTIONSTRING=mongodb://mongo:27017/basic-mongo-auth + - CLIENT_SECRET= + - CLIENT_ID ports: - 2000:2000 links: diff --git a/examples/basic-mongo/package-lock.json b/examples/basic-mongo/package-lock.json deleted file mode 100644 index 9dc2729..0000000 --- a/examples/basic-mongo/package-lock.json +++ /dev/null @@ -1,895 +0,0 @@ -{ - "name": "basic-digipolis-auth-example", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@digipolis/auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@digipolis/auth/-/auth-1.1.0.tgz", - "integrity": "sha512-DSnfwknBW1UsJdU3yFhrgUy17jpzcVYbYUkqULVbsq5EGBmeUj3rznOJvNGuDZcEz8sxt3C0v+PqOu8P1Os9bg==", - "requires": { - "async": "~2.5.0", - "express": "^4.16.4", - "lodash.get": "~4.4.2", - "oauth": "~0.9.15", - "request": "^2.88.0", - "url-parse": "^1.4.3", - "uuid": "~3.1.0" - } - }, - "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" - } - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "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=" - }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "requires": { - "lodash": "^4.14.0" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "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" - } - }, - "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" - } - }, - "bson": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", - "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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" - } - }, - "connect-mongo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-2.0.3.tgz", - "integrity": "sha512-Vs+QZ/6X6gbCrP1Ls7Oh/wlyY6pgpbPSrUKF5yRT+zd+4GZPNbjNquxquZ+Clv2+03HBXE7T4lVM0PUcaBhihg==", - "requires": { - "mongodb": "^2.0.36" - } - }, - "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==" - }, - "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-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "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=" - }, - "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" - } - }, - "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" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "es6-promise": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", - "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "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-session": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.2.tgz", - "integrity": "sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw==", - "requires": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-headers": "~1.0.2", - "parseurl": "~1.3.3", - "safe-buffer": "5.1.2", - "uid-safe": "~2.1.5" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "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" - } - }, - "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=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "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-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=" - }, - "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" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "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=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "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.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mongodb": { - "version": "2.2.36", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz", - "integrity": "sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA==", - "requires": { - "es6-promise": "3.2.1", - "mongodb-core": "2.1.20", - "readable-stream": "2.2.7" - } - }, - "mongodb-core": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", - "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", - "requires": { - "bson": "~1.0.4", - "require_optional": "~1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "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" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "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=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "psl": { - "version": "1.1.32", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", - "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" - }, - "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" - } - }, - "readable-stream": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "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.0", - "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.4.3", - "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==" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "requires": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "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" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "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" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "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-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" - } - }, - "uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "requires": { - "random-bytes": "~1.0.0" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "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" - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "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" - } - } - } -} diff --git a/examples/basic-mongo/package.json b/examples/basic-mongo/package.json index 9295982..251ec0d 100644 --- a/examples/basic-mongo/package.json +++ b/examples/basic-mongo/package.json @@ -9,7 +9,7 @@ "author": "", "license": "ISC", "dependencies": { - "@digipolis/auth": "^1.1.0", + "@digipolis/auth": "git+https://github.com/digipolisantwerp/auth_module_nodejs.git", "connect-mongo": "^2.0.3", "express": "^4.17.1", "express-session": "^1.16.2" diff --git a/package-lock.json b/package-lock.json index dc272a4..0edfc30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2576,6 +2576,11 @@ "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-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", diff --git a/package.json b/package.json index 95455c1..55dd83e 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,9 @@ "module": "dist/index.es.js", "scripts": { "build": "npx rollup -c", + "pretest": "npm run build", + "prepare": "npm run build", + "prepublish": "npm run build", "test": "cross-env NODE_ENV=test nyc --reporter=lcov mocha -- -R spec -t 15000 --recursive --slow 2" }, "repository": { @@ -18,6 +21,7 @@ "dependencies": { "async": "~2.5.0", "bcryptjs": "^2.4.3", + "cookie": "^0.4.0", "express": "^4.16.4", "isomorphic-fetch": "^2.2.1", "lodash.get": "~4.4.2", diff --git a/test/auth20.js b/test/auth20.js deleted file mode 100644 index ac6994f..0000000 --- a/test/auth20.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; -const assert = require('assert'); -const mockExpress = require('express')(); -const reqres = require('reqres'); -const createRouter = require('../lib/router'); -const auth20Config = require('./mocks/auth20Config'); - -it('should work with authentication20 config', function onIt(done) { - const router = createRouter(mockExpress, auth20Config); - const host = 'http://www.app.com'; - const fromUrl = 'test.com/d'; - let redirectUrl = false; - const req = reqres.req({ - url: '/auth/login/eid?fromUrl', - query: { - fromUrl, - }, - get: () => host, - session: { - save: (cb) => cb(), - }, - }); - const res = reqres.res({ - header: () => {}, - redirect(val) { - redirectUrl = val - this.emit('end'); - } - }); - res.redirect.bind(res); - - res.on('end', () => { - assert(redirectUrl); - assert(redirectUrl.includes('/v2/authorize')) - - return done(); - }); - - router.handle(req, res); -}); diff --git a/test/callback.js b/test/callback.js deleted file mode 100644 index 8bb76c5..0000000 --- a/test/callback.js +++ /dev/null @@ -1,377 +0,0 @@ -'use strict'; -const assert = require('assert'); -const mockExpress = require('express')(); -const reqres = require('reqres'); - -const correctConfig = require('./mocks/correctConfig'); -const oauth = require('./mocks/oauth'); -const createRouter = require('../lib/router'); - -const user = require('./mocks/user'); - -oauth.getCreatedInstance(); - -describe('test #callback', function onDescribe() { - - it('callback redirect to errorRedirect when no code in query', (done) => { - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - const req = reqres.req({ - url: '/auth/login/callback', - session: { - save: cb => cb() - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.redirect.calledWith(errorRedirect)); - return done(); - }); - - router.handle(req, res); - }); - - it('callback redirect to errorRedirect when no state in query', (done) => { - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla' - }, - session: { - save: cb => cb() - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.redirect.calledWith(errorRedirect)); - return done(); - }); - - router.handle(req, res); - }); - - it('callback should 404 when serviceProvider is unknown', (done) => { - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: 'nonExisting_1234' - }, - session: { - save: cb => cb() - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.sendStatus.calledWith(404)); - return done(); - }); - - router.handle(req, res); - }); - - - it('callback should redirect to login url when state does not matches key', (done) => { - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: 'aprofiel_1234' - }, - session: { - save: cb => cb(), - aprofiel_key: 'aprofiel_43321' - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.redirect.called); - return done(); - }); - - router.handle(req, res); - }); - - it('should login and redirect to fromUrl', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const errorRedirect = '/error'; - const fromUrl = '/fromUrl' - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key, - fromUrl - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(req.session.user); - assert(req.session.userToken); - assert(res.redirect.calledWith(fromUrl)); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); - - it('should login and redirect to / if no fromUrl', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key, - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.redirect.calledWith('/')); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - - }); - - it('should redirect to errorRedirect if login errors', (done) => { - user.nockGetAprofiel(correctConfig.apiHost, 400); - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key - }, - }); - - const res = reqres.res({ - header: () => {} - }); - res.on('end', () => { - assert(res.redirect.calledWith(config.errorRedirect)); - return done(); - }); - - router.handle(req, res); - }); - - it('should call hooks', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const hookTest = 'blabla' - const aprofielConfig = Object.assign({}, correctConfig.serviceProviders.aprofiel); - aprofielConfig.hooks = { - loginSuccess: [ - (req, res, next) => { - req.session.hookTest = hookTest; - return req.session.save(() => next()); - }, - (req, res, next) => { - req.session.hookTest2 = hookTest; - return req.session.save(() => next()); - } - ] - } - - const config = Object.assign({}, correctConfig); - config.serviceProviders.aprofiel = aprofielConfig; - - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert.equal(req.session.hookTest, hookTest); - assert.equal(req.session.hookTest2, hookTest); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); - - it('should redirect to error page if hooks fail', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const aprofielConfig = Object.assign({}, correctConfig.serviceProviders.aprofiel); - aprofielConfig.hooks = { - loginSuccess: [ - (req, res, next) => { - return next({message: 'this is an error'}) - } - ] - } - - const config = Object.assign({}, correctConfig); - config.serviceProviders.aprofiel = aprofielConfig; - - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.redirect.calledWith(config.errorRedirect)); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); - - - it('should use a custom redirect uri', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const errorRedirect = '/error'; - const config = Object.assign({}, correctConfig, { - errorRedirect, - serviceProviders: { - aprofiel: Object.assign({}, correctConfig.serviceProviders.aprofiel, {redirectUri: '/custom/callback'}) - } - }) - const router = createRouter(mockExpress, config); - router.get('/custom/callback', (req, res, next) => { - return res.send('ok'); - }); - - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/custom/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key, - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.send.calledOnce); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); -}); diff --git a/test/config.js b/test/config.js deleted file mode 100644 index 63259dc..0000000 --- a/test/config.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -const assert = require('assert'); -const config = require('../lib/config'); -describe('test config', function onDescribe() { - it('should throw error when apiBasePath is not present', function onIt() { - try { - config.createConfig({}); - assert(false) - } catch (err) { - assert(err); - } - }); -}); diff --git a/test/isLoggedin.js b/test/isLoggedin.js index f0b2557..e5d098b 100644 --- a/test/isLoggedin.js +++ b/test/isLoggedin.js @@ -1,7 +1,7 @@ 'use strict'; const mockExpress = require('express')(); -const createRouter = require('../lib/router'); +const createRouter = require('../src/router'); const correctConfig = require('./mocks/correctConfig'); const assert = require('assert'); const reqres = require('reqres'); diff --git a/test/isLoggedinInService.js b/test/isLoggedinInService.js deleted file mode 100644 index 9960cad..0000000 --- a/test/isLoggedinInService.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -const mockExpress = require('express')(); -const createRouter = require('../lib/router'); -const correctConfig = require('./mocks/correctConfig'); -const assert = require('assert'); -const reqres = require('reqres'); -const user = require('./mocks/user.json'); - -describe('test #isLoggedinInService', function onDescribe() { - it('#isLoggedinInService() should return user of session for service', function onIt(done) { - const router = createRouter(mockExpress, correctConfig); - - const req = reqres.req({ - url: '/auth/isloggedin/mprofiel', - session: { - user: user, - mprofiel: user - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - - assert( - res.json.calledWith({ - mprofiel: user, - isLoggedin: true - }) - ); - - return done(); - }); - - router.handle(req, res); - }); - - it('#isLoggedinInService() should return false when no user', function onIt(done) { - const router = createRouter(mockExpress, correctConfig); - const req = reqres.req({ - url: '/auth/isloggedin/mprofiel', - session: { - user: user, - save: cb => cb() - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert( - res.json.calledWith({ - isLoggedin: false, - }) - ); - return done(); - }); - - router.handle(req, res); - }); -}); diff --git a/test/loggedout.js b/test/loggedout.js index a33b9ad..e81fec2 100644 --- a/test/loggedout.js +++ b/test/loggedout.js @@ -5,7 +5,7 @@ const uuid = require('uuid'); const mockExpress = require('express')(); -const createRouter = require('../lib/router'); +const createRouter = require('../src/router'); const correctConfig = require('./mocks/correctConfig'); describe('test #loggedout', function onDescribe() { diff --git a/test/login.js b/test/login.js index ce103b1..9b68217 100644 --- a/test/login.js +++ b/test/login.js @@ -3,7 +3,7 @@ const assert = require('assert'); const mockExpress = require('express')(); const reqres = require('reqres'); -const createRouter = require('../lib/router'); +const createRouter = require('../src/router'); const correctConfig = require('./mocks/correctConfig'); describe('GET /login/:serviceProvider', function onDescribe() { diff --git a/test/logout.js b/test/logout.js index d6c3a05..bd94558 100644 --- a/test/logout.js +++ b/test/logout.js @@ -1,6 +1,6 @@ 'use strict'; const assert = require('assert'); -const createRouter = require('../lib/router'); +const createRouter = require('../src/router'); const reqres = require('reqres'); const mockExpress = require('express')(); const correctConfig = require('./mocks/correctConfig'); diff --git a/test/logoutCallback.js b/test/logoutCallback.js index 995e3f4..b8a1b2b 100644 --- a/test/logoutCallback.js +++ b/test/logoutCallback.js @@ -1,6 +1,6 @@ 'use strict'; const assert = require('assert'); -const createRouter = require('../lib/router'); +const createRouter = require('../src/router'); const reqres = require('reqres'); const mockExpress = require('express')(); const correctConfig = require('./mocks/correctConfig'); diff --git a/test/mocks/oauth.js b/test/mocks/oauth.js index 1a9bc08..5cff5eb 100644 --- a/test/mocks/oauth.js +++ b/test/mocks/oauth.js @@ -1,20 +1,13 @@ -'use strict'; -const mockery = require('mockery'); -const uuid = require('uuid'); +import mockery from 'mockery'; +import uuid from 'uuid'; + mockery.enable({ useCleanCache: true, warnOnReplace: false, warnOnUnregistered: false }); -let createdInstance; -let errorToReturn = false; - -function setError(err) { - errorToReturn = err; -} - -function getCreatedInstance() { +export function getCreatedInstance() { return createdInstance; } @@ -48,9 +41,3 @@ class OAuth2 { mockery.registerMock('oauth', { OAuth2: OAuth2 }); - -module.exports = { - getCreatedInstance, - setError -}; - diff --git a/test/refresh.js b/test/refresh.js index 3a6e4f1..ac47d2e 100644 --- a/test/refresh.js +++ b/test/refresh.js @@ -3,7 +3,7 @@ const assert = require('assert'); const reqres = require('reqres'); const correctConfig = require('./mocks/correctConfig'); -const createController = require('../lib/controller'); +const createController = require('../src/controller'); require('./mocks/oauth'); const copy = (o) => { From 245e3b76354a5a6c1ada27691243e158b26c375d Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 25 Feb 2020 15:40:47 +0100 Subject: [PATCH 03/67] updated readm --- .babelrc | 17 ++ assets/config-event.png | Bin 0 -> 144186 bytes assets/consent.png | Bin 0 -> 78295 bytes assets/create-contract.png | Bin 112932 -> 0 bytes assets/eventhandler.png | Bin 0 -> 239762 bytes assets/shared-identity.png | Bin 0 -> 73288 bytes dist/index.cjs.js | 594 ++++++++++++++++++++++++++++++++++++ dist/index.es.js | 590 +++++++++++++++++++++++++++++++++++ exampleconfig.js | 46 +++ old-readme.md | 430 ++++++++++++++++++++++++++ readme.md | 303 +++++++++++++++++- rollup.config.js | 18 ++ src/accessToken.js | 77 +++++ src/authMethods.js | 31 ++ src/controller.js | 252 +++++++++++++++ src/helpers.js | 59 ++++ src/hooks/assuranceLevel.js | 53 ++++ src/hooks/deleteSessions.js | 34 +++ src/index.js | 31 ++ src/middleware/sso.js | 96 ++++++ src/router.js | 36 +++ src/service.js | 41 +++ src/sessionStore.js | 60 ++++ test/loginCallback.js | 376 +++++++++++++++++++++++ 24 files changed, 3141 insertions(+), 3 deletions(-) create mode 100644 .babelrc create mode 100644 assets/config-event.png create mode 100644 assets/consent.png delete mode 100644 assets/create-contract.png create mode 100644 assets/eventhandler.png create mode 100644 assets/shared-identity.png create mode 100644 dist/index.cjs.js create mode 100644 dist/index.es.js create mode 100644 exampleconfig.js create mode 100644 old-readme.md create mode 100644 rollup.config.js create mode 100644 src/accessToken.js create mode 100644 src/authMethods.js create mode 100644 src/controller.js create mode 100644 src/helpers.js create mode 100644 src/hooks/assuranceLevel.js create mode 100644 src/hooks/deleteSessions.js create mode 100644 src/index.js create mode 100644 src/middleware/sso.js create mode 100644 src/router.js create mode 100644 src/service.js create mode 100644 src/sessionStore.js create mode 100644 test/loginCallback.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..0c9c2fc --- /dev/null +++ b/.babelrc @@ -0,0 +1,17 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "8" + } + } + ] + ], + "env": { + "test": { + "plugins": ["istanbul"] + } + } + } \ No newline at end of file diff --git a/assets/config-event.png b/assets/config-event.png new file mode 100644 index 0000000000000000000000000000000000000000..adcb8f2088db83246603e9747a745e5b94f1c825 GIT binary patch literal 144186 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ξ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

-;PGfg~?-zj~-?(VrNs7b;@OAXcU2r&@ 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 literal 0 HcmV?d00001 diff --git a/assets/create-contract.png b/assets/create-contract.png deleted file mode 100644 index 01bc573cf778a96dd23a6605e6a3f90e58e2209b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112932 zcmeFYcQl;c+cr#sAfiRD(R&xYL>MwUF&KmhqxaqkLZV0S5Hd77KHYeeG-SvmEDf9{Yo)y3!+DDqJ))v`63<3fgFBIPGX? z_mr`*fOpVY+(>~R7_QI3I@rL=58M1b@HeF!NZ;+HqlKHNsS6Cv(!tRl#^Y+{0)siY zS~3$|QHYvdd7_|n+e)aYU1QPz@sw>$s- z!~D;gg)iAi>vBXR{y?KpL33I&c<%asf;BkVZblcXj6~s%YZty)Q9;9yTMF64X}ws9 z#0AGQ|MfMTX3%0BIBgd9_nXYf2SR9Ue|?G>ERllO{;xOUhYJj7diQNVEV zzlH*D#-oe<>p#aDbRu)NUd76l6Jd04-SPhGq9EG2@x$OH!@BN$mcK6`%`DOOq{%VR zO(_DnF#bI^`lj@^@bl?y&i^sPPh?@sO>`lxU2iTa0uuh7RX#ZseNVbpUxb(G@0)Ji?{aNOgbd<)w=JLOLB=d(l{~Bqm!5s5{KDIfU`o9*-jh8a$U(;gFQu+U} zdjEHr|97STHOrJfB9T~-In{ZsJwIhLbBewpK$oqQm4IRCtBuTWY*<1n^Zp**yb?iYYw@QDduovS8emtD6gVJ|0WV1o9HAy+vUqx1LF*);>&as1B4bRRiauJ{G zZ#K1;@vVm|BHU$@){`mqmEIX`t(Wxmm4`UdK9TI1j(0L^g#TI#`h3tuDSJc}r&GL) zdgNCFX!4pj{z1ZXr;+eQw8FkrR6?(mbfbo&TRS)H%Vf;OfGYwaKSty{mj*)fOz{D5 z?SYPwL0h-B?J4)o+2^pOzr*6ylO&k8?j;YNyiLt7=(RkUJ_Uqb%dJw$oyV<06^*4u z;=gZZQbu*@a#0HB#7Z!`y;!41M&tj~ZyhYs3mCGojI?MuJu``7Zt3LC8l$HlrKUZ) zSc*MiQ>vy?aZBgo3th}6=-{a}+mt5x_wHD0A-}*mZEC1$45Ha1fJxDRuH@#32$mY@ ztBiuf->+Uo-*Z}A&%kwJ@`$D9S7Gz>S)cavINb;Ct$?UF5eef1FWRO@ZQ-9c-0gVI z1)fP3_Ps|A1ri)|=mr=%jr_L}jy*uYIpJ_dysn&yJ-sy6UVR)6cG~xO5`U5z;aICdFTwS%#L)6Kg{#f~F)wsZrnz4^ei(7-fpll6C-_2~ zN&2tc)!K`=#~iunkAa!YoFyM=KkjMYCWG<+5ux+xfqmeV$y8R3m!TmocL==tEby;f zdUC&okn@YWWBf_0mvz$#!-M6&O(>ojg%%u`PX+4gEyh4a~{9D9(7DEoT4$K zgkjKl7$x8^o8sQt356Wq*)K^jVbIpE0uO_O`0>6>+I(|XrRklpsj14zV`s#^7yQJl zw_NqV)6N3lNRF@n@;SxZgp&a8c@N~}&G&F16u1q;pgm4v=2CP*X{r=>Secob{8Z7Y zLl*hg%E_=q7|t^ikTBJwU%MiYSGJ{Re{yR)KM#iwna-}D%2-5qoQ$BclT3nw7SN|{;R7iD7%BV zcba;UeAP_8arsNcJrZRG^Y_aWbwk;-FV%WNKy> z0^F}umnkBbJX__z*NGYIqX+EE{!hjo-DDQ;>>P+shI&zyA`?~!`n*F*ULF%ZKK{@7 zd6=bTIGaZH!BWTl#(7@v>^4G|Yk^#L#uzgZQPG)&1q)x_jI1nLhxx|tNrYa5*CFHf z_BJ;U&!|n!`_)u_yhk12_+oejcaDI1*x;A|G&_!z0|wR9mEAoCj}ee#F=*-Mk#&Eo zVI2bQZ}zT!%4t#UpIQ1l{h8qp#tU5%OmKWA#An;1X=i^w2Xi!A%DZ!6fv&}Pzhn|= zE@&!6m#}#WU9Zo1Gip&YyBp7pqmd)Ce%^K`ox*3bF;!~lcQ#{rbClAy2K;W+>X(+3 zL~2u$&L9T9`VN7Bprm+3Y*Gt%kA2x<#VKj|Gqd?sde=Z_W#R1pZZ=w3x-DJWwppj^ zkw(UMp@!sl5j6!5LlyR#{>f|k1QF_F32W8tOr7rV_4)aZ2R&6#!a@ZI&EZlQO*Au8lY}xw)S+T*A%9Xo zm#jNf?gXX5`p@J}vH@#FMUgR7F@piar=g{F_VZJ%n}vCLru4?r=Ro`=Wn?S_(=su~ z#)J#lBXZnJpvj~A=iu=~hdSRWkJGKK_ifirZL7msk`p#hf1gTdt>Nf^uTs}QJx)HI z4(ALevZ&y!ymE1>9l`YMxD6cdkJ^c{i<`;$jwG;QVcG<8jy!12!d6_!f`};Z-16{g z;80Su#+I<&m+85{|7HD~Ilvn7mHa34j=07%n+j7oySQ{#S&n#J956IBHCgg#kWWsX zou5<2_U?DrCoqdsdjgLkOr@2~Vx4|34n{dJFd&?v23ThVV<*4gvV}XazX#@^=Yf8M z#^(YA=eO;{htsMF-b;#OO%Mo+_s4j0j&Zj^VM@Wwv+t2nlV_}1J%Z5&kv^rDW#L!2 zq!3KV(>o6Ad#QK-3y_~EV=d*keFaU{^_h2$j*dbPb`j;RD}PK4@K4pEadLPI3;3uk z9K{3D;?EcYT!=+&oSd`kRfEgB(^GdKz(gyCDCWtv7#EFN5%yO6u|c!~@6Nuhpu7&D zs{}J3N#_nOo_=L+d9Jmgn!tcMBnn5-P9^hx1+vRfe-qs=70zO1cx5g-`n^te=Jx-N zO+M21oyJUFKp=@QVDnF|{eiXe2G)*%PHO2Ebv@VOn^N9-6%i70|40hREuPYA`_;v7 zM1e4axH-3WBj{2+n^}(K_+m-Mk{$W+8<@v`NKbTJhwhqztB{ zk3kGt6iW{I|KKto(mxY!XS_*vG$)b=NewXVhb4{MH^YgFp2?&tq*K6MD zHCu;n_}rYoXzA&Xn-)n$9Z!-=o=3UWH#m)#iPYg_yCZF0MA;&rr!g9^w2TpF6Z z$$5jd*xU*@dpt9+nqQlmRGQ`sXY8_Tr00MAdJ`C!)A9P*e??KV!Om%3TEbOA(kkj2UU5x*47HJov1 z{~^0sW+KUm^xZk`#^)h^ybrnW4R~_tdWE;28brVMAtCnH1EteTqBgVnu{V~-3`n#Q zlU5UERHyHC{bf)Gy*l5%0FHJf#Re9P7q(0$W%dT^CX-Cw@M3h#Y?uE*BGDH9w^td? z&uChqDvg38>=rM3suK4~%+p&62%U78ibavaX1s1T)vE^?NHw-7%NakPOXNu~TJfmW z6clPdW<6zvF|td7nmAo|zZVo&Z(LM0S2!PqRM6aPD$+wtTf0dBkHzKuY*l*3FBt+h zHeUnzl--{n>&-7w9`jR7A7LLjdPT4~(F`|-kQ}2Ki4(L9-F?Z;{lw`Sk*i1-7AosT z|LmW=@IL_3spDwwDROj_$a8;TUG{GCZcz5_ShlLJuGd`fGkb)m^tT)}EfQ7M$AIHC zc<$2~8X6ikc|-%-ker;1-F1K}7Rx<H^%dW0 zhD4}$<8-lWrXOwhst4X4Z7$cb7iyJ{J4`~MzrQxr_7_CsPm36q)W}n{6AWYMu#n*N zc?~X`#)j;@pI?Z|bMAlAm%2vkP5R7{0JKy@^K-GTZ{VImMFKr7W)Z&bv7`(Cg!KzxN#n zSC*&;`d;lrZp7zL2><3TDv0@_CAn>;U%2KX-jI8mNb z?2GudJlr;PAnHStfv8U>UW^3slZ?xS8v^kfIp@qb} zj>KE@cU;@Fyu70N_KL!}OS5wIIfAIyMD3B*6K21Lu($?jMWzdB9_dl4>eV-oTG)Q+ zP!`Ii^9v*_<9yi9Z7Pu^ND(FW8{f<0hvhj0z21c=C=$piMdM%eWy!BIJ7M zC7y32PTw1#E!!3vZcxrxJ=;Hc|6umz-syriT3G@iiwedN{vE4ri&%?k&cZSSLG9zc zQ}S`!XI}?T1uc$`d3bfcLJx;s5?T1CKB(vj93XwB7XoQYizL+a1!9shW;MrpO;$a7bI_uyN?`gA zY-*$pRUe979vqRjfO>e`2g-lI44LJ`sS>zZN07y#REW1X7CYRP3qNUbgvnmY``FpLuY4a z=jxq9fGiK-lXhQCZ-xD-<{p)Fixc%8wmAzahPtYrnt_a)Q%mxC|Ib|otP{qDxO=^-Gyr5N5sa@) z4aY2c>BHuqP3zWhZWltWCvrJEQdeIyX(1Fgb*|bvNF3iGaDDyic3mq)=>Zcy8zpMy zm`9TlDl1_3bLqN=aPc6#9&Z4M~JfaDG2bpW@GBfmB@fDw~dw+{j_$d>DX%-^1n8;p%7Y8T`nhae;;~CNRd?iU22x)gB@A|ampgq$oKH6!Ud=$ zs?)t};TBW0++<~3g-66j_Ur3+#yT)fytGq~8Go;wqS+>?g>C1bK=p)M`AL03zp%*hNMSigzj+yl23Lw*FYVbNYZ^1)M6o3vys^jLi}@Sq=d@T!wNpA74pY5Ryv>8K}f`M!@4w%iMncd~D8UyOxY+|C$~ zUN$!xHek2;AA9318tocsX(ow-w3zVZpU3XK_>&}M_yNdH7YmLL4QLA_3%G7|<$xvw zHOO;dcezz^*>mB>&hKV?i@66bF}LWQ89u!0_WNELHDd>q=}cf^#k^7IMd|c*76i+# z#(*9r{-OmFhTokCy$f2+^4+o9cRKH5@a>gX1ov}u^$o;DB$`Vws1RF#`|Jc+mLz5h zAXC%~rFBq>6+ZYq<;s~S=gL_ho`}#zJdwmGfJl zs-7zX>@7^WXZn%vJL3#4Zt!1Yu1k@`ZD=;T{mA7MJhIN&b8e@no9M&Uw=NmA23232 zh5IG3C3Z12`i9>Gn$RC@TFQGUQHIbM3(VqVXOOcT46SVja#V&w?^0Vh*|=Ww^L&so z$uo}KI=Jz>SrBh$4AqZh%H_Y1E6B)GRG?83&Reo<__cmIuzgJjOntmWX~MSSrUKnb zCI$o^GZZdIGlZ~!KE7NNhe5T7G>HhY(6#Ja-*O+h7;}_y7Wc6E#vk_GR<)O7!Yl)VKt+bv3gnMMes5*RP1}I;S-#6FWZb+{ zq}95R!@|sK+ZwQB$!m$%Q}fHf|0Qgy%CVM9< zC81hBeenpP=Wu);SOwaAe!WSlm?S4|?gvm#cc`|5Q`D>530uKZN2m1!#N00<(^4YB zl$T?pL~OmicKbJPi&|dc7k!n*y)?PC2~p2GHHIt=^!7&4-!Ku>#a{N#yTfa?Z)We1 z_;rqUm3YDnDQ^REIN$yby1kWey^#$ZStwS!M6~@uPM3Om&w2TBQpk@E0csJY5D6y% zY69Q$y~9a86K5~4?`{(Q)AGLM0Oj_FVL3Y!3F!#p9w?ri!|>mMGv=k^rQwI~#0ugU zlJ+55>wtnm!c>B?YFcB4hRg{5?m)MU9jAD5yIN0I-&$1P5u^qP8gU-x%O!z$zDK!p(Tr$Q*K z3LO5Xs2}36^JH=$Q7;rHMtgb&sdrCFLx@}0S`%7S#aKY*f-84_W`PXufL6!%K&mZ;Ole>JM6acA> z75%5{sizbxaiBI6@RgVj>11=;dGnE>jHACq`H{$-6fR(_Jj|bh1v4JBBS5dqo(#%I z5OzLcex03q78mj-T_T$eF_!u(&4sCmFwiqHGRj--a^L8u7e@7(0rdZ*O+|CFAMbD* zzz_kILNWYz^=i+}Sq0|+5LkyB)ph~e4uZiwa8zPojF_x^lf4jpi3#@>WES`O-jVRY z4|NgB)+KScJ784rpD|m<=i;9?eCrV==J3L#t<1sSeu^VPvvkUOLXW zA*FM{`8LyTs;KQc$WroUtAhy);ql>+OGEP(rZW@eauU_Cz(hAUyWFuCb$bL!<_+wr z8F6sF?x!-`jq?#_rQC5jU}oOhKP+wwVWnED_^@bz(%C{29JaJb`mR?+;gfRtGaE$DcdXzTqVmf_U}GH zL9sm&8W>Y$v3U^JYf0|kmUI9>MZN*gepIIMUj(s#WOR2iO~#7$+FZpjWCvipFF|qazyQ!)nKA98t5e{ID`+X?jecU^ zAV+RCJV-dL)p@2UD6zbBt7j+c*E4PxvNEO?a9n;DV-gS$jZk@{Oa0VF4y4Il(b)RD zWhQu;!80fNa=gmEHe-Nh&Zffs^V9N!(=wAOaV_<5=8@LI>otb+*rg|}!|Nt@)G{r{ zl!2}lT}kVyJ|u*d$_=$0+Eslv-koEp`;D=lTaKbLG7W>j3m!QLf4;qSJSxa}=ZJ}9 zGuVmqXnM6b-_+X`PVk2(_0iwY0-jY$${c{N%T6!S3ynV?X=Ru|;|n;t5(L=h1yInA z`g9XtB8)}9(N{Xq&|qOTF>y-g>c(#eZxpmajs=!}B-6-}vP$>EdpSnf^$Xre6%XjM zkNi86(1${~pYl`iz+;KlnBI`*ANe!Xf9|XQGytcTgePXji8kOb*pXUsbf*;l=^ovVo2t!pme-@jNeDWYU%!_DYCA7Az5 z?pi<7iTvU@Rqx~+GU8~oc5I9AYn^$6@TUsm((X4`bu1WG*3l||$Gjc~e?dtemxKwC zfJsqQR>{6@m|v+%f{DyJHu`OlF8z)sqc+?&YO5XIrI=bAS9#a!=#5mur6S}RFX5|b ztX6F@F6!|tm5q$h6o;jKBp0f*`^KFmsP=e_vB;|oCSaQIsa6?LG3e8z#ubC}mXkh# z<$-EE11kRshw+si?r%a5s|f&C8+@L(BD^mrP%x;T$||p3C{*YTA{8#4PC;_pkCoL~ z1z3LW@4k50FIdD*Ta23;N5;k*ehR->u2nl=<(!8&CxB%8wST5@X= zB@j;nJx|sER|$YcVCgV(koOh%t5>HUUtk0W%ttC`q$(6@+}vpEG{N{@)aq&SjMY=C zX`5%DGy-tZHNZNDlrVA_3(*H|&DN`a+7eO=bL%xLggyG5af}o-F*yn}zAX8~U3KZ# z$I3jD3KcO+UN?t%%QP|a1=|lUx{*#kw67Yu4KU~~B1aA@rup1IU#udP_RDqAT5QW zadE^!4R$S1%#eTSQl!CbTu&$>KXzT;f1P-^Vo5hf8 zw-b@{&F(JMMF8Ee)~Bu91F5R404qb&Ygw0)(sev;sAFeX?QSoUVR>wG*a);Z#Avc1 z9*9XBH;JsO>6@F8NO#jw+{t4bA77VZR_27q_}P0Ef&6cb?l4tSWLGzaw*5Tp6V{h5 zlati+e-m0fhHI3?ktprZ6!6m~Y>0!ifAoc`_PmTy*S7Em&qV}9yh+y9%(E&P-E*t| zI`--1gZ@M}5g?okrVXYtV?wpGh>53uPf*bsl!~Yf@E8oGiUqL;T{TVv9Qb;1Sao}}%7ph6f zrVlf@PDKBAwH1i)1lk9^Wt zg(Uja3c-B^A&CLvEJL`8lxyz#Zo&QIlz-*l-sxhr{MKSYi%;$HevhV${tAj#!e>f;kgoOG@SU7og z_6R6dQVGX(@FdTM1S@E6`3} zQlos-s|xtBwLoA@)%tYdq(fEp+-J)5&~e`JLv$sew)guwa%o_3#AqaLiUZgmpca6xjJS-9Ow*X+qP`yyHGViix88T6ZyD!O z84E@20bfyIAF7ReolicIB(zc%QJ}xZl?WH3U^;A>Vh2>elAn3k0lE>Ro=U}Idk>xcTRa- zY}AjEsYa!4$THR2Moqni))Ev|=io2%DQkq+5Al48lC~upkUQFNTWRmU?gPdw%xviD zdK$sMIG2wce>NYe+zv%k8=1Uf!HPJP54*nmz!vU#i8>4o=~Ky3Gkvf!qCel)>GgT0F?=EUM&AV~1v8y-jw0eWo}cuXc-jad~{?j!Cq(%vC(BV49Rgiux{*n_3`^ zPLM`sx%fOZE6+Zr$G>MpuN#l*0KQosV|w<~SIP5or9;myhglUN3Iwg_ht<3{<#Y8; z;eqa^NdsBfsr)r_6?uFn5)Ud!Myc`CmK@{7p)eT%HyyTkU1;fwmgBJhQBK zQ`Z~omCmhIcBjPqs=lkOsj|DK;Eao27jpdUb@o}B8UY2Kr;h;d+!WfwyTv;X?G zZ`+W({W=o;@TeN4d^z`attw=DQVOpQdjMzwL52-;bTKR+H02p6P+)~ZK&50_5FpQM zlNF&iGBP1>k9LG7Jjk4U4@C%ih793YrU2ifz;Jxsx;^us_Vbtu+1s-J^g7u_TrH|7 z6Z%3unoy-nko3Y6A89}?vFnjhP{8v0^y(pbiX~JL&`kh9F`!K&d((2$0_ZfWsHl{b zm%A=^VggL793jx+Z844=wfY9|Eo$Rc%C5kG07VA~4`$}(%mHZy_W*!&q!0$l%zY1& z=72(^-VI3%2onAiUq3SA07U4Zh0uza4D|pbJD@5^=v&*lnY9v@u)Q{bkOFyReH{i6 zfk6GeGIK!=RO>*S1fV$_7Mj7Ox@L}!vCB?gWE%*01TgC|qlV6&o}P!R8LF&yj*dbZ zL;8k>X727uz-!t=lq$COPd^iAwkqZk0WIHw6h2qv7)xz!Es!fLSFiqXbR8Y&&}5)+ z8Z0%e`}yOMWH>OAat2E5zB(LCDQUC}tdtxl{ zRTS^I&AYWu$NIxQdjK}pZrNePxlz*Z9USaUO9fQ+o{gp^fWdSVA0#ulP3pUos6`u& z2dIsjD5|LBNpzlpMRtY!JW?!YH7>43(KTYPPS`lA1cSZO&aNP}4!6OEb!ErXb)xkX z>4XG(E;mauck6A^YY1Nr@g2HR6=lU`a=df8<3OqU?|Pnl2LpGPi$^m>)AggFVlM*M z#7rbt-$n_ixwv_CYVony&llEsCm|3#Wi`u?=$KB6@Sbi%J9VbLlg5)^*wk+UXLQqU zC|j}l*WQj0*{Wmn@bIQr_*X(bPz6f&Vm|u{=S!^Vz(c*c=75ie+XA+wm(Pw51y;lF zzISCY-8wr)QwjvSv#{|#uydq$`kBQ)$k=~HReEY@)N+Z_b_EdP&2z8wJicu$p$Fcy zwJj~^5qSBH!5mY^va&Q!JuY_-cnMmsSf&F|=Y9e9?-qsk<7s42*{5rdfprzBAIrS? zy520}*zGHF9f`sEAnMGcKJc6&)&ppM2o{PC^?f1o6wz<>isTY?blyylzeu_JHaaeQYwD4*mw*SdY&fh zQHSa?Fx)`}OV9hpF-%Hmr<13aNNBdE<%7BoB zwTJOQ!X8B|l)7V2Th}_eAXgTT`qsBg9uR6wzgQ_stg^h}C?nEDvtQ|9nGy-;p5*eZ zpAV{;-nDNNMDu(bJv@*(TIntY}cMCDG<9@8gkLp_+;f8dVoRgrr!Y3ptLk^TCW^iixehVAs-hg1l4X;t_Xah= zxrfVe`TBng-{=NB4&WjuUGXXtoI8Gw%^1wj81dXjON`+4W8x{s+)Bk%ONKYh{&pfTnqK?`7bAh-hsYl|^k zj7hVO8<7rmY%g#DkOK_wy@Zg03MDfV2b;E5xy8i+dm*>DK>8wR2i;P^w6XVTsAwvw8@9R}IAMDw{v)1Q5RY zw9o;qAE^-&?D}=@VJl%k2wJ6SP&Ffkz(^_N=niKz1wDjVvfA zsG4>MbYFnXX*heI52khLSfSd6K<#+~as{y%Ymp25Z zhHzTwMI+vMo%hA5G@bO!I@nX$Gc$f&90cuflPLe5nrLpVh@kD#ZPyL>C1~Nibh>jk zR55V0V=p5ckfYuxYm<5EvHO%Z7q@sLOYRCK&;^#8G0JOb?DIhk+uZ!lMUyK9SG&AR z;&PYCDih%RC9IoKGQqj>HTQ)gGn*vMp47_T`~xX(kMGN3u*5_X*b9)dAY}rJkOk4facRl3 zW;s`sTUhJw;H}G@ti{)KFMLBznZbo?UD9EwRr=aY+efwO=)1+CoGg^I0&@+$!+C6T z{!Z<~qj9DljdZ%CRX~SD4UoohI`A8ZAga7QKUcy(`Q5Vn<4msnJdX|BM)C~+3eLwv z7D7NL4q)xgM6MZ%GG)~x`4p;V263I}s~E%0zuN(POlpPf7huVci}h9WCRfHLNz>)} z*d;CE)-rW86UCXC;+?}$ay?UD-`Kv}Z%ka-#bta?^$lp!dVIHexRN+7OsN9{rEQvf z%V|TH{gh7O^g@^X%y!?tou=xN{J?vy+aYQqzbR?FF50pY6b~RHq{h}+p=#wy23$oB z!#P~nGR@Xdt<3&g_3uRiz7XtA)>4abTXKn$UbDTJqB~jN{TXJZ_)nHHdvpf*!`$zJ z?W$9=vX)(@qt?h5>aORjt0bAcRTlPkhE+AVgoB=&-&2 zwJvGrxHRKf7wYsJqm|auJPIw!Half@?T`BUk0V$$3Sl|F2ux zGlN$#!*_#i(x@2A0asKu>B?9rk!d(kKx;I^sRRhF6mz}WXK$$ zU+P8;+bqSdBm)93#67Q?+|;P2y=3k|v}O6;ZRIA0n4TRPoNv{%nVJKQ4w-P->{#&e zfj3)yn@gzX3s`Q(tHg~@hVsqBY>e-8R$K z?9JK0{;Zj<&cae+=17fhB>&f|tM`4`pJ*3Kh#?nLXnoNdYd z(AVOPp~x{g99rcQf0Vp*_Wm2g-RHZwTehZ~lwtBY?~|vock6c>qp(iT4adWC+2yv| zjUbKvm@Pct3yZL!_;tzTs&%Uo$&dEMxW$YSQp^!Ac_zB}{cYfeAjSm_me^&g!Ok*``xp~f?j z-Kjd)dak!Tu96Tv32%_c{6{meqY(;@tK zEQ9N0XI@9L&?{Xij z)4o}<<&Dj0ekF+zxii)4b=LmQ%FWld$#=IMcsw*N9t(d3U!dKiKcl!HMx>U_?sFtq zs@zJ8P%MgnyS}O0p`F{j^E*f!xjW(sylA@}gl=gD+?r6%-$gCb);6@wz7ae4O_FC3 zcbS(<)c#bs`2hq%1R^Q|JT5bn5HuRjJEkFTL@qpl?mYYGO8dk1`%_#wO&96_T!?yd5w|YRF+?$5Pga46^O329eoWVoaY_l| z;~Ee5d!b>bscsVZsF-Nq_&3^0YGe=`kaBv@U}q*&KmHe=$?Dh-rmn z;OR1r=j?f<9tlYQ2M6=Bk@|-}>UYIb<@?%KAUyfydv&Xg;n%{Rwa} zwUu6q6e7)R>{atZ?5V0tY5G$m4+RF6BE%3cWa=%9(6Jf?a>r4@Eu;Glk`im`v%Msk zxl!N*0XeeA_d~=Jb@s?a=k&*| zTP|k;+USr5W1?3RCNE`wS*?Dr{lL|7D~tW*?br|DcdXsNP|-E-)fgb}3dwbzKk2t= zA+GX~GXhw*dJaAJQkt4v_3ytbsz3kzS~jy_%I`nU92ii6!`}e)J{(T?eB$A^sTJVd z68ivgud~xD@&XdzAP95c)GPbP$Kn)tU+t;Y#(`r5-ES&Li-$H{0V(dJjr8VOtux5B z#sE;g7){ULN@EAxbK7KZip9v+%@)k=I$&BrlNk!;aDN!PVfj!3m9{>2>c}QDxRMmZ zAy-cHUhBFGIC~T5A_LR}Nb83~oioh?hHtK$Gh!9?xvB+;vl0Mc1OQ+m!D#alC)c=-r86BH_at>19};6UC6Y09w}0*5 zFH^(B$+!4iceb_T-_{5C6m&R1+jSI?Bx zHTWg1AH984S05cfWj*2q?` z=iXydI{(>l9;ZRjv?IY{;MOrW@^#IuXR~N<7$Y{vKX~DHg;}Z{0aT04@x}c~s^$Ip z&4axl|F&6=m?yo1==-3U3iQjF!F|VxFrBYaTt_S6Z!tfU zjMWOzX2g_P^<|Xm#HDwhaNCV^PV0%?i?DgzoemscL-3oC0-JXA!S?gAW3*sK0?*xd zFOP5238V?dbTq_c3O4pMjyVDQ3?Wl-w1&N-e!}Mrr4H@$x1!8_n8()74?1L?VfPUY z%n&VR(z;d{#G@C$2lg8u;9cbi*gc|5$5j%4aZNbeWL~r`WWrH65DdBcEYps4Ux9p9 zV(Ik-PI#BRL~RHMt_~@&Qjt+~+los-4=D93r`wMvuUquIW%;n%pjHO{XkLfAeF}4d zy53&qP!)L&=yPb7G7Zm#D4x_O6fnhw?9)#0+j+G?yVqLOiwzfZy#ZYCc3+Q8RYmT@^tCaK2)LD z=aYVf4}AmOk0kAhVJ~flq-TBGxgJ`*PAZS)NnW%l@F5KB>OMeuMDJ2aU|_A*Z^6dc zq1xC5nzCKzu73eKdHF7lK1DQg(5P-uVj)s@u;#vDWD?IC8k|fKyT0%B`0h)Ro+T;%`Z* zS5z$lAWVVV#H`v46es?Y_+_6t4@9()WBa+Sjq{9=6IS%O9+cYjsr?*M@gTVn=^Eoi zZP^xGH6KpahHPvl<$M0haU@&1sRGTR>d*M+d-Jo6yHEYTC2A%G6N5kG#s}+heRX*M z42RKe~)wdm0L5?;qRYFu%^-;Z!s@1pE%2+Bt7T@I>^r@=cx7d;m=7#j0c`Wc}LgUj;#cj zZ%#s)$_EzDl};vow5qDxcb2a`FK_l`S4DFcm$MyzjB}YIKX2lUE~J=)+F^~12D~4R z7(NiDPON^@=FHdUdqFmF3OBy+a%@x=q_5X7iCXxQgNJ1t0JPqbRoThhwYH^w5DF2v<#_vNQzQoB!PBi*#aH%EFtplbTOEd8@2 zxW2xA>F6k)`EqHzj$S$=NeLV;e6PL@%vp>(CTuE*Q=h5GJ^qHvk5E}&oVRTH&64*H z$J=oc97`%igJ-(vq|oHbRGzd!Ba07xaABta-He%E?xo+gE3LZUw7#KPQ+@oR9A^m- z_sjS4yW?^E@V@iJgh#-+*^i>E8s0cJtk@A(y!h>d$jWENe*8+vdX~!G@DtZm;1EYd z6g$UVDU%xbLCLMuc}$K2s7$;n&|AR zKV##4Vzb{(CL|>9Jc)NXbIb%_>)T7~J;w-~iy5YL|q8RsZP>x{!>1Y%~ZPiGz zka?p|SPLg1egC~ORfaZ3{2V8rOY&^h9))KWylu1TLZ!c$J3F-SYb~Bs^M=jj*=JO% zzNPcSAdmbZS1oXYK0g%{fQZfu(Jd{meAv0}DJ6L)njI4>*2WuTJCeE@uY+YV+s)4- z>`Ol_X}098${jsk5=3C{cJ@Z{RrCkAedlTH7h-nZZva>vU>_vUIX``-_;KU|nTf0W z<)c_~QoXcyg`UnR`77ta%D@Lcl6W)^#w9*Y;x;^OR*D}KGlp@moSZ&yCK$T9WQBbw zoJ5p!DCepsr@zrp6-+(H~#Q&OR06 zG$MIE$wZ{hk*F&<$icC2*VOPgI{UnAslaiX$)umX2^_hJXQl{~%ib)}<;rD$KJ9Kd z8^D|GdVD@<14@QrGwAcCB(5Ld=Z8S-UyX>UyG(D|i>y1*JQ%19Ac1ideB;N%>-sr- zZI}5|SWSNVw3NSWasPfz@ozQ8^62|UG`%}}djNB7LX`oxrpn%|Fet6PhCypdQ(i4P zFbOx&2{aPb+xJ6Bx_>RV=ELEl60I%pc@cr~^g{btpfs>I+EGNSBN}YcFC%!TjaxwS zA7nK*=-WDsv)6b$3q-014<1A*=9T&yclAcppB=x{W((O$*02WM}0{Rq!ePF*{5vEh>{C#%1OurLzI! zia=zQiUkM^Db&GGC_PSfAup5CJR;|H z{K2C&oKUls%g|%*?h>ofMe)~nXEKuhS=n_QK{2~&Ys(R{Op&1a6+j}m=F-WDj1${t z@cF`2O_n@uSuJVqSgxY?mW{K$(8?WIXZK6@J>JVBW>&6;F3-r_-`yUR(-o2Okw&)M zN_GETY&fRz4;=TwN(k` z$ZT*qU$R<%pAtW8{J@0@;3&EzwIP!t!>(rK%@y1ZUQc0A2b1Ru)%``w<#F&JPFCgT z>O}%Y<564b!Kz4H#QI8|zfV}V=0HWG$aurMiuW@wh~V68Cfqn1_~gzRrs$HtElJuT zq=}SJ3V!LPrL~#VeM^pB9EE8e9Aysf=^l4`DK%49A-Ngb5yK=BYt?EaCufhox>z

k^|T1{gH^)QRSy-j-E*RxVu9k#S85FdEUL}d%u1C$Ye4TW|+CNt|jMrteN-U^5-h1#6(C@uz!e< zOAT-xOIvAn7hq7;r9FSMhjj0ET#`tt#cSaXqC)9R)m^_SCRNvkm#i?^7X5Jq6D@Gf z^zRO!ZyGMC)D%=wNR9`c{s?+rhO2%@d*z~pPsszqHyEyul>m`D3kh0u-m(37fZ(@} z$5xx9Q!GEJ5)Y!w5NYg>BSP!lmi`Lp3O6!iuDznBE3$f8a}_N}jj}mB>`^I1LQIP>gItCd~5Zifi3edc5_Ga1_O3oR>EYnHdlJ@g!1xc$FgFp?nZJl z{zf7$j9|N#4$)^9A$k;e+m+$lr?WUSU7eIrb!(P)-r0*b8qcib%{ciSksEw_!FrqK zy7Tj0Y|79oja74DW#}~TS=+`JS%o%&?k*<$PUcJ)@YMrPpiq2+0GRBpn+jMJ%^Q~Z z+UM#ks|MD_m-nSEn^hcQU@JAm%qKuwfDW;s(y!i8uW$MO1kt2{1`z1_{NdI z;J5wDS(3=e0Q{t zIp4SW;fqBVVWBX`C&7wWWKy?>ZldklT-LaW>_nCI(Rnv;Wx01xm^ED{o_u5qZM6OT$L`EvSFrEh+XxLblZf+&yXM%Mg7oz3c zLsI0wJGDh`gxnTJ=1r7H{bGQeA}q|^6pFg8LufBliD|$8fR+)~!!?%m4n1Ok;2(@9HC0JaeI6@!!BAF31DEO)VOAx#`MpdcqXclr8&A6uyRjO8*6tK< z=3Ha@ja#{18zwPLlKSu zybqPaF@67offmIZ`UppBMy)DXq1zs0wnY`+w@<1an?mE;@A1i*>|(q4(5 zGFHWYFK(qyPk-LkRS;7|HFt0<^u>5X`S?TTKyoTCs^zD=?EQ&G!j$2&h_!`R1@S+P&}#?TY%i{J~?aU#U?6S&`ae?%vW339m(@qEJx zS=i5^$|723UTTC+dfWpr9mFhYxg53#XwX|j@gLg+2-H7#ewAwZq=Zv24f9!($ysXoP;c9yfbhh2%5&IRsU_V*Tzyhl=fRH#FBhO z;%p4~-SS1wHJ|ZEcJWQQ0C@$)vLU^}%CGOmRx6$zB9L6N)b(F|6|s)K9YBB(w;zu> z+kX_3PqamJu*$G2v>LBpwYx0{xRi3%U~C<}Khus)&LfcnjeH^?MU+lSuprUA&mbw} zE*Ybl<)xL&OBO1&F?j_64Q=mDebH1)9AdUgOrT{7l}JW3WlnF+389ua`PztyrN`DD zE`?P6O{4gYijK01fagtg2_sQfwK1WiN`f{7g7fWqb~VywCyal`cl>Bf8`TjZkM@UJ zoOXE@x8f)?xqy|~GnC_trbK$;4`#Kr1Z^~{jzjrC62@dJ89i(KvB5@OTm7p}yVfZm z&9UBQ3|lE0STc>gd{koNGO<@Bo^Z%VaDiAZ%cGZ)cD1rV`E}NC$5rG>(S%0i;o3?Y ztKuvx?Krx^k3tMQsU+g#P!@fXJPcd()AQ?x*o_mD_dWvu-s#@8M{@S3QJHd(OlZW$ zGhf+NmQxd*9%~y0_b@75Qz%Iur%SNkNbyE9r%UK8f!j*{oZ}%W92;B|T4H$s4Na`n zR0(siTOard#JV}pVQjW*Q5&WyWAkNsl`pX* z5IdfoFrJ+sYO?-u%LPxi&K1Er1&5JDG7Z;!;aHhTX~f)P`e0Kl&UYcNrgxFJSMBzW zuRq{~f)8$i=5W2>JfxJZ%yjME_ws#d0pV$~nd<-|%e9QAZoCD(G<&PO-VY|skQ_Wy zL{FH~{mPGb`9GOqS)Ht-ETz`M%tfE&$~?%vO>%@yOEz)EP)hZTPs3{8W9sfjSj(rd z>4u?>mlF2*dN`G8;SWV}j-&E0(V>{pp1n4Bi44Bc=yw=~YRaX|bDU`M(dWLPr(W{^ z?a?M|E~YMJf(5X4zg55^w7P`p_xam?M#U!@yhOEV;9|2M1w)b75PU<7&Zck4A7Zx) zn8eJ{TQgko%Rl{6aZs0lFL?J;7n?kl#LO^3T}?}fm~=S~NzG2KiI9~Lm@y@q3F@k; z+YTF$9<=+55o7*v7|!bA)ffX1h>?mQXf zz;m4?yW0?GS|;N{V6DyvQ(C9ri;uimMUD9~)l&9u8pz4XJJn9FrSP|~#qEu0^;Xh2 ze0~a+DmPkntgSagjq4QPgzLKq3j#e)V+m*&WM(>x zVZA8ovjTKzw2}S$-xd8DBAgs2jO%x25KY4%hkbCO=zqyp-3XfG%0Bb8f`o!Wez%Vu ztLrD5ktd@PC!VzUU%x(3w6_Sg8pjGey=IJ~g!Q~MZqvXHS6_mVy``|03Bes7@!()P zvOX{3&&a9=i53@csII&BP6fX9oHi3S;bqPOla=0IKsrnpsYNFZhA)66a!qiD+J4~8 zcKTzg@@bja`_|Hi^WE{5F8#cU^_3a2$56PB>eDhr8fWrb>~rr?%f-x;xNN`ufGlL> z7Q8(Do5ctk$R26jkywo5x)z<;UCaBoNlnd^WX5OIr`Z(uU;^DbKPmpL5(czjgZrq3 z7X$P*Ic&dOpj&YxXBJ95Ma|4o$~`M!B!b#zJAwetTrJC;7kxhb!6?x&Jz6ZMFx3QH{W3=JXH!my@i5eJ>CdFSzk=mz{ z>)p~Wvgk;%NP2^gZrhr83KQ9feTFp~=|+vWMQBE=<$`%sQs-b?6APZ9uT+?jC%dI9 z@SMEeBhEvcYR`wxDqovgr0N50?uGU4s)aMt4);Z}q1^|=H5HDE@Orn1Ol0Q*UQd4H zj(6ej7?lr{w0Vjv2;>)vagjbW&iujZ2Jh&jvH2`9KBM5+Ft#@FST@<6TAv_jtEC9e zwX2^<2a#szq1V~FBtCezy|cO0&oL{~RWZZ|-T|l;ra6J0_q_jg{vMa%Y3L0)PMC62 z1I;p0wTxmEYG4pC;+TW?3FyU5S!EK>`Srvdc=8KfC?h%mB~lEv2xI^zawW1MQ?9@a zfXM*T*Fbzd>ycZ>V)N6i92ApGmjA0T^6k68Mc0Lv0;cAIPHaKsCaabhPA(L9U<~mA zMXQ3qGsnIV1YQ~Dos4suI@MHhP+-0i8F5_$F0_T{X$jagTW)O0PLpw#)oR85UI9`_zgqlqoyw$-7mzj#e{e5AjJpxhsMK;a&j-mJlKj; z8(TMCw@$~0vEQnD#u}soIcG4#-ByO&X?LAeL~^;~Zgh92)xUPv+J7HOj^f!bVf4A3 zj79`KOi{WJfF?hZ3WXUId`H#IN}{6=bp*j_!2uRZoDra+R%d=a$;p{K_=XCK;v!91 zqm$j^Ev(4gf?jBru4ayEWtf=q$*?8`kYh6_^Jp2#GrM3whB+l(Jl+*;u~{NGU}9eM zxw7oa{B`5u)=XIE9Y!H|A8@I!kv>XHNS?-1+kdnn1HD` z>Zlb16qApsP0hNHbo@`=Qc2tbB779WA?34w+0)V_Ff)uNKn(S8#O>D0ECm#3{4d_xFY=$)fS z^7l5^7DxVYC|4D8c0NNTYHIJ28o0L^^)OV=%9CiSk~J|p9-WB&`C<(DggSc*tEa_( zgi+o=wiPY(GhzF=k)9|}N+#jR|BfDqy-d!GQr-KB9nfvje(O=n&%hlTA^+kRWp;O( z9^QzFt>ISp1Zj1(kg#wVJ)0AR&XGX(NVI`2?7@gqkRYt_t*0U*kJ%rtj+ap1gBAf{ zR5e5G;Wz|`F{G|=lZQXHNtx_Uk6Rxz-IjN#vR-~#SbgYIH2xk%QWV!l>_61we=8fy zK*YKwQ~jNzkjc5I$sm0JRM0V?lYZ{>qO3UC%6F0_^(b<+ZHn|CESeHWAL>B5{Dj z)|7kea%Ti^d%Z!>-&&~nqyQezr9(9$E;xCJ`{v)OL9^Y_L^=J4%`j#jGLhEb=^ zZx^Sr-Nun!=Qy*yO=nPqCVJ_tL*MQpS&py!sP@k5L6xYL(Mjam@5NhQ>^Wd#Q!aUO zyuu_>$}r6J8@?Kdw&tgOv?2+OH>RjjqtQ#;)OF#D15)Q_*B+d;mzbgKP9HVrM->3E zSLX`(b4RL1KC>9YzCD z-wEw6;S*;;5OL+hOuipiGa_W#QJk}a6}o`zDk1$rh#l?taxa7xJsqOW8kE)V;?PN$ zQ@w*0As#vM36!gw!P(<=>$cvQYeQBlLWh>hniOq@baq1MEse3oTv36zAvziH9kQ7u z<>hP1kLTH=@ShCzcfqS_oW3p+>cJc7J(Kfk{=b8t&CV862BS-GQX4`z*;=NAK3K`E z47q_GVpSmc#EE)ei98|e`?AJp+2U;cK>eH0cGt{&`>e>idu-_U6jzxb)IrdG8!nFC#u z$29Z2TVr>}eh?9{bZ#kxwiuqqRE46b7vM7?ZZ9KOmPZ0j)u^C?a;CO?S_edYdVqDM zO&|za$c%?qPO?;3|MW^*_8>haaHH9=a(U=HCL4bZsbr|CTY2S^AlZAmQ|PkK<5}7h80Z{U#xrT^Pw2>6Aoy+pH4P~%TdUz zzJ1&JJ>zHtc8ixhao%;^DrJXC-5CoCb^LY)ai>CFsa#YVZ_XQOJS{7Qv>MP)vAg#g zuW)p|`fRW0Ei$&hrBjc+_G*r@aBGrB5bj5C_*TNkhLfGeng z$+%AE)tfNtW^m!jgWF?F@XEd{N}yE+Kl_(|8`$-%1I=euWZA$~*dA-93*e?QieIhp z{;2nPYKZZxZPnw}P5sSh|CF6ENd161G8)T`7+LVr!{{!+IY-h0704X}3a0b+fdzE^0$}8SNe# zIkOXSL3J2e6#N`oOAiVqXy|{I2kEFU!Ju%8xoBwd}MtsLu(7 zDiir11Uzg0JiJVX&2g2;$}Tnsa=Da>P)G%qI*o}ibPDVrKQfB=dG%Rss_8H&BHEfVgg(-6no$>C`VE?;qOH{b zsETM~4$szFyWbtT5-wo+n|(&ahjZ-Q_DOLPu%HY^Vsuxx7ur^e=6f)PL9PII|N zNsbs#b8)4jezZZ(6Dh&a4pB^Pcw0ghY!L{<^Y1{Vj#n@u7D}<&ZsS`^fz)0&b6Phn zz=)e!g_;L_ZLZfI?oPgWDF+z{@6XMj(MzidSAmnX-&0IpTe&W;QY@~X9kz04enyp$ zQV7jQ#lYOX4)rsWPv6`1>?Wx1>Xdqh2i!H1=?6uc(qk}nJZ6OAYEIYCWd1U2#Qx!n zKX<1s|2Cqbz5dW@^+4`gw&3m>lLgralCm#K7%TZL{!z$}qR-td#Jcv&%J5BV^*b4h z$IAtoVfVuB8U&ZNu?b& zgZ$;g@o!{`?Q690jggE+x2Qz&S1FZ&&81b~QAQ(YZBfq-npAT+s0 zYh*R%mA)+hv5tBxouNLql-&iG*kz;0Xe_vu1!CC@cE=?*E&{o(1MzRnkIo7zN4GluqpSF&=h!e!!PnOIi`dBm$N><=s83GTsJO|mnaIl_(aM67)#d+ z>}`+IcHiHYh;-u)K2rw|Ad|a@-WZTo2)(^vZT0{CUY>6+PPJ#(F>w}3sh$FoQTav) zLZGc%{(oA4T9Id-xSr=6af%Y9IjprV3M_kU2a4C}e|dLGoxt(=6}ahDa@raIH7m6N zE9`&O$we`ctk=OTS?qfH-@cQ}xDtwOIIKF(<@-e(>D<&yP( z)~3uZ_R01Oa#y@WbyY~O`dk5ZBM zZ-K4Wu};dhBwHz&pDw^?j@0^CK|oXy9aXw5D7#x8z)g*%ot6EaIN{kKoEn?(<9L?U zO^{B(MA>XS6NW%;2}TOyV}_3+xDA=_*6%ZSkD28bm0~md9WB_ek6yhnb6Uee&iB}$($gLv36J5&mZ7IUpIxsB}ZG5^; z3DdRkv6E1UG-cpx2_#z>bbd7bBu9m#0Cn`qHS8Iw%HK>`aRK|Qte?JW#)&S*zmMh= zqt)}Byxh|kNskpoPZav_M+&5>i8hodpv#4x60%}BdHqx-m}XA2(r68ryWV$sF@2`A zlx~Q_z`_m<`b(?Ut7)c`FojSoCNFwe%i*3YT$5t}Ea($h51 z>-HN1Px4zn0^@jqbVm0)kT~Ft*{URlvO=>OJwjDWcqL(6u9+!TU&~uMIVvzB^Tbr~ zaV=bJ&*T1h4k093WKA-%HY7*K$!6VMQXgM1<>!y#Dx)dX%>-!u{ki^!&2x%G^H;UA zx)l>WP*wczRvT%^8({X`v1Z<8zzryy*$rxNKY>F4y&y2WLIGk%5h0-Q;cfYbwbokS zb(R&A>~!+=pN}>P!>E4;zp|^-u|+f@3OYV)Cvj_e=b0fJ@D&s40vp+bqs2# zFiWyI;B!uJ*h{8${ppiCA1VZhN=UwYpf5kbKk#g3(r|1Ub$W zK&yW$2JQ=Z47`3wipZ{rhux($j4(($OnuihE>bM0Kuv`vBZTtu;v?2iFjqvv2Y!^| zVf||t?#9w9m>X{(wm;gEm(bwf3dsY{T&*`{@s}d6eQ3J1ItyF%clf|Qg+inqGD0uQ z{Wj;WQE9q7-uAt@Q1`Z_6|SzR+xhz5`O|B+6+SkQY)Q=8lF7@nXps8O=~3kUuD41L z$InzTBDc^KB~(aUYiqPldWX(a$EqN?ll{mL4?T@%uFVm0k@?p~FM%plu(LdQw&UfU zK89w(#RheQg4;&gPqyiaTbl#*miTA(XUowp;SqeNDd-S0^a7odfQVHOtwRR~kQ@pd zIufk>REg563AH&+`yjP#Ow1-Enmg~*H@D5)KpS%r{rV%<_HV5?!|`E!@fJbZftBfh zl!2svYSsE~{8$eD!k=|j#Po5LQVj+LciO9IUi1;# zCyw-Ajwg!bSV4(!Coa@-7|ueSYSD{_n3Uv5;4erdxg5iOMUmv zP{RM+7|mPsZj(e%JnQoyk43}*#q{;A5dv%tbJjz9dwcWXsyXX?EAgD;wP>@)Zb+B+EkIiS zhgv1-eX}YMoQ(SeKj(mp9IGX$UD@;~lk*>`UWgGf;K8T`q{@@#E8MU2)v^ve0f&gs zhQG8#+!Z6`c8+UM3=I|)9#zCjN_ZFtI%2oBw?wu-G#h zta{<>-81r&e;NnHMalo?W|V)ypK$#B77XZqg2HPAVaRFY~@CaEh~Gm%=6~Ui>H() zcd*6Q*W=fJjrtB=(zb7M^TgYC@2;Y2RGgl>5U6>J&hsikUXS5_&l@1E&falP%`t2U zk(A9X<6CRKL3G=Hm%g;78UBW7f8oqI*j!5Mj@bqsM3DJmW!TRF6Znq?nG-gxg6ax@ zsHz&x`p(AU%rxZ(s|5=KG+sBc!K?4Amv{!$hSA81<`JhNxp$#{ zuNfOKGmJJ}JEGm(?{;4ccrmZ_f?G&1!dEHK?Al%t)YYV=IDbrVzz>-yOl%A)0Ados zcQlWV=QMnTtVEY>5dg4}vBev5xTJkkQW}ZWH2^yXIccAMn+& z$K$if_aesJQ7E%PA+FwNsQn-Lm6oejRuT?lrkb`yJ)2(ZNNW;&Hj`2NNH?1H)pgM0 zfdT^9t!({91(;Fzzm?SpkDd(j*AVP~?wsi_SD?;)gQzOdb>~i*om*S^b`5QF{|}6> z&4IX;u=~tp8Hvq*%+Gz0TVTIKGf-}Qob}{MS9VIFEMGD3;bo}O=dphjN|K+iBX;DD9&e=_-FyY5?Vu*Vv_Yu#nbiTxN0MaW&_)fnW z%S4I!BvmslbHaF{^A*m3ETIjvEL*M|krAO~V@5qAUc9_^Op3&V>vXu*_AIqQRT8S_ZzY-DB2**xt5{+FWECsaP3@~EjivX! zuRdo>*2!`|1x}ucU#+e4@vOg@s6a1OkK{H>Dc&7fXn+~MSAzDt`H+u{aI+~{V<;R8 zF>*Lx)we#w3FPq^dOneoBhOEGem%R>`1Rfuq@m$_)fls5Z5PHB*GUpJ=43B!EB*1` zV;3p?(}t6nGhL|`{784|sue%Mi6H_3N+Mu(FU|ErGEhKpWK1&RXlOm>**>OSI3sZX zkQt=c42D|rzLJCfDSEe306sLP=)Qnn+ybKw0K0?xwgH^U6sZzq8&$&=WDHnwFK)S% zlYk8^ZXG}nD`4_E>V|ILb3FUai;6C|0$={Dc|A)`DA^Bd{tSxlSlmw< zMHsIKSX)3pCP~ourvR|h;w_5GO%Iy#&(L(NG%U%H-4yWVJ#`v;chBVhR>(jrT?H7U zL~{CY7SujD7A(7JsK4K*F2Rw}5>WKJm+B3c`nlgyff=^W8A4;Wb~_^pAu*gGZ*K>B zF;V=^_B~nUMVw$7foW6BQInO6wvJxMNHB6sYuEA*ytF&M=?|}?}_tD z8Xovn^W3Q`QLlW-8VqKeC^0F$fq-d!at@^Cjl8xi#BpX3Qe=Tl)SY*9E@1NUUT#(l z*k71P#r07cCU#gj*|mecu#TY|NI#@|9GZ>ey%Qpj_2bA0SvjMN0Lccs&DSDkEQdw#Lj_eYTL`c*w+fOkB9UBw z!Sf}b9@qm-wguRW#ovKJlX1e4e^+y9`HsiK1tfyZeOXSQW8+GR$%D` zV_0HcIG&t?DE;gDmuuyraLBP=N~FSWDRCAEX>C#+PLo0@b4-jf!~C$GP}N_l?84&* zJUTFHHpcb@#%ER|InA;f+4v97OHQz|Y^-XX!;f`-_2M-Dg|!5MmuZqE^Jt1+x#r4k z-SKwOZf9jAVbMnnFU;yf+injMVvMyA*$^l?^7dJ>=8g~%QAu5X{|axx@zC|d!`UnU zmj0rQi{SPU<1t&l{Uf^%6$uUPyVIg9ue7y4{TRHAj>$$n>EMF?`Sr}p>hM8C+;p*# zSZ4DmJIr8Om!S8!J+B=1%2+0YGNA}>+eao#CGCevVkaHj7eQ#Jtl?SAI(|^aLE!ZL zh#*oGdg-v~D4)0R#*D+tDI50TJe$%$Uo&mSOuQCvZ_`fF&dnGxmH?QXvFJ?bE(Pv$ z@=&yhC>>h~-6)UD68q7vz3o|}!y4S#6s?y13*K!Qw#P55BS9RuyLfY(!Luoi|8s$1&Zd{#yaE=1&_ZBI7uj1wPZ?0^7HOtxV2^|)uZmt_cUk?i@tWkD z+V*yUm+a40q_yzA8NAbeF7FtE2!ZJs8WyuEP9#mSaCCR0{AAPX&B2;y%h@nKAfP`;)PBmNq%M}C|_|@?1>gzwK z;WPFPnm639-x3qS0F-?pQ)H4u-o@iWd1$%MGRDe?ZRKn?bl)QTaaCSDvGOg8%{vSX z=x{xVoTE1`BP39ESC=D_TR{2HXK3?M^f}H*#jX|MNz4dkCetZnUW9W&C)R_wy6!>q zL)M<@kg+dT^T`e(j#`7{Vdh;k*Nb4&9NppC!BmacpY90Hto@>q@5f3jL)Wwh=&KK0 z?~zb(nu%t?j~=W+dYBVaQb^}$FDt+Ow^HTh1B1_Gc^^Qea0rCGf(Q5OWb1Gx^3y#d z6fLqZclV~A(rQvM-;9<7s^iFbQ3e8J4yOj}OSDaNBmx!;%#PH8hnG3pGEISn1!^P? zoi7IBbe6m*@NqwVFY#Q2kMTtB7%5pT8vT#dh2hpDlYV-%*(9%!&OYAz4|L=&rGw$)a`?u4713#bWte?Eb`jcd&~Xpb4;li9pCdno4dc(Pl6)39eEQ_;Av{I}9K zccn*3{wk<5WH~L)#2ZJFc-9sPVQL(*fGW&;@f3y}Ec>T>ECM}g%z9H6XU*`>@=ZcT z$;vDZkwZILR=>lA#bu^2TCXp|F#t=V%c*lss}&sk27CDIuyu!YcS+WC>n%M|(f|26 z>X=hg?UOR2(lE{nlyabP*d4Re=4o6NDP`wt(~8R@bBnNSbgZ$tqjDC6Wn<5(e`}q3 z1v9QnU#zQG5yFQukvdXG5iV0ASt9&{sHid4shGgj7131&S9NK5x#VbhwVsw-gfu7A zA|3XmuKi0>K4*9kO3T-ReP_qGe^mN4r3Zy4tvMKKIcv>N62|9C)QPQ_7ty(2iT0HP z-hsx+Vso68(igij6xgu_@YZ{=_}hDN zu$qRN7Kzz+HMMM7ZGQ3RF=GW0GOn1BL1{@Xvd_cTzD5fA#XU3&jFK1~|h#p1Id* zCHWm3%xjVnMXRbyD*#WDd;_YZkl2zt2gE+|`vIM_wC>!&BGvm(YIA~~3GsV8vk#~9 zl|<%?U+-G&!tDwbTV{G2z|rji4-qut#<+}1iHX}2MAxpI8`b1r8orE0lI|Crl6{6v z>w~^0OH1l%;m?G`b{OK9G7r2M>;Bf0p30!93tugV2g{l`% zj6xS5@jV12!{@`NV5Z&dVRN*9yhH3k_nrs$Inhu^iSP44FlyMhGr>i}q*CkwY|loX znpX#Id5U2>$Is0QT%GvqL}q9MUv8pEybR#vUTG2uQmIDSL6MSN(L}r zucC!d-;*_!wIuFo;EOiAkm$Bx{sk-(Oq+v1br*T6=<1SfkScT-tfoLYh$Kswl+ zA^`>+GP^jX+c!OGKZL-?D;S>vatAbjNwsZ`*x7>^#u|Dm@Ht_G2Wx)ezD({?*Icjp zzMhH`MOg%IqP$4KLJ14YtZ>-eJSTO*TE`Y z=)YXKO9{50s9@F7l-4RTl?Hm}pVJO1ZLI>VjLBPqeA;3zO9pE77iY9xQvIel>}woK z2#nPeV_(MlV6=XVlsxR}4ELAz+w+K=43jrY!plbPF1?i-1#f$Y2e_qt_y?UuSsOe~ z+U@BEkZlMydIl6MdaWzIT`Ycz%U`5bbr(n*CZ8Bfat1apkt^vVEZFq=s6Byk{8)gQ zEr3jqEH96Xvv^&|#H19pT3>5Rw!+6{ZIX~bqGOxWUQk`06wtYD9{Ha;@1Iv6G5i3$ zwpRn3fDQ-(a{#6CD%W@^82iV!mWyMnsrc0cF6PmIrK)_ z>Zn%Ggp=-fNvUtjb;2jwmC)4wR7@v7F)#U{Cke*sQrcy+4nN7+clA3sV$Uck_$YdP zCizKMMo&tY@Yh`Qk;eoy8+DTD>(HfT2O%NH2i`C<69i1svyhGfUxtQ|OFtEIZJ2_N zw2UXOaVpw)7^|Y(2=&19a7!<%bEM1g;b!~+#O>bEq95isDp{9S9BSnGF$T$IoXrlK zw!J&lzl#5P3BWFS@fy32Y>)JRy^&OPc_vHn!++y}m4JBhu=W#HZQuQc+y|0RCWsJw zKdh3I+j(30>PAIVGMhrpR92}WNEa?2v6)~qw8g6FM%S7^2|ZI+EpY)UjZ&piW>Mdy zOf+xL%j0tz{_bA1F1LAx5_5S_MuQ(Z^wmH=FUWv#(497tl$Dj!meoFjj16jYZ7CEr zy9ZP=pOR5M)79tgD>!e*?$$5wEJX6e)^jvLIUu%+7^U8Ux(;6bTVgCP4;lF_vc|}Z zvhwI`pWGm3U0pTfPh?olWH^iLIc7#V2De09J*r1@cSb8X)}`p>?KB+YJR`gqWKgu) zY@{5094(~cBcl$f&P{3-Ah$mIqk{$VsVII|yqi=K9hXxtoLQecXS&e#`dGeVbLXan zk?qq#Zp}NUE3`s(U}ue!AIPh!!a>vMGl3>ZZGn%0fL!}QSaiK$)?ldQ77g#;fcKxM z7bp8qSkU|Ir=Oe^`w!@6v_5X0^+ZMh#H9+?nprb}R{V%3<85*S4Jssc`s$~+OcRk& zx!wT@p2HHiC&SnvIAu1L!`9hYJlJ?{9dRG^nMn3joaR+r5=^Uy=HT4YzFSpo&X|2n zhpb+TE{}s!5~JrPqi2{*NTX$k!R(KWAE+%?qK#^ISIaI3;Li4e2MeL)AD9Ccpq#jS zjaD-!{ef$ZF2~j>ZO!a6sS6wW0@*a>Gp&tzCaNk*7x-p7MAuAX3EV#~6;^@WDsE74 z=DGNbcsE&7A#tckS3%bo4YdY)CH9x#XP$ZyqpaeQg=Xmfg5bdKx@^kso(~;r8h3Ej z!g))b<9ROxEf2SC3+L1B)*=mbakA03FJtTLc+H7i-gEl<4$4`L3{@vY*>-WkX=dPf zb(3G$j(g4gAsd^mLss(X+P};kR|T8&OxFp~DQb2^*c|?EvHwrSzbmBiPZ9R7J{ZWO zfr@%yV4xyrmeF1fP6c?_s>9mp#?`TIOHL^UqZ<;FNWX=l7Kc;u>4J_ff7|7bfP?8T zeBm7kjX?F+wi7c<)RQ)|PKK|GfAS26n_ywlV&TQf@8ObORM%cx@o-Wg*UaTZ728%w zxWp9FlvvE~|9T$ij#*yBXa6+Wag%E~s@o-AoHxe6!@yg>KH|7;)A;NoSjK$9MV6GM zrj@wxUOGp8ml;YMOfk^Q+shY78d)xeHI|)`Ze=9IZd9o3Uj_+oqWtpbwH6s+pYlWx z+$RlFlB9vxiFKoW-c9EqPPp)O?&L1|e!j{FDtq7Jg1nk2tE ziY|qO!!un9#6UbWzhB#45KcCaX7>+br&uYQ43EIInmfmQ-(m}!WKdq|Ws3a?wTK=O zuXlCnouZ@n)sLTW={w(%z10D6a|YvBVGcRIVz*o^01)*~-f|9UZzYKh-ocp)9=ZP&|3umpX?z*S;=&~e>2?k$2>vcqKByA!7bIxOVbLhQTP#cOoTl%rUaO%`cZN0}tLhhhjMoFa2UW@kAeFe+E>UkNlD|849?GA! z5YbX`Xt2GTJgO@GpG)zlh2(#N88=KM&aFeaVy@q@+I?dG!VGx6>}uOXgs7D*Y$@n$ zDRzrWyj#=xS~35Y_9?6w{jl0xxo}KfuJ5zi<~P>T$9lvJ?&2b+xV@}^1#MeS{NXee zw&G#^y3~CRC(!HAYlSP#jGf}1Hl&e5An1MHd1eUO{S3uPl8U3c_2MmvkXfPgqGvV} zpmcNY{W`SI|6Ovt;5utw>03-XM*gV7p7R@$2ohZQ4=9{yM~e3v4AhWZ4*0l zd^T+1#i$nz!oaHeYQPuK$;lLhJ*qviW8tTsi2r^_@p}}zzpqTTQ7d9nCr!mMtO>JA zjk^>(jb7EW`QCzj++tId&S~YNdBn~}fv_!(8*Ykfi$v3FACCS8O!9`}2<)`;mz=fi zm+kNw93aKYo`b{d#pvshYFIf?`^|H{e}CC6U>9ip*lLKkaf!kj)t;el21!@)-(7mf zf?$mddcpy5&5)!=fbu0eJ3Bhpp;c@@{ET+k^I;uM;Fx4rHC-9rZ?QGXjL)*V8khIA zNJSJCV&(GqA0+0ZGQ!dnicL>tpOL;6jALUZF5iBSKiWAlGL@(jZib^bGAcV|R5Sy;t;o9C9Wh@I)N-< zQfMc1^es^T&xMHNnGWwjbI^#=+g4riYSmlEmSd$Ej{O1h|Fi&e@Yl|t2;x=c&GDLJ zxtkg2N6Q}Xioqt*I5FnIKc`}%EGXq_9Vn0? zt`Wc*;U_qE?MI)c`F%S`2{_OjihU-XDYiLqqNTfQCavqJj(JpA#Zi-2x_{#R-s4L5 zU0|BX%GU2q)yfryjeC06wqec)%QmrUVY(}}jIcn-7)f~$K{7CLqu`#DA&<$a?YKwo z-gpj-IZ7UYM-vdXH4*sQ%As~%@E7guouF`se=nCc>3*7se!))o$Jp=#4k#K}2`XSG z4$@da)cmfIf?PBj?Qui9^Rxkj-fZYl#Vw5=dqzPjuzGzr-RQspEy`lvDwe`JOMeM& z#`1LBLd<0EB*@Y(V2S0xMx103;Y}toF2RS`r|g%_lB%BH1DAfPU&t;V%7_kXjw^ZM z1M5m3%rk(@)C?%3k<3AA=}2Zq>S+XKnrfP`clI@i$E9(Q)KA(Iaif`jqPYL{@JImh z2b~LJhwjzFkqdr+ca*fwv@3{pT>b8>m<25@T0VBzR@u2(T~3AGoppranAggk^p8kp zGu)JS7u`OAtH^@cBBm}W;zwixJ_5u~3-rlc@**ZDZ%wAz+fH=&i!TcI+CC0Yb_rO3 zMa_5>md5f+ZSv^kahv(DtsW^KMWg(n4Dg1Nt!c603+D}|VF=k+x3_T~&7#I8{{8bt z{p-9tOq1yp+ROu-oM2>#vsDP(npTog&wzE$XtreVo{9v&OGM@ES{#jb341J4vA=1L z*sgdK$PJ6?YG_leMTq6k03jxSZylR$;b5iun6Xj@C1;L^iTz8B?WylL_KJ9|W8=7A z;uJ*mAQSZ$y=%G}KF_Ra>d`K92ePV1`?Yt@`O{!SAr3PAZtf?qx(VzE?3b7rpKLn6 zpI*0cEsyRxR&3C?W!|ng5H|-U&XcV2tON_%;s#}z9je9kmy{BH|E>Ezq)aF?w55rp zEAY5I3wh&;cGe@V@KVF==4EX7`Br4jdu-k#PAx0`s#s#pm1m=FuHa$C=5eW)Qwd{y zxE@Tt(qGTU3LO-&8^C;@VrH^L;06p?5&xm_!`@y-9T$!GQ-+`IZwY|n|1+uh_f?Dt zt@oQj{DCL1R2mqSUUu>noGU9VMR zM2gVr7qp}M`A1FvOl%C|#cI`t1rz#U4j73YOUbM9of_mbhNoTzy~b@`umf$sR=9AB z5*i0JT;$GPp{n!jOgBwE zoV^jb36!>VTuJ%`xJY~<`=tZxTIh0)j`;ZW$8|Djsfd00xzU#VSN?$ILZwLd@(y{ z{S0Ah#wqk>nq8&bvY0ZHlPg{{|8uU`|9K`qy+K%QcZ~wbi#P}uP@WT*sV-sn1s+15 zJlW^AK3nVzsRy@A|8v5>?<$x)9Tk@w!K~tMuRvaX;fzxl3nS-M^|&|p_AH1Ewln3< zQ%(k}oItc+&VdU9VfCo%!{xB@vbq>~&_6H^GG&QMPb3 zI{=*v*Go`TFV_akU!;lK`!Vpjdy3^+O$5;>(N1f9?!l}ratI+pYAspiTe^1F@W(C! zy)T~!hmNk7Jh~Mt&hT_Q$@_gqp4*A>Mx0SesS~g<$u?=LAdS6lsJ^Lw(7v7H4yA5Q z!LUCZ(QY}gj=K$y?RFS{xtY@UGn^6=ti(UF{gSRE8uSp7RAe9VCo;0wI1Ay$;`i8_ zoY;z!D@o?~(n=Z1aI3=jMhX_H0hTStAEVuNnRs?l(4%+wExwrXMD%i-BKx)Hep!nn zC=U3;z&{fse+AgR?R4(I-D*Te{K3bqYh|HkOTc4iroUJ$=s%ej<*=F=Cgiv3I3%#b z&K$?m|6N*AZIY#*Br2ucXFKrAe_eKMpZ^VrC+)zh*M}#u>J!6j7ct#1qX`yoroT6y zoL~nqJpZ=a<5f66D;cfjG)mr#Z?3G)W*CCq&$IbG$U*jmqF#?t(AG90`@macj~P!A zBx1s58>0@&8R-#kWT+b_8CEuui`Z4W%KU;Y)XH!3f!)TxtA)kS*YDjieq?gdB7ORk z=)CqPB9nS!CBiSm0rbCk>Rn_~>>M3Pq@F>;xoVSsbh&*q$Rg!p>wZ>T3|-M@?lVtc zhJWojo1;$1*n@uWoR!>>BoQ;D3hujFq>Tjf*Zv>2zA`M1X6qJBaDuzLYj6z~JOpmHXXH;5G%H>GE_dkD|gzC!-<~xR-ecns0Q2Lvfk-``^wKBH5SyAM_G|j>t!V z%uvw0h$_tap8XtYy}GHur6bet4cs3YBNq_phy?HPhI(++x^wMWCaKOswAr=#(|F7+a%u7{R|K@KvL7zCJfMu z41pB7#Q$0<|6KC(zWgAs;xoWE1CTiah^tfFZF>y9puOgz5=MZRTlDFM>g5kWzb+}k z4*F|k|M`7_vkKro$ilT%9stnua)j1~lIRp@lS*@D=Vv~Wm6Srj zi2r|@(~GXmQdL(63Y7sAYyfQ4@D{T21bD)|fn+G3=f~@ZLwkQy;K=}TRTXSaVHOOG zTd^Wz6J6H&Efah%c?Ktvw6M_6_l-crL`zec)X9yo>2y;kYo^VsRv0kRKNui-BrW7jcKgaNh z#W#DJG)_uD@<$3#dywVx+tqg(+|0Ai_sP^W7;u2E^A%NmM(JtXvxcxUp@$wgyLoj29O^)>Csau{0al!pOuy0eHdRfv(Gpfn zCfoa#3Uh0CJl?Oqt?<(Md&Q)_`^T36w@N&qV!2N|45E$$k`rhr0Lag7P+4hCN<>5} z-GGx-xUWX@wP)3X{9dz(#YIfPJTwrrN(DfHK9o{s4X$Jxr)d?1+BP-TD>EH%+N^9p zov~@}E*FqoaiE-+6f^vFOD6`vr_WCZ=2nM3f+;DXeBp#EU4T4dm~rdxcN&tC6>L514kTo=r^w#Qdm-Q%Vw8*EmY;PSV~d>tgLE1c5485R*9}LF5a9mg@V$b41jUkLX^cd zCB!WN>&ah*s3FSpUcXBHNXecNW0P&zK=9y5(o|Qgw+y;P2YgMPy zSm8}2Z}V3eYH%8$rJHpHxCS;Qa8@Nn>{HCw_{L>ZOGb?FUyW4_Xu3ZoT(%v1G@s+O zFWm^MtACi@DlC(b+|*a->E^T*`1J+Slj~S|4L??Ot!>8fvi^&u;Q3}<0lEQhLR5ef z;YAMt;Vpovwqr#Uu`}|oHKA7o{A*f+s9wkluvy$bFe5oJmvpd{NEqO*#A+Qa7E~B> zFPUbZLXyL_4nJ~#jy65L(h_u<6RyMuogx}_(mDH^;>T| zP#09lX0NJ8J-H7QcUm*me!PD%B-l}4SFQNp<7|s*eG_A$87sF<_<--GFR3V5X(vgZM61;h;SR0A0|)^%03*-?M#2Vm>F^H^~UN-=N4 z4ub`rU~^q5*Ip@naUAIGf<5aa9VH$%9Q5bUpUcY2G2pt?m3NXF5IX8~Sb!|zSZN@P z{lA{8seW1Q_D~UL725|ZVdTmhet3f6!Y$*a7hom5(JeuG8`5T%e5NzsILi0J07UM`$`+X&4BNxZx-C%}fHZ4bKx(Ghwn zn&-IoNNw4dJDH^Z`hdCTBo2toy$DbEb1~1{@->Ne`-VM z%D9e(iwz<}9RzJe^{va28{NwR{qcQW18zqdxd zya#praSaI6y)h7fJ7(_}Y?WbSV^h`9F#*sV-VUBW)OY~fIWCavY1cr27XCtZW#4`q zR@w2C5spqaWy4c#n;rDO7oe9G+o4b4dt2D-501u&y*&mWD$%eY9PDRhNsDS z2W`dY92E#r0rmm1228G#aM6cA0C*P^!xv|712z64PbL7Vm*Ml>>_d;}18m1lADhR?Dl|Y% z2CNLd*+(1Y=Ks9_+uFP;&&$w^n&}uRbE7i-L|!H?5kD-@7(c}L{Tn#Ikp)nZjf{-I ziHqgz0AuRl;2@R)kn#CVtG2s@8LxVh0^mOP*T?5C^9I<;DKBfZwl-wHSu4eL`hOB< z{v(YEL@zc|ypakjD*_B4tPOTcCcvNp6lH+P3K)~rvQE?BR<$r=qYPRV>}p`pUS@Q< z(ytHr{zvIVTV-epEB>cP;3`4h70kpG8R4@Btc2V5fM($yOM0VMIa>hUeW|kcJx6Pk z`oo4I0Wk0UOJ@MiIrZCrStN1OA2hK&m4xKeXyC!Elq{dESGVjafDEnGFp7lZ$tx5e zc~J%2f8Q@5b*U9QZji2@TM@_}M1c7RYKTZ1af}_s1|ov^z|!p(x3M_5!}QNM?|gX4 z<=ns^616=C&tR;OembC~kwTr8g&K!q4sy$U%5GUSJUnq-=|;y1_>WK}qyl1pmXKZ) zxxv?15xwIH=ng9RRn{DfH*i1=7NBEtc8s-WVtv}r{7Qt1vPiycvhzUFl*H)RPi)(0 zmzCkM&1Cy89Hb*7!FKC+q!rN7%~7riAB(9HTep8$8_kIvcJ{hgcnE3|V5_e4S@@%T z-JRT%h6{{Fr6*)M`}u<*G0n_H%s_npkMTWp0{l1**$?xKFF=%uaWEJyWe011bq@|k zOrQGqDTSi}M@h!&jf+I|>L|&z-|W{3X?^kRBs#=X4}~l(%SCXi8%GIeZODF~5Px77`}D>vM_S@ffGMHApEuJj64oM_@jZ=7W>;Bn8T2HXH<0wkhI;oPbJI*Dd~9LP;~S85zEXj-0)!ob_OOD!J*R4jS@x-RgJnppU3Z7 zlwj-CZh`;z>el|YHv*bjZ-@HB51zMH_y>(@uZV)WkkASL8D$c(#L8zu!EpW#ruJ@| zij%RnfYs42llS_XB1Eoew`m^s*~R{z-REP%JQiPMMqG}bGjtoggh&;BUN_vHKcACq zOcet<5r0wJcr17uo~>s77wNtKou-@VoWU(!(3&kkFoc(N84=(5ya#i}uxpumcxeG7 zT%5VI1iW!XaL$at%1{;Yd8SIFasg&6;U%KET_ z*k>7hDn8VFPE(K7G{=y_j?hB^K*-Y(KH(o3sJ5J&8I-nYtPH^*Zz_;zZtB229LH`@6)AbCaRkD zz=OrEZ9mV`_AG;U{rbJy!_-mVFS|i|?6_{7e>CUlTXU9%OnBCFnQX9Ab@j&?_+`Hw zlQfderPOB!G*_aTz-b;k1mRe7XB|bq0%|X35dD)MHMbDWg(!1KIS7>jjlOzflr%Pm zG10DEeMj@_0C{1Q%7g4^df5K;Llw#S!w>RuYvzf5%Ua9pd!a^>ld65FFQi(;g@RhI z;gx?fj6^lh5F!3sM`3toPccxE&F?~GZSe6n!z@xl;lTwiOQuK7{fbcAww)cBIhm!zT8b;C1me-%tEV*ck8IV= zepe@-K~^n{oHj$j6xj0-wv|aZQ15(yOt6wEH`Rpa)7{0yfjvpJ-C|**@G9AnbQy|{ zhjAvmgOwMn`O3!H^8)2Sx4t!&$EsnU`4!b+2PY|p=rhSguI)+74*Y$(_?#O9Dta(} zD)BjGLWd?}$0IOev((h6LPtDkKZwJNb2pGb{AVGujurbwOK&cC*TF0*qK0PMUGCkB zv>&ew%DJCiYe2($avIm(X0?q53L>Hy6^cwa&B~{nZ{B-TZ-h|lbXlVy=v_-i*9e4L zD`bq%rSlPgB`qH`odlg^F=gLn?FK<;EHxLApcRM*BrU>-iWDf8X+*M4Y`~$?y|aeN zn!-#?M^VWF%M{Tv!~}|*4f31bE_#g%V8~_ra_f2XSvo^avWI`_u8I=j#c4{1(WOD} zV|z5>C~vd`PBY4p^zVROJ}q2LCzgAU`^usU#yvuIVw(x7J;~J~>?3^0kE(H;09`dd z`G|pVy00rdCP~fnMf)0y6(*nsvmKTdvT1Yi1f};JH>XYVJQ)+)TP6;F?{xcIzQ)o2 zHb#8HUbfRgkp`&6QsCsa`Ed5#sFweem)g2J<%2j8L=@-o$H(^#vS18|dFF5H>TOSE z&lA8wkty>Uz?$oH+Ci2vBIz0PqATsmB)rPx##-?TKE50Eg-d*PS7}K+(`*7Jp zf{8W$m8O*Ghtv8g#zcqiPWT~#zv8>SPniSgcV&DGYcptq;Jxwz*L2!mZz3C88;-}H z{dLw+ge6H(SIaY;^Pxh;J_lO0%*DQ0xkeC1p4FLsr%pX+`Hm5XsUUdm<^l$J#jj3-aS~oCfip*g znJa0vvta4kVUcL#3%@l#WjvKhaqv~WWh3i1&%-a@#Wa(pq}!w3gR>+VzfYCfOVH}f z&E+Ulp_~f8o`w62RhG!0&PkO@lW>)Qlg1e;NBOnrV_t3G+KtB;k6%y0E<)CR@utqZ zuZiY~^O&_&R_?w&6Ml+%CmXk_;$KzG7=AfPW#C}zvM7DEOi#36C{>r!c`t{G15?{sMa*oU#MT~rFW27Y?M1EAZ>B9>J3JT_C5Qam z>jpn1csJCeU1q<~r$TIJQ@hJa<3kFL9XXU#ikz9sM}|;L+JzHG-&_r*&TAVR=wt#; z?JtTG5v+7ss8}h^cu2uDs-YGaC%P2vR1VWf+CF8jlL7gRoKbv~id^gOD46PU$a`Lu z2JYX6d<);v(SnKDzX4}$m5B{wLR8h7DHY`zZDORu!;ZmLXJdyT8xz2gi;F!s$;(5EVy1~R0VyOh{osypT@Rk`yfoCm-k(j~zn9CvlmbBU z$S?0ME#DLcufgrN+Be_S_kZ9&)4!j(^fS#2kp9XK&{4>%=GRiQG1WrFLN9bW2`%P@ z?s&uT9_LQ0uGn!;vWMvuGc^$)HK=NThOh7BfyOq^ zNt6N#>@2e4saQ?5ZY7ezt1zzVK@90ZbFY&4Gsn|S9{{gWyE)3kaO)W)s{i!| zH)V#Brw`9sm)6iF&Sxu(;2q%XJ{|;rNm4$ zhn$^hG>5lr1vF|HLk|oSv=jKaTw#u~$yVRF9dra;l-f5}EpsQ__4L?Y^HUS%oUPi& zdt595h2Kp^1_VDa3GpN<+>V^>E5|hN`85QdPB+l5Z}%Ewcj&4fa^@YnI&zvNOS6QX zQJngu^gs&o-_`JAp`V`ch>1zhwj2lTAilCyh0*x@p1n5@S(X0y&iv6s&_7X=IURI$ zUE)M{R*m8(++i2DbwCsah|%HC!8KA{u=nU5k5o^)e5-jIt(=DNe;CsBoCumEhl`JO zZNgWV=bF@WlF$dRqhY$K%EqA}uGN(TB}|hHw`YlKJ@$NpWM^guAZA7sEOw#f`EPY? z6Q?`5j#Ur~2<&I)SjO}Okz36QTqe>zSX_piXfCx@^29_*q_g3^{iB-4-BeQ@5s7!;Y|F>+`MLxVe=Y$6JnX{Y+~7W~TYks-!-T!o`|gpT3F%BwBZH zwz{(zCZeJ-b=y-6ZTd?#FL*9~)OC+*@p9_%uM4`W;6$G;JR8k^TEpErWi z0@|K;nB0y$Y%+}^>#7(HV+fug9h_tEBQ4L8&i4WL6c>x`s1E{t`{qSF)Ws zv_WcLm|z)Ui}}gto|7MgeMLkO=0Quj)Ng)sO0(v$H}UOc9*65GVNDH-F+vj_d?NF| zR=q;Ix?QI?+Y!ihMe`bU;#}MJ&&H%92sXvC-9*V{Nt-bFn64V}YFN;y%6|~ALvY)n zLBbMdDCp0SA;14!K)7=5=@R>n3kS?j%ro!&wv$VE0h@?LheegX&xFri^^7<)zm$;K zT@P;-z(;7A$fZ1T3CC}1Ny;$?**TxMnuAzl;;%Z8Jf~GY&!%meNHyvvmL}JLBP3lM z(4RZkeo^=foLPOsVtu-M=7`2EtM{fx0*x^2Qqq=F!?O+_OwIFeZZ_mPHqKf={8g0M zruZpIL{|6Kv%)8~W47mYJZS8GZ{YFnJCgX*@b?xOF7B&5zTHCXVMH`eVuCqsOqwIe}k4R#S=8$U=B((;2cy|^*U+)l;2%vnJ zn-97;6J(uWyV;)4Qc3;>M{itkV&&pK-~P;he-9ycw-G3MLkbD3VBZCto9ToRLMCeFV@$r>JT9NoZ}nV!j|ecQ)k!yYW9&Li`LFRS5Q#@ z33OaFtEc>3k0oM4xoH@s9WRQKO{L^XUFQE+kcxnY+*?7K{r&I`9{_eoEiuNQAY*;B z!06H+aAyf{CN6dhD4ow!;Vjlt1OOkqhflv2sd;U5QVnUSRw%J?gp4UUM~5LF4baDy z1lY(4w5(qw3;`CFuWZk+_jP_A@r+-Fg4Wj=cpNZDP5IGmWy(l4U6e>C(z6Vl9C=Kd z86%ixu6Ub+O7bFh6qJ-X-d+%fYgI@XRqVj1e=Cg|))V~E#xcq$V_|w`Hl)BiRF38@ z9G>INviv~|z=<3kU?_dRaYb|!OdDq^?9TU*vp`S3ia5tnK+l0=M0WVHbhen`!&Zoy zv6GvK7;>u7K#zSzc2n&rJ>Cv8Yw^RE?)-~+Ecl#eH(ADS$!5RON{cNJSS$r$iHid* z0t#u8kwKQ-ef;lVAAM>`E+g4nW(m+8V5p(l-Qtoiw$M}1RKN`7Mr8+z?ml6hT1x88 z3AG=9493Lx;$$?w=hL8sbsTZ}2!3m2|cZbv_zTsSF7Mb|D)xr#36MIPZy^Q?H` z0#yRX2b1_WYM7*(q^k9eV5V))6jSp!LDOlwHC(K075FTwDIZm%#$f&QKNcb9k66U~ zKxi{fwgS7tKeaFiRb+$L8Ir*A;}bFpn*5HgOSpE~U~^my{p@vwu`1V?!=_pr2Pt^! z&C|4BNpvxI{0Z}2b{W`Gb#C~khl6V0EtpyOAiKsl&;#Eh-818_?v6l236) ze!=f-z^6uMsg<~vzPq^FiAKi775dEkp=eBHq~DR}l+ILI*>BaF82kg~1TM1d!}!?U z@8tQY=`GW+4The4N_UvnGM(9|S0%(>jP zI-P_a#DYN+ZT^rz`AXZ3Io@+GDKFRI&4-{;&rxdC%{!^&eOFNntItX@idFh(5?BKm znU^s`6-wzjxz2Bu)66o4->{A6R?F>jUJvg7fd+ zKa{~QH-|9N#?!_qDS!LO9m9h1`7q`N^R9pPa~X+Ev{~21K@hx%`WYhY2fLYD-?OKy z+Y10`MICxR#6`u)VBFC)wdGs9ofa>#D2-IJnUh~1JHW@3rQu$aYx~5vBT+Dn*%T$4 z7*lxi11490qSL#*BmIrn{!F2M?qgA)J)>Dpk~DHyQUv(7S(q|-1fv2LpjG$FO_IpH zU#hcY%S~rK$Jj30B*-ZF_-rL&I{o{_1L@CVcA`km6oEjCeuYk1c)n_pfqNg9))%Dm`u-x~NaB{H|!c zA^NX)ZZ<8O%m7!$ABZYQhAHO?GMLxr2-}?}f4@1A)|78$XX*h>@_bpYg~x9#ASulu zYf7{<_ifE9B*=ANmXVx>$%&OND81Hd$@!1nyvI>=Gt&mm=|&|1DxOeE%iz+=NuPL< zIHc=^yi-TWgnQ!VeiyzE$&JXnHgil7dHV7WN4v|Wk@9oxuFtJZoO=dbQ9rBZ50}9| z)?E!NkDb&8P79Az`O`)dVcXt269VHd{Oj|xD^5IPk%ArHoIyQpvEZyc>fBr||A!7w zp%K{{+LQ(6x-GGq=qJq{WpJ+R*EJ$ncM}kc}W@!r`Bd9nA3-)+9mDv7r{t6YQCWMh9C#Lc4h~w9M zOt?}~I@--+oG&s!T*%<))y3~t`Xl(brM@=#6=q4=yLF2RZ?_ElMH%c4}G9L#&lw*X=Y3XMy7J939F+$bg|E zvD+V4-#fsGddte~c5C0Uvi6j{kNbn5Vzw{CFUys_fabKIk{~w4C)ZZh&bQm%4fakE z88$SAwigebfNsL$sg1dB`b!kb$@7lA|jknj<#qy3cJB&Q@ zYaZ1Zr8(bqwfoV@d@9Qo1PzxkTj5L6abt$G&-o3atlBSIQj8ED5puJT3{fLL{Ex1(+j2nuMSsU#KC}L~a?ulK5h`A{< zDR)+!-zwg0?{X!+_szQzxLJJD`IC4vjX54ah2kf|ZLjP6RVSpjG9=4|f9>EHy(!Cr z`92q8d1-wlMRDNm8_TGzh?|Sgw6|R2YzwEmaakH~t~l_{V{G;tTtp%3 z-_0i-XM>7e1kCQ1B(_IFiY;I@?%w#jM=!fMj68lqJ3rRai@k+3kxva|Js4+}`&Hp0 z0C0Z{H7dQ==(*MJO)Bb%N8=_s1NvQkC&q8KkE!~rWBrfi-Rc|WuHY4G#F8m3Vnj-(kXMYj32vOV>l8sz4fg6%4F^X@pi zGenF$-1-d3`iPjF5V;#}M`C4~D?ns7yjE@QoX!RfT z1a0LekwGSX(~HI`&9#|my27xtw;so{byLZnh}~U~J?Giar>VZ-kK1F4YDNn@N(JJp zNDFS_%~}puJp}P#3@cmEo~up`Z)F5|ipd;X-~PAu-1r-&F(bne0myC%3SdV$^(7l{ z96Tp3{9P$rd%dpnu>DW$(XT_f;8$n;AwVIv&98%;3}Qc|E$`HWuab*%Hhvzkxhc=*P`S|L~iK2WW-L`V$Zj#R?lt&wg7os;0$dM z_&fic#s0|`LB-%W7V*AOU)b|K@0_vXEM;6ZzwV_XbUQ@GqCt(AVt)DQbtV7YCGXe7 ze3O_2gYc%aMU7b;<#M$e*w%-6W&)_A%NX@xVGdpFj)pY>ztlX%1$4f!B1__%xO;n4 z^f=pQCVpTUtVvVZuFmf==rJ#~YIPGShYQ=?aJ@zVdd&_Yc9~^i9}4?%i@9-{+##w{ zHB7QzCR34#&zsAJjAhPUMI?OJ5>8BdZ3S8ViSr#g@HB1c+TQ{bM*%l?T{6l}e$r<} zH^5*Zy`O8m(xg8<+#578K7>dIo5^BW32)GY zRfd6Md&t-64e+5L@zT;pp79%(h3ZiGY7Y=GOy^04YTgG*u8crg{ocVN5m!@O1ao&(MZ|WN$=q5|2p}93G zHae#kc-zJ`lkynZWFge-^Yb!?K)URYtDV_bJz4^p#Hd-!nEKbF$j1B4zINHX%~K82 zDhgw!Z5OZ*iPHK*Wl6@)C$u_l7hxZuuJA!V^88OCU3|Y;=qJ+SNk(0*S+vAtONt*c zv=yRx9p1fbPt7#tN#Q?^V9tS=&SiPe7{4hk+|fcj8%hOKe(z8IIjDB78aP$LG7LzM z{ZivXvI6Ev#~xir#~{<%u0ud}NiRsDIx~|sYxr;!5Vk*6-$*e!Z3!m_!LN|;z7Lpr zqHq`F@wF$h;;4(*g2gZL5j0F7Vz|wz`S}AW-GX_*Iloto%pQZ(uiJRVXx0$9EAg9z zw`1qw2iC58tq+7YosBhfl?l{yUPW)L7~?M5OK+SJ!p z?=2yDr6_I9lsN#ZGGVWD{DfOPe|y734!UAOP!=aH#t=GM^tzPbIB)r(;Puz*9L@8> z{l^Od?Va1pa8(wRWQXbpw6-=u;$?{TfNl8zg9XRw7Qy*imUdmZH87^FBSYe;lW>}S zU)~}rj_sWiq(++Y8N90*Fd8YEww!Xw{8EU$^kz$}$yx0DB&~pD4!PoW;*(`t@^Sig z!v^mD4qw_Msey@+a4h|F8n=DIk5}zb@<7cV{Zxb%!5bo$dLq`~u+GN_``NmgA9CM9 zBbO|H9b7fJ_cR@Tim?nG<(lftTAPj;=t&;=Ef!)65GTbA)7N%2KEY;Y{I|yY0eRKh z+7CM94Z!5rvQz{)#0;az*`X+Ws0+VZ2FO~NqcuwVPER@9j~2g8TN`U@971XKEI1E# zUc7r)@`ii#Ufc}_G+H}@7@v{5V=I4fo>=mS6q-^Lxg^NN;Da`PT>SL$uQRtsFfyMt zAvZI0Hw;zYuLB2{hUnH&4`Qj&%A&zG7E5TaB@KBiWEA89+(z8bGH;E8muUYmDfwwu zs}o?iK~2C6K!rfpM}Oy8oG)xWl)1BmO9$*7a?s<<`!zV z)RilVBNQ7L&44!n(L}ZLA|giLh%P>&Q}DcdV+>0|>@CekKNVNGe!33Pqe!avJrTI>;Hf!K`FlIa1w*9S3p$YftjXFh{~XBu;scMB6D!L zK+Iin?w@V%=iS+5kH(;cC*;RXp@Mcw5{`XsZc(O*ftIG90h>GVI{5O13sJ`H^TH);M^c0)gm4*^Q5H_ZM2$PK9xbDHe(V_Zd#VcA!q* zpEJ6fd*51D`l`!hdR-?0SM5REdqLs)xOY13v4LVnMz@MV!Bh)Q@9u}9KBCH=ktVny zz9rYIYCu>(y`zH=FWQ3b<|2`yT6WoyGK2@ zexJOBqN)f^Rg)b)*$wh6vm~{_Iv|;}yS?eZd!jgiDsWYp#3gQi?pKKAtqd>fShmOD zv70o$KhoD37(mg1UXvE0wRv5@)oH6<>mr#Vv&p-6o6XOp@P^b6Z2UY9eYhd)71)5= zf%rx#U`d$bAe~si-=czB*)`%PNkyb1X>|R;%3U%+GgB96{wCZJgRC=4q%dw>p$)<^af!GOI7Ns-ejwc;^ zk&Qzgs@h&}3&3{7DBr zm<{vlip>*$ig?0#nETic5Q0A;;T(#a&0jg8D3HyEAlR~0oFT+mvq-3#6JtOOqX z>IMnhiJm$Xhs0m$6b9srRAgr|O{uA*@yHG5CZQ88F_X+NramNlN)-f5!QbEARR9H` zg^=UP3y-yBGaUrcP8VMxVVSR=Q|I@+{CHoj8VLruHAoeMd)@62b`J)ROH_ej}r&cSR- zTN=)w!vgs>ZwKN;0&PW1H}y#!sKBvSY^-Lm+Fb`I=@!V7854LksI-gZ zD&e(?zTekfca^LV#wqH$V&B~X za>+&PaNp>su;Lj+!IV#JLHt=Ku#*L8(?t%KMlDu2<_c=X)oO8=sD$J|_dWUE2YFpjSh>Hd(E!RF|ADsJR@(ah^PJ>BX2dVyXdA5x6)OSg8)hJwuta z28%aduqo!4+`bRBd5m&r%rffZndq;8T$XVy1HF?=Uc9V$&F_SA#BZR>4~66WuKDi| zqYn8b@MxwE^B>Aj`Pj`z4a zNL=GKNnqkEoPGOsJYj6V#r>(zGcbwVVMAr&Bl};hW6iL_-WciNzp!TdrIMR% zn3+dtrhYmk{*=KJSb0)wrfmtT&A0w;Nr2HOAC{`xkNF#&Wn9tVvp7RivPWa*5j+ag zi~y0Za6G^=;9v_o5SS_$Te+icWb^d+Q*R|6K8%8$r(tV$!x_Qnr1q}!v|Km-lV_I$ zO7tS75Xj1Yp6_Vil?5fxHg&U<0Sva#i`~(aN>u+g6Q0arra9`AD?e{ar$(gmM*yv3 z-sJg-XYV4bbijY>?EZC(H>CD{|NcgU*Q^Dcx2EgD!GVG`;G@gYZY2;~hpe3-?lf-g z(N|MLkOUArh$E77-#QJg@1p#2+{I;!QdP(CO#Fz8Q*pe;4Xd!vLbl|0KOG4m2X_Ch?`>;!M@1 zTPV(+(*Gd6XIK$DUUALVt;nqkCa z?BB9cz=c^ErByO8Hs1a=F!X=K+#;Wu)qlQ53KN^-2{Sil3}pn8O_IC2aiQ%d&F>wE z7_h-LS)Ms6h4SkJ_~t<|66>Eb*=?q*A^Y{74fKfm+kd7bgtS4mI%-Psovyoc`?z6w zV)9W!76J)nnBooxU}A2E?AdI8wRDw!Dh)6OUI9UY)jPeirErl=EPG@8xwu$c^&e^! z=8<=AaQ);0lmC>w)8?6DEn;7uBDl8QLk~39gcET@nVj9n0s{*yLzX^nod zXA1tOYp5EIV*;0fY>>8e3jJbHJOs7Mc7H~-I9XawNw((Y*dHI?W3=5-QFO9nqojmwXY`^5PnwTX~cMdnJLjau?5e_ur1;8P5p+<5dK6pZewk z1;$T66~&tY4sX4JBBIn=$svihc}a)he2K+2zY0@&JxR*mSWjh4pG1|~hj zh*1+pl0mnKl#Bh2t$1-3Ize%RQ6VEuJs_t)A!xxlf!AS4si#3VLxxSQ8Ryr1xKk}7 zZQdlWY|#gxlHh))t<^C22^523+~ZDV1}1doD3-TYE$$}y@?0l3qEAHV>^}$UY&FjI zn~EC#3U(kqFhFODoZMj=W|leXr8n9QS#>$hwq5X&#xNU=%A!}6MV8_N&RBWX7QYV4 zA$N#^y~|HABGai8sDw znF!}+=k6YLx3#zBPa_W!JudhWm@>VEoyEu4RKCtCDN)KbgUMA-4EF>I1Vvigz zYKok+F8diRN{e0_-{4=bpeJA7wp2LnU+S8+psgvzhv_63GBcDQNBO3Hk7&~KVwO*J z`vaQha#*qGdG53(6wr65O(O+A2CA7Se-tJ66J>ZZ2OZ!3j+a{)Tg#SZ`6mtuFHt9c7zQquK% zks_;^Bm1|{H$RYA&g;%I*9usOR1uiV*^?!yek_v4LCibYeuC0GM9f8I@XaN2Xt2Rt z+d9s!bA7g^@b%`Jg}#qDcaYe+oOeLxVMJ zrPNau3mw&99NV`q1yLi6f<_*5**nKQI_d`@ieL>S?f2iy-h>5O zX(OCcz0>M}q3W%ZsP87@cQgsuAXh*xD48t${xK?Q7Bcgc7WGaGEq}h}3daB=X@~z8 zpZE=QQ%5Z1V1tk1n-YGlSU&-HI44jS&U0bP^_F2~de zmym%es`Z_^{g>Qbq+w!pStNz;RUDy#J%TzHU-_x2rurgktYjsllg4=j!|#c?ZQofu zS`(;It6(uO3Y}94Jhg80l6jGILXGrS2@{vTn+5qp}&~X4BFhvC+}wF z2Xk>&{NOrHdP}&a%`XSNcN<>?CTafQXoFVwOor$=R0M@}yu%L;Zw}xx>*IbRgE2sQ zZ%}6I^(NY+FYiPst;io<1*eFm67)F@TU>IF&G)rpLXnTlet@IMEI9^=6rAQ52Gr z6XB;LoWQpb95l*w*#8n-z-mh*qzX;LNl_So_l{?e-hZI8~9K)#pmSGr#qO9uCul1(sjAWRfMm_<=IuRDe7gLpAJb+C)fsBp ztBF`LmPD@6e2?4@4ZSV@TU6-nGx@(H;0*;FP={yNaJ!kLeDhMYxY5j7I=x4x1T}l; zb~|GD)GhjaE?U#kVHmw){iOPB1PNy#Sv#y2vU(3dS(j2vlP2KcsO|>uP9odrbtoF$ z@fpWoEn@^nt2RGB0Vu#0quaSg+~1bMw{_i@>duvNEKmk$qDRRW-7Rff8kbR}0su#j zIN)e{;Q87jW#nDkS6cp?k-QK_b4htjY2i z22mOmnrTNK>NKL_f$yM{z7)ax1voe#P!?lzfJz3TQ!@p^W9#BHS~;M=(3R1LX0_A& z(H{L~X$8%%@^{y+-zf}q&%DZRA4$ye;Qs_-m!%5N!2x~NbrE*3W3bjjH+;iwyO>X{ zNbQwQ)nGu%4^wd8>@tSqp_BDXp<7_{?p7x1Qf}fvqkKtRw19 zIK3@XrPIt);+5Jn6>jj_HgL8Vlmge6CaF_~G?cIN{9u|vq<=55H`|^`#Uz_dNZk~= zg&?%jTML5%rg6Yp*8|1SxWT=)HINTCBx!SVQmf?Wuh=Lp3E~SaW3Li5@-a7fW2h** zgIP1(eS}t}zvKEXkyT7-C_1G2;7f+0QoR82!A(fT?YajL@0tAi&i2l_67_bbJlLF7 zn|UTEvub0FPekc+bp34iG1(+pmLv8P*?2+nYcPD_^qLY?NdMuHtvPF?jPqGz?~=fG z{zmx@lF52w+wn%nH(;bfZn?Ip##!zYB38RHh8k>=fgi)Ik0Hx$hPNNi?@}-p+m&YS zYTYRnItM_+?<&cexUD``>jk2C>O;}d{2#WyGOWsNYgpuH@>+(|Y$MdW?=Eyn6xNkcGxh|x>*=|IzR1a^M z6egi32_!|u-fLG{2DKv#U1qVT`SuxHdS09IGcX1vA2NSF9Pe4ZdRF}ZIlBAt1B#G= z+cG(E(+1|SA+8qI)+Z0>Bv6l`=9~WJhiTcYSim>(5#vaiEm>-RvA+BE`eNIGM>S3f z=(E7%$4o-__-|kNXDBA+s|)(wZ+BbfNhp?ODGKyEguFNRP|zhncK9;zOgZy)fos5_ zXNq)?!F+I)f*MdXJ-llyPKftPqFZd^uZp z7WR4bwvu$%K=kLJylcgC1`T?wi!Ny`9Jo$H(dR~rtz^ap5fGk|3WNsZy$Qt)93wNm zIfihEUh-oF3!=#5SPyPJ?!>b9C@f+MrnkZINus^Jd>XQ~AI37IiX|;z;9n~es6Dr5 zR~Rse5$*myS!OE`^k@ja*>7*l-%T_c3HL}~y<)HhlWo8;K;LczTHb zPYKB+;EV$Dk&)>tw%52giY*J_!X+~LWBJmU(~9uvQOlG+XD?4?o>RVjg1>cjFY&zq zIh#FLh0PWO34b&v!f6er!*u3eoS5y$_6uDHbuLSy8yOM~U*&p&xj0)(5ubB}pDDmG zAxHMSJ-RP35yeIf^I7w;3tfe*<82u+^j5Ctg)Cj4>+0MNq#q!RYM6h(oR0?C{ zuadH`13qh@m1>G1-rPLO*7McV^(br_{#8;f6^$#H{zRAF7{DJow%!`?1;@d2&Q+d@N6<-i87pzQ6Jhm6jwq{BkOc;E2 zY%7tZRsG8I>?DT{`Iwwc#vXaO(*~BWyRE$CTUL+$@$BpIR=D`gAZ=V-Lmhglaa$Wg zw1uCa9Jxt38SrKJyAnB@y(4vA3{$tS#hG|%`-#icBIjcO)*?E#OjU1+? z>rzuJQ@{5V%^sZrVda8go(!$K)=gkjwxeSlGv4IYl^+o&D&m}y=5*6%i3Hr0)utmy zYw!EIyH?0SFqjAHIuWCDRp=Y#hKQlB>wf;>9WmGT@)NIj(+xIidrJjfC<|GL=m4_I ze(k`OPWn3@Vy5jOt}xUbZK%_n!k=NR9>yd9sNmef6q@{Wp{olX04V^!aCLjfiv=22 z0|B>e{bHA+*5~C7dS)0xER^m606`byT2S8L60^4zY$)O6+S?<|wOb^wW?qJwG!cp# zj5Jy^d}I}I^668xa^}yut|Kj~fXFj^9jDp5LQ8YMi+(;sRp%q4WO5TsEHZL(e_ zwB4O4D)Nx8QcF1kbQPnDVdX1R|n-sGA-)j+G#j4(oIz_T;#rCUFCXtPOKr&mOZ zBb-@su0&vcgwW51l!DDW^b1{oR~t}5t;EW9b!2|vnV%=(=U@K@k*k>JqiRNGU8vAa z4%^ltY8lu(PU}BzoAd}F7?4gtWpMGbvP}$}Fcf4rPx*U7`Ke{HlIcQ5YC z&U1X1gd&mMRz#E12wO8|Gy&4$iaaicN^7M#_sK(8-%0wmU$K4r0x_$xCufhEiOZBf zY)b+D|LF z_L>6DpMp#69kYP0&CmXL_ZMjqG^qQOiow3e%2+mA4Mp@6S=4}RF%FJ;zTJ-@hg+yU) zva}&CK`s+xdZyw^@%Bduq-l{(X{^7~Y*PXTZeH)h5%+)kWWqi36}dozKIimu%_ia~ zZzJP8L477?)kg#w8f40}u>uY1I5qVy6>5C(Y^lqPX6quo%zxs%rECiVxq6~CXwC73 zYgW+6qQXT}!;mb6MC?^!~t<2y~~w>wvXY0b%cg9qhJDteWv z%r8PO`-_DHEo85mvZ@wZj=bxtG6Kx>-8n=PpXm_UvVC4k`(onlX^E#MArR8j@Ej^3 zlsZ3X_ID?c4xE5s)B{&p^sGgfDVshQ(b&Po?D8^Ya7I1x5(cgaW?*2T$5AI9z{Y7~ z>Nw$}`HEbrj3Go#J~u-QkkDS7WuR z{3a?=6gB`)ECr4_(OQ;Sq0eIA@Fr#bQ~OL|dFhC*>yNi9i6_{}d-_T6(maMdVcfh9 zJ?q5mgqp812f$5Gyygabv_zQtuhIMg+WC#6*b3(XE{5$n+61Aml}RGmLA?lg9Wl%b z)=?~~6sLUVQ+#ipK>12>#T?vTw|9JZTh5(5w{0$$?Bn~k>H;&E&13K?W1KfzCw4bX zOLVotO@psNcO-Q*WNQ^}KIuL&Ubd;!q5oy3WOv6pdMZ|6dzqMS+{|nO3(xwR$NP9( zBg?2x;~t5@j%uhVK@}(WE&2?aZ)xw9-J98DTPN2J@kGp1B6u98(9kUJwiUZJqu3~H zxTR`!+awhnKTUNXw1~745$~BK+*$V&nTe1#?#%Qsy4%9cvayo#eXe>mqhCV|zPk?-#rkmzBn6Xb^&emQo9%Et^iQ1{y{ z*`4uzc-2JK4_^|nC#o0%vo1HZ{pph>ok9s`9=yOOv~bsXNbBQFUlp^mirS8ex{W;N z-rb26D*Pz4$9%Ab7800_1cRsy>#uKqD~WV*DjFj}Pou>z63W{#r)FB|J_Pr^7QgT> z*OpM%_&%nctAu7c1CI`0MIx`Wn3Xz1=kN+XQ72ielG1R}8YqJnRx$}F{ za+hn;w8Mb$D`PxLNmf5`#}~YXKcC_&Hl6Fhb~V_o6pBp^!k`FM3pQlg$v zu+w(-P=@lxr^p~vd=8WI)!K@UHN@vqRfTuiLX8gUkAYpIdx?UUf8OxSbWG4>!p}=P zd#QNDw9aM7aeY8V(3)tv-I8AJi<{yQPX``ccRkwi_dv^7>~ff1qlge8Nr^Aps@VA0 z(_c3%NHXi*j=WbZiufg2hbnzBGuSN&>zD7!K3tBzXgffD;(BC9J*L91Vg)YeJevhQ zQU{jrf75z-`BmRW&i#fTocKPQ%tS;y#!bg$>}X!~NkcT&He#vM=cGdVd4;N4Uis8H zqE&Xoj0e$>hWfPN&5c%l-LMQ351fa#CQ%}x=5(;YdLqC zd=fQ*;N8xr|C?A2>fwBV3&8?DflUfvqFOb8|5zgA&L z6M#6}3KR3qtQ`od8+v~CJ>i*$J0S^|>Tb1SD;0aad4yFLpZ+uX>p*nqOYxpTpN6vD zwmDpqLXKIBL`5yw(5G$JY`FYh*Hml2HhkBIWoB>fKXD%@iAQZ>8zX*YpDRe_Q_cS= z7dZ0iw5(ef5Y?x< zYR~b`qlKGG-f*d+ZP|@iJUVI5_`|*&`;zyIucNkGuhM&W%xzH+?#-#-n0uWvE>Nss zPRv`}ZoMjOf7Mm5W7Bj^eQz(C=gKKHnj z&IWQ)<0yj}oKW4Et=~K(7W6->cI7Uls7z$FS?c(dRygTv-dRr z;s=AON5!$fU#8aion?CS7DbhTemzXpGHHd!9BqMx8oS+m8y!pNG447-6+)%a&2NA9 z6Z>-+iW{i+Zn@`Sq`UWt^TPb$Y`z^yZZ zpUh@r1H?wu^^Szzf6V@Lz?+aIScsOP_X%@t1{2NuJ|Pt8^xePG-~uf>kr0p zH=BsCK}X!3R;ky5?L~SFH^EM$D+kdgMCndkSI4n_%|1qn_&G=kGpmnV#}EqX=oD=E z-+Jxhoj-e@7&gT1dMwCILYPu=f1s!$e76`Zp6$jjNErG&jj((H9}91I_WnbMP|8yi zYBLzM)s@Bbn=#Du!&nEFtOJhTMiKL3nfZn$;wD#O&2Lhw=|_j{3Wc`@0^aA0yLZ_e zADox=XDd8>Te4;~GjZ$a(rej5QDdS9Y)VaKEy+C&IbmtKbNTphV;lEEA#vhrxRKeh z*&=$%Kje=Zr@^M6zR>9PnJQ!ffAKcY?A6u79rCQ9?_&CSJ4G+UkF2v=!Eo3Gh? zPD_i~|9yDiXHUrqT-svde|iCa1RxBtR64bmc(HH%I*c{pz3)5HL1}UzlI(A-(DZnf zvE}CSm7;3L=EZ2gNr_AG!nti@9lF;pPp|e#epAzux` zu6z5uo}0i@+jGLz$M>%M21#D!gIAiM4B-}7VPm-*W3?_e_=7AGHJuHBKxN3K6abde zL#A=HoqMy2;k`2Kea8xZe<$}YDd(h*?;vQ^rpF}Rvukyg3?O6yd?#fUmF+XPCqhgm zhvVh|vrP*_X+LuHawd%3+_<&w#oC0FZ^>C?3IdWv^IJzFKRR|qa~LH&qLTtkixTi3 zF;0&^tbaJ3Rr)Ym;yw4#3SkD_xU-vH;f7F+pYsUkKniHH_L*eefdlc)Y#Q=BB~IUwR$$|-b&-R8-+Nb z7c?f&?bxfm@nDzkFOXN8`KGVV<%GbP_cVa`lP!*6&0PF;&E*-78Llj~eghu`bpnF1 z1xa&NPu~>JPI7-m0s87$atXL+WmnY*T(FWodr_QZ)C3P(YIE~^=r^vJSt&gUdz^ACvp;VpKxAja7>!kTG z>H4v6$KOZK$1G7bA))JR7ETgxfkTMj$e{d#nsI2vD?p=ESwVza9jZiTCY6BZrVdTh|r0k(pgAk51SL zq181XU~h$3jdW}+83rqDk*CJ;(G-Wrgz2dq(W2q1E6t&i48yEDLhdIiVbH6vWD5ex zwSDGgs7lIq0yg#P==1m3IXL5IGz%0ibn>PQUGYDO8MW%N5*ld0jr$3xrOD#UJ_oQs z;dt^orXv>9c{S+!As4-qXvY(z#c+zLcn2|>sl$&LO-pN{o?*#)>j`vD-Xiq3uoWK& z9!`4JNI0Is^y|g+>HC=>m5;|#NpH<-4Ki930RX;^E%Vel`hnqIls+}o*IY#$Rz^`H z_DI@EUO!t94{7LeIXT6twg-lK%Ysg??CD523&%7uY$fAcs`C`z=7Sc`&w8pgUnx+M z39)fcGY!TZ2D1Fg({*a&G+KXHj;Jmf+W#0*A8);f8O~0I=xCN!^7zx~c`Gsjni|f% zN4a&9?VPIGOh0{*Z;d~Xz)f$^M4GM#TE=lsQ&Int8SWVin(=8XZ8^5}^-<>khQr3R z3tt%!cJL;uajn*Fr~AyU@xI3K`1b+Ya?R3QX(DQASg0BYU{wlEUSD6GoTIa{`dQaB zAiwy1-@~30rgaQHj3z70rv;M#Y_rn!>3k8JsdeG%nq0}H4xGZWi&pa`G?}d+k`31P z5nn-8koPa>HP85&t;P-;hX*mAbRxG@l{yT{-3Q<7T67xLm5lm2m}kWZoE*6dkv5p0k-koX|CYW^8K|p zBt}MH_3$tfOn{_8IO*k=adOP`{|$^fY5oGwM!xQUY+_m{~$gdd1)wWD!labE{)>cg|& zkbaZ1J$!NUQLqbF?JaRcf(T}&nMBIgNwC>wgI$E4yXxJ|Z6)544!OdZTs##$L9!Hp ztI%R*>e6!K)nSoD>-yOI(v-f80AJ@;Ha(1t=es+>(dkTPX#t~2FKkggru=8v%_ai+-(t@3?<54$4c74b8VH@o`8`1M3pB85?RmXUiKt75@ zkN%B z`T>W&GnSm>CDh=wT( zm5w~|h9CF$=vd#KbhVsbRJq>W-*67)60A2vml2gYYD}^x20}CFs3l^?YyevSU=g~h zsGBcbv=5qPqH_$>gwZ$3WBCSq`lEfJHwzkR=`Swc^A7)#wsShZPWZ|}Qo=>&zpRr} zFn|?oD9ILvA8IlXoifHmjfT=*VXK);TFQ(XL(Woa8EF2hVgIk|b5qp5DW>8jRHHQHEK)s#TD|Cmm^K zy5x?J`t<_rkbG1or zTlz2hUGWMmk||EGoC$)I*89HJ6~!fj%^y;PcNukE1=y><5otG!La%?f3}}>yj{93R zXED7nM`8E1UR>6$gC(s`x=1K&NUOfDbX|_Cnbxbhg_~~-_1+@Z{`l$s#I|L9YDem_ zyGiE{G}w}7KB%MOz8Z0G?G9TJ=Y0FR>$mm17i0N7Im zXdnS-pSXBh}J;YUKjD(#&SEc4YLJVj!Ff{waMjo&Az=or`mkKRojR!QT_DVnc ze(18(UJmZ;{N8LjyAXvdk=NVa>^~?#wkEciXtwur{hZm7Nx){-q>ozdO}sU^OUFrW zBkYUoA@lt^o@xo_y|q`;p00|z;`~nGgl@0&xq zBygyNN$XJklA^HIQF0jc`3<6>_ID!BDZ=J4H0ZA%sN?5^txg>-KEHF;o-Vn(nRaC$ zV5mBfKOrpP!ewmMN9*q_)uizX=_|nHI=mYG8t=W7{9?MKTFGnN@z`ydP-xf;KpB@wrpXz?Jw*; zvayAYKkvf04nL*%pELcEi)PxfBOh_jEeqr5C-6A^6M`*&@@dy$fQ)<`ha+M;e&=9q z9RV7WhK7dl(E|=f}>Rsk@ryn`ATJYMfD z9mAf&@{x@DmpFQqYaY&DO82UF!jHFk$Hb)^q_{@DN<^*kxC^y4e_G=4ZbVbJ=&@3! z4~sDefxX?x_id)q-^{nIN z-tO)LDFHe<`mc-Y4%-{)NRrJ~xCv#8xe{QP#xvhwpvY zt%S%%uAwSNfKumY6_v`^>C@-KI8Xxj`=N9*Uam^`Gv%Qz7YVZ*Lyz*}m5b)(!mB4? z@F+z-XGtQ5Nvqs{wgqZ5Qqum?T23u)z?gMtc$k}uOBd`;c{yta)s@KS(QIMc*K~y#? zvN|+v9K4Da9vp8J1whwYy8l&u#l>oJ`g>|UpzLtMdH!^Ud_Y3y-369f+nu6iJw2iM2EOgZi$A%iM`giP7iCP9q(omDsA%sMBo z+I9VXi$08NW!Ro@-c4Z-PSGC-UQEndK=J;i0pL_e=YSi+$nkN7s_JT2V2APX@dL)? z^~6gWO4yxJI5j}Em6erUZZ4ToP*4Di3XP3jwIp5x$0r2BvwGrz;Rov2utx}ai`#E3 zP|JfMibwknq{nwGTVIQA`m`|KZJ0>z{MqAo@AdlK{j2qiU&_P z-sr^wg8${f(_!l|-G1GhWhPNFy$*8dVZr+p<8txLQBuUmzN9U-DfPq|e=PZ5KQ*jB z0BwsfRtYRFFGF+yVEAP_$z2OjHaYAl2viH>h!XT=*%H}%c@5>Jdj;>*(J?T{7b&Z0 zYIamvR=&mgV_$#$6h$Heu%Jn{>o(1jayo1!!9qc-6}&r&@Hpa=B zhNeH7t{-^C-Ti&g#|Fgw$m4P~5Ws~mC<2ge1-<{qdk0U4wmx82MisYPXO0G0RrkkG z%3S7pUs2xeE#HL!Ckr6c#iJL_m<}Y9asW3Gz|NOQ%1Hs}5X67shqwR!O%o;x+ihD) zw^JPWhcn{e;MoWGK$o=vokOxLABKT#_`1WAI^o}hM0iKRW>w)*Z zJJ1>cISvHg&04GBng&FKhldB;${JS}6Dm(C`p(V{Xyj{S%98)_^hxVrdhw3F8g87C zXVKdfn$G{(QufRSX=qSS*iKcBk=l~~65tyNe#yYd$PEs5!9M!=!Ai@>)HXC^P457Z z>+OqchkC89b!M|9dF)Ot8Hho1*-7e9tSv=ach(Y2*`_8576nr+>(=%0mS#h zlXZ{f<{wX;U-&Bkob`Wv9{39hmr)zC%_O49!F&jybpi&VsjY1X);v0jiGYAWL_}oc zlpO#0oZyouFw3!f}xSoXQz5kthfT@0++PFojNW6 zp*D}){?8>hKpxc2ZgGt*_$7E57!4UU?bzO?o}Zrw>hNF`otR}*y0;KT=P;`K2Z)|B9CYmV(L@;Y1|3eWF zrH`{6{EZ^y-`i~`hV2t`G38iUP1g@Nk7g}Iu|=0Xo0Fr{`^s((kP;ija^HP^@ZAcUD;f)<=V94*5mEmzns8d*M2PcsQ3}xf1S5+?#XYSYgMyXS_0aF zAIb$2J7>w$;7!f9d)BU(hhzZ$osNzU&@ALlnqM|WSk621!~Me+F`-{Th&Tw#plVXy zvjo{KJ}RIrNJ&Wn8`(8G`@kOb&_@dXQKO~Y&3#7X7OmIRB52DDXFQp zARz$z3$lX;MFO$~`wLVI6&@Ct*sy(YhHPgwuQ5J6sP-Qq{bft00q+P{U@1V02TDvx zNciyby1Kr;K4cI;%qxK>;#AuFhaSJ%hzITmDgsshGBHwkizbdf6mXq?|cwT3S)j0Xjf{kRNyj0Am!G+)&lh$_8)$p*Vr7 z^pAyZ-~q^eXlKt!3RifdbS@C%gS+78-&|So+1s-Wk9fe<=PcRb$TdsKUz_J0`U{%q z!t?hT4{)@cC4k)kY-Fiv1GvokX* zfM~+w=BWFjhZ!)dv@td8eE)L|{_p5U2)GKC#Q%!Va@fp?lK80bAR`0oc?i;g{0oH5 zgPg(bzxc_h56{y8SIU1Bwms6gycZ;$7YECb^$5W&K%HS>WmWbcg?;t}1}JR9-%7)O z$<%8JI09#BwYUw}Asem@u&9Rt0zl*i=4d<>_KKDdSf7W1{DxfoZJZId$oIo}_YIy7 zCoO^@M=g)#T=gR0{6I8(@O*$K;pl-b0Yl)@2e5%X4}*_0(o5RXk`emH_Px^<0ur6A zLodJqG<(<`wgbS+u{~$TN9E$>HSqRMe~9bx%{QMH7qviC18E`OFpf)13DlSrP%Hor z^^5(*b?f_cYv|>A#Dg~gokN^Bs~{@`+!IgMiVNC)@cf;b>p{3Z!+yXA0dxtE{*x3o zsl-8Ju$v&&1QZurA&gDB;H@DcD0PebQpw|7;UGp+oaXdvXrJo)?A6g|X3GNrgP*0P zEx`UXG&K0UZW10=`yWydl4-|g-2YEx+1LlSn9lp1G}a(U8Uczi=2U4AIDx*pH4;-& zJ|qMur`rl3RQL7v_JTL>m|MRToN!DSyzn%yoRiX+c#tKA;7uejNI;SBuke;F-)c)l z)D2Z8mHz%e-X}fov5j3W$en&1$B~09=HZPI-M|I?1b3$U`wSqKrKF|V+1d&Kfg1ov0sG6%!+`AN!5BwPLA()qx>C0$SW02~Bxe3H2efCX>ItjE2j z%F>tg8xSt=bin9cz-|IQiwECsRjsC~`VB;}BIO^7G&RN7;NO3m=J7dj@q&pvhZ;#a z;F%!TzV%9%&TR)y2rLvN-8LQ`4@nqc4@#5-77UzFH2H?Bv>diGKaMK~AO$f}18fur z*NQa2A^~p#h$yN$I*V$x)_19 zS@SPm8#(OJgA0(2J@6Nr45xuk9Gy}ylMgZ@K$NoW0MbmV2x>uR5jik)WJ?761<1xP zn;s$okcFnE=E%VXxF>rs8lc7?OZzGT2kK&^|5+j~uoml1$4h$gXTUy&)A-i`*Wtr; z+`~FSWe5}rczcjm|E03LxpW^umKyx>Uk3_1XIAQ0PCPHX0K?(QQ8x+5|9l~?$gTg( zy%s>xwlM{Y-MAHA%O%v1!p|A`Q++wiH=XdSFL}b4_DS9t2D- zz-~d_X-gDCj#S0pJjp;$j~PJb^Y(vqq8cQWuC#q+hJ3^i*aej79&PuRB+U@88eoVZ zhqazdrMaPK#-5(GizWw84bITzNX8Vw4A28<1IX=MiK{GW|4xeem)_f<09Oq<_pd7E z_a4fgzitiwRsI0g2BCFY7~7S$SR+Hbd5sIc<-!xtX6fmD0=f%42HPMnanZk`%>Vt} zQ!fL0X zd}~2L2=Lx3v*jkC-Rt$lfS&NbK0S=SG%dYF^~H}K%1Y2OA|72&9Nm*j9qgMy1-{3> zvq1}v`W?N+@6V`ujj@dVP`bur^@#Pa$WTzo^j7pwjvbtcWyAyUBqI>=m1>eOA|icMqG=M-C7f}_y=M62OZO#63^pf*I#W#|MI%-@hy+Y$kbO!ukaT}1 zC&6jga&AVi_~Qvf_>qCaj!Ji<_YgS)zJ`>Apy7`#`J+P4d84Q|JjOhUBaNX!D0uZh z-)BD`J49`W_w1)q=y{dVo6tWL)XPReznUynhSvV1ztzdJ;hX4d)V$9OO$K_8yC!X= zGLhs;+R3RCX6T6?p4tFy_=h7&{r)Irp^mN}C^V>bj&G7};iE1T;*5a*1f`yP6N3b) z5eL`WMvS*U#HL3lBe13b0~&GPFHCG%=kIeJ?M&H@!jOK0#XCQLvr4sUcp7G4mY_Q~ zBXqp_mf=6W0Dj*p`^LIFiM>uSFQ#y3^O7bs*Xf53jF3qwh*RxAojtR>2s2r;~gv6IhaxS-?rgW4ut z@k`4J8lFAgSB}Zo+K0yVQr%2*IoCJb&G!)Dp>f>G=35yHezz8D70I~0cvP+kU8k1K zC64>!d(YM(?LaT2BTf!hI=t}`%&KX%g_}tC3r^@{I|uFHBaG7G@Q)L`D=QfHjP8q} zsfW&NQzXaf0#-IUF#jF$qICEkJPAl)h`K>`^bk^rqS8MMG0ib+%2-xAX55JRRGnMY-fzk+OiVO2qps)euV?tWi%Lgz2T@(D zq9%}2;AY+#FvQS|Zo}?JSsIFwfn?EDbqzB zV_&!U;T-+0uQ#u~#$mgYxHa>6W&G>cf4G_+OmL&|FT(>}TJ9vLn65%&Bc+3#rh-nhfjG+nHe7#Z(pf}{yGU`qv5lHwq){7_@bg`*L z1oX!EGj@h&X1Uk(AwJq>wwJ4(`6wY1&nZ@AQYdK431$yddW{0dVNeS>J|=@Cc@>tJ z!$a9zKyPIY8)jnKbYx5KscfCn91h;FPr3^0@Z-K%Lyqt6Q;=gjiB;Ex0Fki+mRc^8 zr|kH6WbCloORiIo+FOzGC#D2-Z`->)8g$FnV2y-`F}{d(r|j`(?xy_|3Z5_%UDThR4+!bYzr%GLBhp zjF!K2anMuRf?nD{qgN!IIokp^P?kkUI8h+5m-AV}weQ;rL2kLikW8TeUV?iX!kr8u zCGD}V1#V0Zd~JP@&b+R@!RNqadS%U!Is-ioihxaF%P{rGlRV2$W>`;3@-m$8`mp;j z%kzeNXA_os$TiiCs6ReEgU3$AV#w8Skhe)yd9uR9Oou_4w?3^t@fsLFuHx>r$4c_Rxn#)OrIQjki_HVXF(|@ z&4(-|OtJw7A?h|7rRKQ_`3{HcvzWX4-No%_4U@EQ7m!_5z)%~*OD$jNF!`=Nvz^r` z&|oWni(@Npp{m`g-ehk7r+Zz2gov$4@f&>v^r0;baYs3tJ^imVA;XL>v!5anH9#Kq zyn82b)m)B(TaeN(^;V6u!Vhhtltw>8IljoxvThN#=uw8baO$vHQJf@%R@t>Rr|?G* zVn!@LK3ts7n7115e>--Wf0=*$I(eHrhEs;i)2l1DTOp^whbEDQ-@UgKV{l3!Svz78 z-4I)G2dQ8)V3g-`)}YncE6I!kdTleGfP7U2I+Mb<55^(v1yUlDPuTR{#yXif@|;%J zIjB>cT_Vf~R4%m`_qaLrZW|5O?6TH41{O*a$S?*$OhPGWhql<=Z+-5j!_80-eG4Eg zLvvXK73v3fp6L|{qfM3F77Z_5*^L~z^~;u+3iNhlKC-2OeBj@Iwj%}}Ngrs9vneWV zKH=Ja5%8ToGNuHQlB#XPtkyn-=7jN#*clS*IuyehKTyWnRiI@ol`atJxokrlMEd)g ziPqI(&``sgN4b8bx`L8r@GM-+^34ICr(>UBXmuily}Aw4!hA`xx+i@91n>S1KoK7X zB_mawa6_S3(mMR>>FEuto7)MaWrk9s6LUs3F7do1_iz{o3mcF%q zexB^Rp<1CT9!>#re#tVu%70`l9(`&u1f;uY@?Azr3EpOmSKwFCr{u@K33fIU#zS6b zs=c?fPH*%R5L+aJ9;OV9Gxzr^h@K#z+V{x!G+Ec+G%TvK1_fpKFqxVrCDk=uH7PidVMn>!`Dr#O!X_ak@$$Y!ZR$A zD)IW&Y02^H{rtfseV4vnyMfpI$4fB0oL1#{gTMA$w>Nz`Gm%V8SmWG1e|w3xTr797 zBR|Eukxk8i=X|$X5%%EyKiw3M_Uisid{`@}D_P6XmG%)gSSZ{M^mVr|eo@`2 z6FkwvV&*cKLX6#IE6LlUZtqQ6C)h>*cJB#WlM_IZTWrVSDkTT+Z!4M7^+XSGaz6Ph z+?mB&g594>w+XizVtjLRTZcC3?d<}*gP|^0gwpBvaregvM>0J?^lU0oD}K? zV+T9!8HN~LkLSHtINMQr?gIGsj!mDk{5mMVF2Da0am{IJeQRRH_u|;QaW-dvd86ch z&w$v|A$~Dc_`Hh6iHA(G>8>Jw(|@ubw1(y~UIs1~)=*W|9v#LnEN+*^6jJBnrSRRx zu5JeF+}nrr^5~8Fwo?&!j$?g7s~z-#rhniRm~+=Z)=5p^S&1 z$_%LrNK*H_zr2IdRG7w2PLYz6eKz)v*%td*ptXkBA6bqe^aEL@!layD3!DNi)R*Gt zH{d3=ZR$&a<6W5Fw_We@k=~(Lbr|rvt}cuNMW;y$`ZS;U>t%x{3zH6&=H=g1Q=C%I7T8!_=k@S-WiS%jDPfygL=+oQ8_#NdrZLP4SsCa2_+pa z+&$Z3=3H%is+i#Vk&IOtVW2~s50lRt?Qnr_j&3;-v&T{Bdb~->7UvK63$BKH=7@cZ zpXo(E0%T?xmJWOSxl3fixx=e#E_;bNe>1GQBX!c4a#&0$Fbs)?c5zEN2kzfVRq?={ zkFgiE!^D@TtPBQiLJ49vVak!ORxf78su;}j*@32If@!05_GH6|ntBn=ux*j22nT$r ze+)beBOE4WsXoVy>f!uHuxCWLVnW7e7rdP*=HfR^ddGPnp6h@e$Q7jQN?=vN_J zduRLpl*8+KPTW`u zX3&50#uqXyMuY*YUM*mJeJA7U;GK+cO`xVaN)Fffo6O(Z<=lH%6>S)wfy7qs4KH*_ zW|?$GDg!DEj5eqbI<(u74L)PBgY#e-SEG znWIg_%I)52oz}2g-Ay>PCx(h{1%O6>V!eI-=8jle>W_dO_z7CJ8?Q%%Nw)hvY7Ro+ z^QfmjP?$hM#q8s@`P=pgcb!TvjfM*wox>#Mc{KYPb-wTy4$&U@>Dh@1Un??qV= zKe`hF(Vl}D3^N=XZT?xx(d_H>-heXqmh)AuaCE2I+VMs=K9*kJGkD?gDblp()xuR7jA^E@QsO_Kv-023cNd{G3k2%z>@8buO@t^g zEH!LZo8aIL`s`_N*1BK7UoVDQtsoHm@efxcPn zjlvUdliYaC(CLxo@6I+o(gmHQh~mDeWyGB5PF(4+hvq$eysLJep#5I|(Tz4|WuiRB zed72!<;^gq}l<5Rt#8|kp z=cpYfU31B3uYC)^5Sq(REEQB_E%JJ(V)(19Jv)ZIk0QGLp`o7R}=r04l5bu*Fir9XVD=NoYqjas%A@&=}th;@dIKz4i^Lw9LWu4*Ayc$)>U)AtL z7}G?dtGakqO_$>|+n83%#sH98=e`qdpUC0MC#oRC_E2)mD5v=fcmBFtm|N-OB1UPF zYX)EErY6ag+3Cr+5?Q%%+2-5zi;Pb>U-JAow!d{3>D=MCJ6j*i3F=d#c{#uOM)p{~ z?2d!ixoUR*4R631hO3P^#|}>BxIKfkHmgn{w@zBwmCn-Pwzt_RIvEm(J{$dT!ClT`-6+JGLh^TK7<<Gv=97hBM_F+*5M$J%L+| zh}yHGS6+1pfvHaszhwAxeT<<%QhOXVn*7J=woy=5P7#jC0tCjUT{(TOBNd@ZliLL2 zAp{2Jh`?TD?vIH%BdWIHBky+TKYlZ`y-OyH>;E+8 zomrrjbx7+9jZX+7l5Zp_DpKZ(dzbZ_r?6VlS>4Kv*{o_&j1&Xi22&!*zM=lZk86B0 zR9O=T5*h6BvxIZ&MHr=j*`4{FBM9#3JuyqJ`8ql%p&o*^gH{;gPrfs+IRh^Ouf;I!+7WmE zczjBViG?$4Re5A+iW~pd@r}Pq?uQ{f=IwnB-fLcm@z~wp?*;jMP@V-<_sqebJF_sT zz%h24gi1Tta&ZB`$LtvYcY^`u{3ew&1dIl46`ey~5muBG&@C~jxsh}^j|n@0Ek}TO zA2ZiEkM5aN0)*T*R1 zkv^{;{lCeD&h=;G570*=chq_ zjM63rW|kCL&KRm2CO6*00d&JM_{HJ)lQxH9i+9K7ENXMxW!?uIoVbKnCE6^Sg_mbu zZ2`d%7p(A-J;MU4law-0NIW;*AhCvEbL*b_wFB?=Mf#fy_x@fV&$&h6{iP+nDv$PY z(CME%>FeF+C8SMcXTqDK5U!Sf7qC9geQ!5LxzyCFb5}36@X>nw9tLCCVrrrtOBqjC zTE#MF8%?0Db~x3YclY8kybkJAKH?RjlgWqhsokacM#~L0#tm(~D^G z#`cF|s~&4bAQYsr#v}{4d5$oX31@53no+mMp({^Rs1y(c6Q=t*EoqhYm6|!m$cCmhN)POEM$w}5Q8gt}W{4|w zBD9~r>Ks766Gc`w@fe_#ya%DlXx21&wR3f>J0v6CHwp6>`zImS?hCW%+mr{4-q(_2i#hkdN@|k# z52tT}a~Y*wp;si(jqv~-1WdiyD2f+u?wqrpr;*nf`*v)<#xO{cbk9;re!@J&7rb0N z%~0b)^+57^&i}{Wd&a}Pb$`PVA||5uPBKdLGP>wB3=t88(R=T`9RxuTBM5^883{u4 zGD;9-Ob|pJC3?%~(aZD8xvu{?=eqCb#q+$m-`v;dGcTC=&7NJ>-fQjk{jRm7*6JEw zDjwRwPofCuzd7SPeZSe%WbI&gZ!E&akejT0Z!YjFp8Y*sEz4`g3aMng2QOQnA)PM8 zNiT$F>F~(mHT9E?7x7KAR;ydA0f$e0hbtP5hPkGi&|^cfDXc~Z`>Z%~b?%02dRjZ! z)J?Jpp@5)fnLDy;BOaV{L8U{&o8P9|ddw^P7jY_SEfrF_>6EG=zK1`y7HPC-4Pre2 zl5wG(nr>nP3UfHm;(kB)YqYG!^o&b2_VnDjqX;V3(EsCozs9oQ=$IfXH~n^CJsYt+ zYNlTzB^#FAE-0Iuet^Su)Tm_4T4ly)4elQF9R?Aft^2Dj@nI=cwUohxW*Q zyJ|$MH>y+sw)iAvc1XqjiwmpW*})Okx7tG_QNW$T*ZrHUg?ycH{5t8YSi>@+8&#?($oh?Sdg)MusmlBFSa{q8ZD`JNvya^$Sw-TO zp8I#*k({MltkD;=GY2V64&{H(@wx^jgiZbVTZMwQGgRB6!bS1bmpOo{D4NsXyMNwe zo_0{EJ(3R47$c6!uKobv(W|==`;rm+HbU!UrL&5)mf{v7%pWHpp!ETHoO@jO^>rgP zT`1^R!l-roau=dG;d$MWQvk}<4$rI6R_wk*r69f0{f;tByKasd?L3UC9fO(3$EGH;}&$4P4DVkvdcO<|;`_i`&f4lwqGD#&j+-=V` z_SpA&A*FgDo7$K18{gy`^q3~D@GyzPq(ig!pMIXLZwR9=j@f0^3P`zZ4~S@HccLP3 zuNIFKlKmJFhA4tcHS`}|t7|*gR8&p(UoV2m$j&Xx5O{EZ{(=DKemCQ}Gt);u;;gN-X3rWLWl$O!zwh>bNk6{#T18V0#-uZtY*nbRlxYqU>_kX<8l<~j)RvI4SKYo4vsc7Us zyO#!rX%l+>$4?izp#R&M-;?&=nfaG={r{Djh!Usp|KS4s*}{K?`CohR|Jt3E5b^Vd zW|}-R6gKi02>1Ear#+UF&|Jo|5nB~Y$bS2IM=C(O9FFnNNadt3p(elj?27upmtDm^ zN6r7_1_r8TKALVsrbDg<+{*d1*J`Pzv{We->Cbn3t~|vbtF_x#TIxe|(D7+8(e66j zCvRE8@uB_p)m9>~s;_*semYr5SGU@=I_s)y3l*W4jBk*=lKl4C8Jh`eG!#YmE|hX~ z`H&a2M^`V!jaDr(ID^bnJ$Romu_rqniB(M{tIa&<1s?3l+;I+YtbbHj z9XWQ^L=Gh}MB5t(TeumoaBfy1kEhRs-{o>1$bxWS@U7X4HVMWzZ+W#PN)d+U!h?Kc zhAN}ilr*W^!q@^tr<_z7l@Dkz9@&GfLNHj5A*l3pBc$D5@@;Nx%x9zg3+(D!p5Ae$ zCqd|{_mki8?6Okr?x8MX+!-mta9)3(>S1ia0bZn#jpV&&B*wMKP%-F$FcXx{U)34o z#8kZnyeKvReYC|q^CDNkoz2y!VP@qG3+2^k%8&Pm`?|6)^D*2W$Yw?XX$zXK+V7)d zibmho*LDrHNA}d$H#V|}#B)>|pX8M*zw5Ui*qIc|OCi2|&g5HHe{w|DG(D#q@nhb_ z(VG@dp%?Kh!J(KhkB%j61{Qvqm?J0m(~CX=_W23EbmCeXI?12u`u^0skO!E#rQ%vSFGs!z8#Hjw`OALd4etFYCp^F7!?1>y{*Tdk3MjE3 zE9`|#EldRxie2`#md7he;|^4Lw~Y{j4`}_ad8yaecg?p;q-^25Lh3usujAJE22j8> z65Ee30DP3>Rq={M!5O9ewos`b{@E|_EWD2Dl`M4S^Sy#a7y3^S04maX$Nu$gsfNnV zwhJ`r(b1i$<9XA+)M@bCIST^3PFD6-P`fX*KU8AX8Zy6R-GQlQ;9lfh#YCByzceDD z!Ly=%Y0H4q&79dy*tPBqj7U6jkBbiPdqO*u5WOv-_MzOd1hMSeeS%IMU!{_7G4_!V zG9D9GBO##)(ytt-;8GH|QZ;YCz{SiwId}$o9I-K*n^b2FQ+n;MS#>0b-ZbS+B*E-v zCGI2i)`tr_E$DDZo=c28_r~}H2Q`|5rI#f)1&1h~YRLMYvJlQhZW%p;`+-K&MqN8L z7m367L)*E7Ql79@U%atxi`vuMfDao!G^XV|aqe=iw68PvlFs#!XZDes+Ht0aZ%KfU zj@Bd}hG7>aXmUckeunmLW;%rKg?4+5IPl4W*T>HfoOKq+9$VZW2u7bQVZO;)DX|Jx4U_oZ4`jdkYyHw%zvh3h@Z;2qa4)aR z;@`hfJwj#9oN`=G^n-_zCixdz6Gc@h%<%C^8d}CdBG<=XVqtQNw0?_q zcc|YjJZNG;IJwPAyF;j~pzi~nih8li<*wx2JU!kFoIFrUK>_O|qRAmBS+=4*AjFjv z=W=OB(ix<73U{mGFTjXT-TGz0T?pGdFshI?A<#M6uByJu;|{v`;KcjhsBE9JIFsqH zo^Okj0&L;cY6!vr#pegs3zi^p%~4})0i$#6qf6DH;*00YB0?!bCrj2{>!F<`{3fn< z>^Dh6T4D<>N!tw#lv?Z?vv$vaW$9S}uom$Xfwk80WsCa?`;%GRZTIKVCkYPF6#Gw@ z#c0|P0nJ3tYIM|Uj}4cD^c8h&))SE#l-sFC{hg2d;wL-liISP;BfHrncWll)Fir2G>Pb#Vm-Yef6-+iajm1_r+c@?ta8*! zk)~d??=~dO>briXt>!l`pwWmqe(N!>oX%+0fcg;Equ}X@EzeT;w-py;@83r7>FjR{ zI6@d|_{f9ytGbGLv;5+CMfdrJZRZJNnt$RLyGxZk?TOHmmLqb=Jfsa}qqbnXnT zT7d`|LpaoCzCi`$3FW3-s>g3> z_K5?VN~wBjU2WjR@v8_$j|R)>MUoUqvmDy8cY=288HuzCRGbaBfHz-4ZYZfxXOv+` zI(HNHG2*2-37Yv#Lb#v)Bc0W+NMiMzY$ujSRODf3w=3W8fKKzSvz0LwL%TfjQ)E_R zluUO-kkL`UoaAnRY_YpgWj#4rfI{_uG{xV-`A=-xyVg=RnXJXR|Fuf%WMAgGw9+mu zH~O`Pgd7RlWS^h=$yGBo#}&zET#<=jO$qX8wMYC+#cl6l;!tw(KSed~KBb6( zcE6#i%B8WL%u2KXXykX2d(M388SCoa9KC4I4cD=vPeoD?J0s!Jg&5L(EJ%8Hbg4pU zx|N5QE0b8TN88@-GnZC;UnJz%AonnU#+NddJYbE4l9k0D)R{2j{AEXU^(v6|(f-W! zR^CAq1WBV*{!S>|lOkXpsl5PU56wTj%;4m=U#jLTF3k#>njg!(&pJIbuPbD);6$`Z z%RoNB9W#_rJ()e~i*8=4bY;B5yJy{b0-Q?)Z`a+bs{=k4M$4xJh&{E!*HWp-Gq`DB zt~1W>AQoGCe}LGL^II@V&68g3ORn2tihqO18s(@WHQo{1%*tiI8|wkpp(%wEbDAp0Q2q)r5c~M=Q|Dqucv`Og6Doc_N}o6 zw#-Qmo>Q84HNZ`IpcP#)`Q%T)d7N(`mQN5#@@tG%_6#*WyY1s3%Sl+ym`|_}Yo1m; z^>{ismx_kQ&!l<^^4L!iMonGHnb>S=_Uy5EP1G%CV@f(#I7kd?%Tz>WO+W&4{+jFi#+pAncj0p~<5%$uhum(l$%Ss2s(^1*K}r zP4cH5Nxn|W``-IWDNW%dVw~GRcjZQ*-)C1*jseO%Fv~_kzq!KO95thnf$VM6Kz(Lo zxnly!X0v4zud!Q6={;K|O?nOL5zc)-bV=-n56d^~IJ(JF0)sA%Y#QajP!gIb9;t(2u!rpA=CC&F9o>jy|!LLl&D#z|pl2FoX z;&F?%G|f=I@&hApdAY%!;rIvMx5m|GnP&V3eE%A&fZBOO*!~q4$^H*hLQg1(Uwd%lj|11f$>rGQQ4WS8S3Tkd zq9@zc*rq9p*TP9ozs_!_u?CO^PtUkjQ>m=Fxzf2$ebbZ9caP_yvD1I}U7VAI7^RoXdV{s5)5 zhC9?uVDJmmefZJQaL)IR2lo(3v03uC&RY8zX#i<`Q0Vtn_CL1Hl5YO(843e@I9kJJ zIEjDY!LcCQ+{`k!EQ7{OmM-OR87;q_xtCnUF^yzA7Iukh zVM%r`K9Hfnw#1x{-_3&>=_JQBC)><27rDB<`>D3`D*DH7trOI`Vr?!aKpAWbI}AYi z4##H+#VG3&d<2ZW_KQN289$xZ&uSdwBdu#~_co*lg=o(g@7U>g^jnhHb?%DZ#ZIm` zv^AqI3R&YQzW9Mol1>~u;F)*xEcm5NsK1twFVMDp#Ea9oIo(p(RoD{K;(y>@IzafI zXN*`-Pe@8WXJ@@DZR8|22(alX>t%j!ku(5UXuwg(^i~Xb=@YZ43$}_;;dC^he6^SPMl{l;=+x>&kY2Jw zbE}zHAKw$GW>(Ew#Hb(dn6Uivf^Xl|VS#m)5woi}!DFD(L`~g9$WAIM4twsq1I05_ z9wU`*cwJ?x0tc(+#MThaK9_EL*AyAr5h^o})*9F}?ENu7i}lmmbA6z%vI|Q-f)>zM z$zSBgq_9c2F3<+lJvy`j2vv`7k~d%6s%Y&HX20zmg?z&+$-kG~oP@4Q(v{^*n3dia zj(Vd0U3dM9xCxMBf+SJ=F#~xIdBFMsb{fj)d>t?`5rVJd=In{5OVMdL(19KAe%m4P zqno}*0a6=CX0U}E+h1BsD?;=4J?p4~*J;crqxxQjI-j`^<6cqEz?LAH2X1F~h_?Re zr(cJ~56x+*t3e}PXqUR)Y{4$8L~|izrucWm{>hW5F6XY1lXQ%J4t$a|M3$uGiQ-vl zc(%AWHB&-=tQIMT3yDQfY`nAe+BvIyNUk)E94&41t43zVm7U$oQlB}kdNHL@?<*QV$^(< zEo}U;cq(1GU4Kc!#AA|NS4D*C!5z&~N?>&swauFcf@)pq*}yf!siBkKZto;!UCYq{PB)s<%zYewt_(}*OBZf*OoL6~TJDBz<3*ayFu zo>3IBOhqT5v=mvoe)?KB%{#DZR@8BQEJ^EXvW7tj(4&uA_-|=B5#^+n2%-~X3vR{3 z;~_6Vb2HYE+w9Ll@Ki|I^PGf&_rPZ*Aa)`SO|3`tMQtc-FvF+ICnNji=0|ET#qwx$ zGHI-s7T(xOv-;G5c$^)h;)Qj4t75{r-{q=<+fi^LPOa0cNz@=q&)$LJ{@`w$JiP>L z(jBUOmxzxD|7ToFWQzc7W{cE6fUs~>)7bzf0acBC%bhYumLzIo2$Lu+nY=iURDDt? z#t^Y5d`I&Oe4Fpz(jCn5+ib3Y8I9LqXs{;R;``x@ePjCMY)5WA7>4R3O>J+ubzV2pACj+z{MogM#@;S4hG9<&sY1Tu-a&qN@t-Ir~F3X}*A+ zH1h~62*vV2lX?@3UWZaPQv?vL2h?!~@E_Gq#;}oLSK^H~dLlCOOMzcxTM+wB`TK=Q zh3`4sB=}bY&M(O_Ljz6sE(MeR7P434Kcon=(lqkMm>QX+YEq^Ixk8+V_%p2NV)d}X-VLLn)Y7wDx z7(c(P7YeKc86)K9*M6o)gbFVi72h9F2ep)QI7@tu_#s{WKFS$w9o`wy9MK;l$!Ubn z`Z*ujCX0TJ6rkp_50I5d)PF5W7QIkjpot;3FPcn+!|&3oLo^sh!Vg-;^S6X7Zcj!g zMXvwIV4o1lr!gbt^KT*8Tf00l87j|k&15R?OIJ(Z8xa13b__ipI*p9M3G8p0UjAy4 zl{fM8?dd_tGw%e_i>%%1>k<%hxDgQ;)TN=;Wr?6V^q&1XU)^1Tt$6=&Doa|WYAC)f zC~fzLWA8yx&n^+60*0^pBBtHCetB1W9FIFvd60KC6b;eTI-mhv{ zjyH+y7=xYU@S7)U_J{9&` zPp>m(*S&L>1yZ>Bj*ZuTqkZg$4jr$Y7LQp@!@0FzHBaq$_;nRT@%HtqQw`{)9Op=; z1j*qs=>KWyCE|6mt-DXRp; z9?fp<|9IbnbJe=4vo)moIz|(a6YG6ILQISz&5kX1`hbe$B6_}<3MM_Cx_oghK7KJi zFg<+v>ZAFIkBHWojkoCXP~qKK1}+2%5MP>ABtTRL+?Y7o%;@B>>Ry2AOWqV%ebD7=@et^bPF-2bbB1 z$`y&P4KunXbrcs3gO=3$4RjRZG^Kj(JX5Lep+IU6k+$&E-2pJy?LV4|W&o!ptDiV7 z7`Wj5D8xq5VY8MF;^WAQ&rkVR6@7cFE|6x=g5=#y)YQf`P?OF2Eltt4Y zMC+N>ZgUf@7a$-YDK-Fp!X%DnV6h~n)f{$o6gOGi46Ac1j0FSuqm#H&q_=Ly_;qs6 zU&^$}JpUM7H=_XUOfSk5m6x4w?}`uT0oh2TSI3%rVn*m(XshEhF$w7M#f4XI1g|L< zNWGI}_3;k>igmcpn&Lwkq?{Kzayl|z?84aO-0xhuv{))2lz}(o`(^herrJuwgJ$Pv z2=38Eauj(%s?=!{-5VA+n7+sA*HvwKlbY$Vdxcv0iE!3J$ep)Q@65A2x06TM!UfDN=873twa%gX5_R+GEg5S#xrTot!v)q?e|`t>*=i z?xv4s`m+Yd_s$gsbJXM$D$!>FrF1n{_l_EULo$6t?+w!E6N zQVdiODZQtiz~(hjSIT1#6bB*^+C+E@uZ(*DmRpa8+}1Olf(-X8I047#40FNhD9A(aG2xpxJURjbVHlzE#PqS~*-P~*J54tO}QDyCqvajR6 zR}FGfSd_w2_=|g8>&o zG>%iWg#|~}A>DvL2zvvFnGo-=@an;NRHFV@Dc%nfOoA3)v-)|%$GiB6=^dzIgVeh- zZ65w530ey20NlA=yE&DNbpNoKfyD1fg}l%j$r8T3wvk|8Z`Z=tI9bcTWnbpu-#kI+ z>eCw)Da0iOT>syR1Tj*@DULiEB{7`Y8h;m_b9PTZe|94!Iiw?=y&ruVrmG>n+L?|R zZ2OSm*XiD9-)QVpuRZBcv-vB#tLz;q`{Z`0T?>zip*U8?vQ!Z$dVXQG00!%(v4t33b3~=` zB)`6Wny#-A-tx}4yaB7*$Y)yBP{4c3eBgomILq#v!N4>zExsw3#lDLKW1pBm-8<#(Z=_B^bjFhWaFP-`7p??xr}1 zNN{qoxLQ*je@JU;KOSH<3Ru;U6A)WV!}3+|lf9vt4Ey?bXmwvQ znPhXLDoO%!!ZZ4$Jb1@SX+{al9eghHaoU&n z6XO-ms#%~WRi+;&)x*ZD`ish(up@U_Ay-j!yCgBf=J(O|vi&QFz~^HOn_YRWH?W2$+mf z*TlQp)Cc7rSm`d+H~ttUKDbI!kBXV^l&9;Fjt*=`&Q#309eZD+Q>3OKV6m#S^%Gky z+!W8mq?rs=xiL5Go^b=k-Pdhhm!=IpJUBW1m8?eH{kv0(F^^9vSKS6WU#NQkeODtsc_;_vNe zVFkF3f^ktm1_hM`scAiFXVbnaB)`klVd-3OhZF}h*X>v;^$~qKrHQvGW6jAf(xb-w0P$Kp5hsGbEzO~EB%LZ5om0=9ijRqSzghVKj0An*Ee z!C_+HmC?@=V7h`~$qbuR2eTjZv%4zHc%Hw)Ue*{8uQiYfcaBpt6HccXPU{_Lr=`yi#gD)# ziWegnXD@Do_+tAbPf9GmyYU3v*etL!QNrgL@1sks zTX>BHwKqmm9VZF{c4H*DS8vZcPd+(|;!L7iXzpRx%Q}>wBQ_Za;&GC@N-T}=wRD8E z*H%TCj_UXShYK(ydBfA{nv-(Ymm($Y?_;is8PLh0njP_V#)tY_b<<`8Ch2&n`SjUO zgNsVX7i~`6_vSsnXvr_+&(iPMrcvVM&sCqLu)RwqdwttGIYb0nX&V-V-d`2F?D5IE zi9Z`Cx9ouo)7?)suYZOU&u=!~wTLj%-x>Y!b5&|}wXox`@T+{z!J*B--rZW38l~Il z_+}$75mJ+S8a9D3Ri%DwNU@1~qmx+OWa^?-M;AN$8M4yB546d&Via(WIU~;VP&uWe zlapuNaZDH1VzQQ)HlNu=MTE6Osm`0>Gp&W?CGUZ-zWRXBs_ETJm`dYWd}%42**lJ) z8jB#)ty{GF0$9e484a_+mFX6_m2th~6QKyP<$icPYsI{ptwFng_xVa}L|DYY&BVyy z)5!fqs&F6qA2|KqomV@MYsyi=;N#{LBm=u=DixWiS#U82GB?7bizSbZ z0ib0Ni_UeS2RpQiUSFV*4gA*Q7yxOfXp zO~gVp=T{@P8$s$5936uu=bH0X$=8jaa&JJm1&LHlLPYcx79CTCaT-Myd0!9Jl!&|@ zq#=_;drPx%0OrPfj|(I)R0?lsBFtvN{sKa%JQ@V8HxluBv{I^P1Fnz^(>F!5n5opH z^&@(_qN!%3H;0JXPY&??ui?SSm8q$EI9docpy&4!`idk zQ#Aab8QkwzxjbpFYgAvhKr!UmTa)jZCT@#W2t&EShRQPdSG4m6nA|&A+g`Ko zE}_#cUQp>)WjC1aL?xIAy*0i`9TAH+efgS|f?K+9J!a%h0q6*R)lvSoM0Sm_5BYBE zX|~`SCm;*aTj#^wCug;bW39#IGZ6?}_VTE}pdejn4N+Dce)3>S;Mq`&#$wFk0fx-_ znvxE6*OHbZqhDER>_RmYGoygyLsWb?Wf~{m(B^wF;MSGJqty$KEW~w-gY~_G0x(d8`OY5v(?vuN z19#xS(T%*UtR zK18B`Yk_$3Hbk6STVh{UK2Tz@s&74ou}UJ)@7G#=d`F~tUTQIg)y%ha0YCZ?dj=DN z7NJ->Hw`+18Y@k5C3?V#j}C=Z@v^UxG3ccPN(}%@X{&z?cQNO3*bc>zVKCvx(ns*} zCLZ=ds$ebE$D}uzcU{E88i5{D$Z*bq70{z~WNxnvO46B0o zg5|hkiSxR>S|sAk^9za_wD{9SP?P*R$SYlRthWQJ>Y>YWF@Rgp^FF1LOt$BU+ctq=jzqcr<4v^7ls1(p0+!f@@wQHWh< zImx}wEC}fuXT>`6Uu&Co?f25^aU_8DI4*`VxO?h>$fAHvnnY~+Q9jubRVR`G$BxV= z09)-m`=H4J!wx^@MEyz|#fh`Yqn0nQQKh_hn3G-u$e8d0DGYv<2d`HYQB)HDrkDTp zV)^tA+P-~HW@S=KQGr!hOJ$FIjWHXSFcaFnU&^URC!WY-Oa2Uy(&PJ4uXvJsJwy(rO)0-{+XGms_s`VtBfcs3%XZV^T7NE;yUfxT2E zeh#sv-)@TP_wV}U-LcGjx9@Jj`)5s-^)n)KWBdsjyeA8HYsnTin%+)4IXg=&`l6*u zdn42Ud)$BMQ?~%N4}@4YPlz~6ObZ6cVPApatmsbGkwy7V$in8+QX}0-zZ$6aNDX8r z{MOTvy6=9_Q9svBfiC;5Uo+W2WsEAV=TjGcKQEJ3!fxp6d}9)Q5Zru!N^dhn%}A+! z*>37lOT#;-y9K*3i|~8fW=qZYq3fI+`UWF3rekWIeiXxMA{vEBO0*Oai;xb|ri_w_ z%G^1xAo0bPOirP`^q=zp7Xw7r1L9`*;``m=y>9dw4N56B6?_kF)#qpc*!cWgv}P68 zkwNtqi%m27(`5~>>G-uAs}TCEB53v?0pK{=e2~3@NV2i_>m2p&!ubtg+9UPTQ`H1q z{i*9++-W&W+27)DY=!#QEB`?OJ(!{g__F2z8`$x)<-?tULJ?HS5}b@UZ@}ZEbNl)j zhGi66{8KQtSwvT=@47O316e_Ki6tt_D=4UQTOqKWEl=pg(!5%$M~5|U=XgjYh43CX zMW~(jLg`IB%02V^xRhjLNrCMvuYvx=w1`0~6N&Q;sb#5WpQb8b_XqACWRsN>mp9=} zI(9@CruP&^&K|w5EP%X~%oR4tkkfSM8K+?j&8oV`G^KHul??y1Kcn9j-NQELg)O3{ z)02{B*(V!`G^c-AOriDdq2Ow|(iaU$@&Hhwdyl*P;<|?9`R++1<@@b33!-5D~>mva5E7wcQU zw6e#^CfBmqsn&i6{TjmJhQ)0!xQxAy{U%XX9b-=Y@)?I0A{7a0 z;h*jCuu`m_c{C@tc!CkQ>alw;%CxH&5zt}k5T+j5xoSJEY*Yyo3Oa4~nGI=OiLTO< z&Dsf|!=IIhuEnt!>JNqPPFMjYCseHznbmEb`p`9lzA&oRERhP?S=nSj2ar`|TS~8P zEXvMCn0V7cdwcHc28%d=Y%4hBi2n#P4hf%fcp`X$!-)$8(6kK>I87lE%VL+4Fk}wR z0Wgu2;)CwH$crp^jK>SXe?WQxzrmAyMIxmKV@#gjUSHuQE4iZr%b0{5lx*IpIEbXn zzjKdgSt>@;DY5nBgL9qtnzSP1z&oY>#_xk(R z#TK%Km_T7`QGuXMU#LoZ^=MS)Ak(F>hw*_*Fifd&YHuO9QxMdfEc^7j%=I*|9fUyy zHmXw(K+PW6_8X@?TmCnh-u*yD(o3P@KkvINz&M7maJjmhu!Ou?l9eM2D-v5 zxp`9|SNa|>0P}mbM_;DdqgJ*yVijmzB!aY`ZW|ByPrE+N7G{5-eEqj8_bfKZQK9Wx zR3!T;mC!X5X;VBTIX*g)hlpr}P{9u3@S_ zFo@xyhnPDch$vtQ=gV~&SW~3i=)I;A8Dd+nW&RIWA+e0FMz^bH zhhfj&RS+aLAGjsYpJ67ieNu1U$DYUl#sdks8CLS~W?-Y1k=C^z*Q@X@5;dAnx*4u^ z0(&cTDZA(7PH{9!2nteNsaDNni|j~v>5YhHnCGwajH_*Ua!EA%gdVCdjROuBxjNYe zI5ORG%$&Ec$G2)+(;!z7we}^5IFlsl97;OqiggI!n?-FMlPP!bfOWmAF0=LlHIcX6 z>_si2!vPA>VT0{}<4>Sooi`=L%HY&@*)R)%mS0LyNV7Icm$EOcdDD0$LMsCUxiC$K=E_If2vbBVEd*u5= zd z82dUa5n@nBsvK#&qtj+A@>x_o`-8O?am*}wK|4!H0c_A9hiso&;}IDUnm2$NOw;JE)Jbd0+mB5lk?y^@;NAfllf_qwpHDNhL%ubJyti2{U?z zri*IILn8q&z)tw5Sh7ut`B!$*_%;I$>gys}vo^v0Ukl9@C2%4v>PLJoM=#CCn7o6% zI!uQmPyChT@^&1vJgHTJug=+-zU9|6@4mOrzAd%gbGz^YQpKJG3RY3qVDY#w_IXc~>ggI$L{Aie(OoG_LC)di+3{KWTe# zZg-_H8G3qxi)cF+oKVP{yxip{BYr+WKFDvq$NTg))#3~Qx)bU(Ps|+)KtG>lZtl^3lqSk>*e*To7sL$iU<+< zLdAFJM8B)>)fMP(w9l@Y*j*dcYiml!PrYa?dpn@yo9{mL@o(tY8vfvjNwI6bskE z$j;{ANS!ZK&E!d09cNC#TgRs*5`Z5m>FzN9yG+icJ-~Z*^ipqJdHmrknoVds^8Mr! z0XsTHdWs&7pgJ<2rYa7iJ00OE{Mz(i&R)I01~VARxPdLOt@|)Jh6hbgTfR4<-|<6! z3ly;?-L})4vbq@YWFK$i;v0&Dl@?J~yE6#xx`-Wa0eft`^lW`2sSQ{Y|n@8pJB? z*^(0eXmWq~N-#c@UMz3vU_a|1M8nyluu&mG-=}5keP`Ct1Mb-et&b?*rysI-{|3bSWi03RlgS)RTb11IXAu|g3m*4yANgy|{ur3@x zR;Yu7%GB=YB@V}wDcJ5z?k`*he-|IEvow9ouh7DpA1>H)Hn?b|P?)J+G#{R@DCtz1 za7vs%rL{nOBb zn!fsu<*c4eD;8RnYr}drmSxT9!An3Oc$VBC11TXw=Ll~)x{#IbB2~#+`p$*-(>KH`vg2aFx;``jo2uRBly$(205fCscRG~{@g5}MvM zF%hmZg0u)pr_ zh_vB=Px;sCVKmcb?mSJY$G*xQSt8HbtM&g*ByvCuLmj8^oNzcZ+x4{MyDe+R9Gi@ISSQQz=`T@7peBhqxe zLY*1Na|~ojZadHq_bylbdjtFyYL+5Eb!=tI$AH&`;Cv7NzF=vco?M83R22WcMgIO> zFbmk|&EMqS-ye|vZy}-V|7#5Ge;@fhhwJ~Hm;cJk|7@lI3d5hL%Ky2O;nBG^nON=@E0ppdc_^>Ig;OBWi4`@;Rb#AlsNa3@QfGAdqOZfOxW@D+he*b;RVdw;=+C$z zHJLTuZ0B}=zb@;r{{GYCF8BVra-N)wjCgjP=Wuxw|1X~c25ddQ?mBkxq-aL=(rx^f zkIM%&P^H=y>&C_ve?LrUwXLB$Pf0@4GeJ$FLU|{df^k`Uh?Jd-jKg#y!i)o{$Sws?LjGqd=Um6hGm;r zlYFI&G<6C*-I(9U{6S`+3tyAHipj^xpHIppB>9a7vp!mQ`&>mQ`!!k}aYuaf>h?X4 zU;h!K<m2JL_qdx3as=@ypFG`SP33S+-$epZAwp_DkM6 zqPG2gtjG!+4(RH?*5AnSR>L-T6&8vmpW&ZgCer+F?B>Tpw>ro&qW|<>eSO>V$*=9e z?Gv_R+ruafF4hkg)`NY(z6M{;H1k;DPvG=J*%-*LSW8)@9rboZPOt_3&Py?zPccXL zK*n`Q;c6dv355{>KJ*I4CX%jG75BW0{Lr1Dh-HhsOWC%tll06Sn$i;FhD@u?C86&( z!rnIs2CQjfWTDTs2_L6G(qMnVoq(toR|i=dsbw?&<+ z1ivLIm2?ddq|vLv*|6}Qmxzf+@Q%FY#8uwSo;mNMpQJ}Xc{HsA zv#?PNOC14?L0^oTJXb%hj)5lTdQas;dS6~V@$qg|kLM*o0leR@sW_EaBBE^MP!AvP zL&+_6jP9%d;R57NFKkUx^i(r^h+24;!h`pm-)GocJ!9~75ApDwo7}3re~dbFTxZh| z0uKXuH~xHutojOmhv019aDV>YI2*-{r6sM*A#{FF;GSfw!r8MpI0!BmQH%Dt@;s+B zN$M?Z8`%~(Mp;qVSz1hX`fW7CUSbUY)z(N2S=?9dCAi0W{^g4{w$QWpk~S}vrMfrsnD1kH4I+~QLrUv9U5Psd12 zz3!?qbVUA6@O1>x;^EN4t|aTjyNmMy(_1XwArLG7d%1IYey#Vq&S~LqyKu9l9qyDh z*Oe{wBL6)J5ZwJ@>)w>C!7b0#B~pcaW|0IN@7n3ImA%3G$n(gPudA~|G%@;b*If<# z_$DGxxCTD_du6kc_j3lG0b^G^Admt&guBcBN17ay2-D2l@wR@nucnX|I%o#%K^W^P z{P9+u)57!Hw%vEM(HMePxs?5z%tx%0GA=)FV87pI!Up0$3x2I6Z&Rtcu1EdO^L_a^ z(RI2bC}NuvEr&Eq()7-HF4J-7bWE7{OTK(kpL#vYSCn0VeRu5BbYzpuk8twQp}6o1 zy7!cQ>HJ#pD?m9n_yaW#nm3T{(wuwH<;NL`-o zp6UHL5jZ=vwUYeRGxV`UT&F>@z1Ye!XW5P<|Lu7jQ_@xea$aujyL+O=sZ>=BG;D|0RSDUm-czyk-8VLdT|R zJ+da|yJ@FySP5wZTOaTjQrFJ04ZtsTOOqAR?e+&Z36xb9@BBZpmZt+mlV?I9@b#)!@tauEPqnnfXG~4$1 zLkqWj4acM3aut$5X`EUVrh9fIy`^BAE!Z10L&HmGY5ml1y3dcXb+GQfvb_qaMp(C( zj*@O(^6P``Zvh(zk|hvlnvDg@o1O#9Vp-=pS4t^YtJ^n-9bODxRR}d!wY4`z{$Lpo zS+-U^|51S$04qFg>v4D8k7LRCxN-I*o>wtVx5@YF@@g2S7_ff@cD0z_BvCqRL3|4M zy|j8f2AZd;4&2jMCwM(G6c?(L%bYwQB-yOYi+@*F2c-k!5fe5J z*zOzgJw+N-*WM&~-EPI2<+ zgpEx|+@SoVy-SO-W7K}@Xb+p#eWAIXvrOpC+dxLFQxV_#%b2!GOg~q{HQREtuvy@8)X>b2q) zzki=5^9Bs*_`^#{TMgO)qV_K{D;kx%K9l1iX9^z86u0csn2z$YIK-PVTknhYsApPb zSMk^v?Z@d9ZywO*e|tdF>hc4&cdYTcYbn~MTZ1epu+5SYd>mbR%#={#LEc>1HcI^P zo)bcZVMUWa>dB4qfKM+h@T2>v640P(eRSmoC^>a{I*=-7(46v}VxL_!(L0_XG1KMN z8qsI2>WGZnlyo|owb{{EOKE3EzfLXEc{8^SA-4YBibqRHBl=&2Gi>)da(i#TPLA)E z=pj?FE&t?S5?>N+)BMMC#iU`MR5-I7}=|4)*v^OmAuito3P*jwDOJ&cTWhV$mS4v~*uDzZUm^$!bf2 z+u)I|&-&g(6@f_!ck)?5<8shamCBKIM{@`;YcY$Li15d0G<3;#e9{pwb(#?O57>pg z%3T%3K1XoN-e@Vu1cy&muYo-ORO}T=9QW^-GK-phWdJWP;xh}mjh^(o&yQU`^FQNj zZ9HW->z5&U`EX#n(!KM(>0bT+!_zxB#@#<%!%foIW@FoS8aBy>josMR290gIv9+VlE)~j!cF&{m-GBdR`bV?;>U*5~4I1oZy zCaH8b*NihXVKT(SIXOp8%rzY;1o)7vszQJIF-6!Qz*OE7+We>Q(`P%^!21cm5|tja zmY>*R4<>Um+=0`vNM39oj>|B9*&;sE#_l`7kvDJOHx{{~xQFyR)W@rCduML-LV;YR z?ykuN^~enCPYCIgv}V$`Fo@@?tqOm$H(PSa0=TrPA4&c&S^s-0iaSZzl_+L9zWMPN z@?^&E4_cGVp^^1<%5^?r^VEFATNAdQeuiWbF;iyagZnZX>OL}zX-r+XuV;hjjz>Uo?N# z-`hhlPo9dOZAXfUd8)Z6iE_@3CNywx?iA~Xp3+8%zyd);&aT{=p+4?4$@(!~bz5RS z;&5Nger|bKMchAsczgTL{Ndr&!*7H5CuD$!=-|`kISxec~LmHeLiSwu-xJJ=3HcxItq6s`nI<3tBZ%gk- zMh)>o_&~7{!2qlNuOV^c#zSw=mJ`y@^MnMtwEkf~*tSnCWaOnx>ZHHGZTx;(hk+VH ztXtN&{Fz}H$XdG*x?L|%c8(c)K$OF;1pl;lN8^prF}&~*@B>FxF(&;Ez(<4~rJi`N z9hzP7rJCDDd)=ujQeJ8o(_xOx{9!5$g}to+MX^9uiS2Tuy)*g0@^jspKGf-J3NqfH zvy`KhTiq(B4HCxyw=M9SacLB1O(h6G8G?1)zqkxSd zeeg#CMX|}C;~k=)P68IoY@`B2gkX4>A~>g@92Rk1J48O;t5=^^fzHJY=|mG0Aj#Wd zQA1Zh_M&9%*ju!V<`K#=pP^oHAB4j7QfI#ZRQQ zwvN9zmiD4>%LT=xXvRZnh;A`qJY}kujI8})t!-29{^n(fA&uG}J`4ecH6{$eL1>RhAH#XD=xm58YoR6Z@F!x#!R7W1(t%j5sO zYhb@-kv5BqrL9K?F`9fAbu_x|W0eSUPnJ_MX-+V~p_qh`mLJ70)ArT%o~~hd?cU#S z6mc{;fzdd2&A=IhCI|_y)sXf3>+Hq`tpZeXvYl<)4 z$iFsqkC#OM%R3O^w`_jcthW$M0a3Ga^!~kT(?Uh1_hyE}dipZLaget`tv*rh%cgLm z=Ll(A0A}Eh!FC&~?NP!1Z_nm!iizM4&UH;@&3!=$yv6(L55nzhs8IR+!V>p%lp&YS zFA@9P3;fo)_U&qG1~iTM#j$V#oZReo=OP1y*sBBzBiZ=5LF#a;-@3Wa`in&Z{(wD2 z*h3Bn%kpcARH3ODicAlha4}d&&@Fl5p2y}pWK%T7^&mts_$K4X-!UaViRxGjY|N&k zzg8_UY3ySAnA?Xz>p&U5I#N0WECgCwQ@Mm8O3Q#GfZM4TGJ9YH00)4NLl$rCY_jsp zh%agiysyJF=fYv{;bA@xYSV2spai3-#EV7MGc|Jn7EZr(G@mS{o{ne>1_tcEJASFX z2@^c$$jNndSvBR%PDq#)5+1n5)+!QPdnnb-3M!;5O(IWcJu}aeq_U(N`KB}@y2$LN zIgAP{ukP`2I{B`Zcb&!=o<3!=%~+zOWbDt5mJ+z9e&rKeZoji^tiGPRAwBAn6n_BS zL_?=8ON5)W7?vlt`N9c_s8jr77Qzy~tU2W9S?x=$sT@8)CLzsIHvz}#j&kY(@RL4% zw2&22S0t|y2jdw9hZJ0VQ+zYd*ZP{UTZkbC4TBH_ZRUUSqEgtpHGysS&8P*MM*OK zU*Sm>9?Is#fm1`=n@?I6OLX}%CdF%HAldNBDomTR+V2k}uKT>^X(%B_X!8q4HVaBS z0b~*6bn$z^D)-4357Q8$$yi$A?3ozDbjsDgsqjKXHK9{5IWh_dJi{Au>qn8}B&E_P zWfIet$Z00V_83gkX#0oUd;+wwH=G?Nc$%H-{@2DXbBsV<R9 zerr_J1nn7msS9ot;4FF^xR#BR=3smt^<&+!Ax|$JrX1b-gHl`XZ?$HykGi>ZvWuvMZpmJvcfuiZaXPd#5P>w3menvnXySuF5f}HAaMm|NYA`AS_ z2qKZO%(z{fwg+sIoRkya$P2{jQlGwJ<6D-|Qp%W;+Mt%G47)Rl$BX8$|LZ>$$*3@X z4)nPN4xe~mop_E8hH2x%x8@FGm zqAb%mUQ`@;N$=4GU~0Is!GvN}Lot<4*o`V4%eC)3+F3z}mn>w-(DA*2Ev2mwD&3&S zpx)g&Xd!H`A?-n9wL{c8CsRA{&%N|n+M#(d38I~Ggt|1;MPW2_@n?BQf9x?3; z3qjo`AN^Nq!UE`Jzf=D(75}wcP;Hm8)>HNIb7I2&@of&UWUp4rPLa7@Y?{8>OxYYl z(dHQNIx%TKW~{T1c|Fp6+rDxA5J=LxB4Ct88H?arhNYFBn9QdlbXIVykwnAFM-@91 zwMHO0Skkt?i3Q)eog^=}Zy9O?Pq?3mx#_g+7+di1p5jPGEBryC)(pJ&vB=VZpog9_ z=f`t6VUfUq4SNLXL%auavkWhC_etII#z;~_HGk* z`&g0F;J+Y{5rV@c zHoDUXtSD=(yW$E50ZxD@;cdgKA4kH&<|fZ{14ZJbY^U@=-j((j4mbPUD}>nM5LRqP z_nSH~B=6&Ap|Gn*#YBo;n?zS6k=!Mn45vPxiP^TPO^C+Nw(c5kjS4KkV= zJj&!n-mFG~5n(q;<8X2Mp?BGOU9VQTYgI6FxXarzkaU(QGbFNR@v>Drvx}FGYvvkv zO}Hv+twUaohV8fLIRjjNZ$9^<4=;zGs7lj*IQ5MHntAz;uMO$bf57zBJ1{_Od40iw z21)+Z@O$>xN}mjC7jbrT8b1qU>vR;a&f^p;T*{kYH~JWxI<%>pzVDftYx!RY*=N#| z0hB%E=)Ohl9c)x!gY~R9ySB%y{dSj!P;_zzWKml%(gbTp2mk$<>N{=W=Qs4T^*qc z>PJXwLS2Z=@1Xg1F}Hi!U`00e4qbj9L7L&`^;B1G+53#TnTN7Gl-tZ}xLOK_9_fX2 z;`<3#qR~L}1fZL-ZS|5G^8)Cc!ku)&8UahoYkLp54U2YKivt6*m@&RBgIn1Gg1mye zKdKM;{DvxX;=b5ByV-_j8n`anX{5I9rSqiyB#Pg24v`HGMp~-owVCe)<=!JxZ|;OB zEHCi4q>~~DL8g!hrbeP)1$H~}=iC&Wvg*n7O+#IK_L16d+Pgm9ZrIm1pVXr))@TE| zL0-Om5FB6{#HagiJQnipH5B|f5@PgN>hbF=Nu&7kxZ@#ajjrd6PQ^?`xHQ7>F1pLU9N$WW=h$sC0VFP!+ap5nZ6-gn>x20Ykoqq zg;QoHuc5Q{k}M?ZubyJ$wg?4sRhK;fe|=)m>|cA0s#-%aIA2(@Nn7++9*QGk z<x^8#wJ^dj1BJK72-^ade(ox0N=OsbQjm(8E!t^0H z1~90d@GM%M)h|?T$0fF-=<`Y7!Nhk2l98L0hhXcQ@9^+uj7ib_-52vG+NB3@v+$unsGxWUebCvYGuG=<-vmI84d8DLXMjRO*S_?d0RwV zT}3oKaXd8ZOAa|w=ENwB7#d?Ph+dSM@Ksh&QJm1t7jv|XzKv0~b6bzL8w zk?Z-EdPh_s+zE?%2v9LIgK9TUFx@MFFJ_M&*`_GQA+l{k^Zo5RH{hDvJm9xvR88w- z#u3Qd3=bKqJu&3v)+N>=e7?+lmuDzYm&Sj#u4?lRCHnKz(T0#*M3Xf=+ z&k7OD$bP+)CP<$~#b^5H@y%ltDS0Z41}qJa#LJh-9*OAGXhlHF@q_IL8ylanO#u5< zvqV-z^hl(O?!V%jQ=y$wj;Z}%6te7Z!86L1k*4kIC4x>B!>R4*AI{zpA26WM5^r1u zK16|s>vt7X`9#f<_dLP}SSDuLT~P3i(0%Is%J8p=uIO`Vi1xgt9Cnh-=$tP_^b;E`Q>n!Wv}RbI zeI2(llF5G>OIvZlnyi$cex7NRUAQQq->-;u3}QAedWf3KjIj%Hf%nGBXHmvbG+7mXaow6kDnI zx1gzTJxR@lEn*-dANaZM#G?+LYKq^=c3)P7#^M{PoLcIqKr&TwpLfjq1Q7JYm;yQf z{ETqzA@1TPdhvL>p!;l5Q(y{)x4|L>@3vSOEuvUgi{&}dQd5E;Xolki9JrS9MIHF+ zoYSo%^GP$l&8TgL63?|gWInCc3XLD*sF(bhYVL8lWNDD~_B~e<1xG=;D{6XnhmAhu zy7Bp}e)j)0;ZburXae@36#s%$*F-=Fe-;_@5q+$L~4 z$%(qYX)jVanm6zq-ys%UG~@RDb_dJ-f);KT=Yt*7|Or3vw>#_X781xMNI81?pQw zENR5KtPgIq-LFxNXZ*RXFv5sx%SG;nz`i!^3)rnz(4cKhI!NcT#k{oX5S3 zZ|Z$yyhU>@cad@;(&By%BsO>VHFD$JZc;TW6z^JUxC)$eO@%KsFAO)%(JN|g9Mj;D zSe~G_`;%9{4B40_^wy-%9kcP2k=;nBCfwQrZ3SOA4nXC7YuaV3FSEY@x!J}x{-OD5 z9FL&@OZ4WDIqTTxa>h}v!SmQ=HtPTl6JfJV!QU}RDzy3N64;7VcJZRt$3OSB0Wz@t zWA$A5h2?ilGwI?sV8g~~XVeN&4ObUp1mtT6eq>A$EK@y-(_-B;E6%TT{f9h&SGZlA{J7!X=XfgfQ}Z%;Go#bYcrmRWr1WOH;ro1Z26K=t5HL+=i&o*b z&hFLuqKE8+GaYo8dU2Q?)skzgY~$Oj@xrx?j619J+e37weZq)yn=z0wxD(OuQzw^Ov`g*3xIjn6RD{(jm4hnTSFJhw z^OP@MG;b`#$d@MLi}Dc$a*Os`Lu_fQTZT+N0Fp9N{lKrMl?j%#6VNQ~5t>?^0%i%n zd%;SJ4c@XbIw;VRFpbOM<)ValeCc5M=y|^Yvg*Rqq`IpC-qnL^U9%lUp$nNzdX z@AT=LOIrKv zL8o6$inKM@l&R9JK0TEi2g9nVt!=$`8}@Zw#M^iX@c_C5>02*EUqO$aX-=cgD?YJ_ zqS4H=?O*?`9rW^1xp2E`O@&9cq5Jhy!2x@`yi~5zjBUp!IYi?EcmaOgFvXC-NlhSY zXA-&yzeQEteFDftdB|{gj2*RX4oBYkG}dR(Ht_=z*p4S<1NftBK7!vS5Pp@_M)I+r z&j@5*&SrZf<&Gcke4}ZBZ4vn+AWL% zi%Hs_%;7Y0)4n_II5zQcMrkB(2K3XF<&np^PlGfJj+ zri-|k`q#M7&qESz&F8G?*yG!Pv|Xjf=Dn$lOMa|Em^hmS4)lFq~`lc6N*`39q6E&F8`%^8pM(uFz z(Rw>|C?4fuagM2W1nlKD+XBKG_dJ&F1e`!Z^F}E-Bhut(hcCxxD2>^A;KB8L$6h+< zmt@ih(pp;Xkh2PUqMblkNT|+(!$d%vAT_hDRV24s)6uD2UGt4`{J~64fr?U!p(b2S ztIgn=WnJ^W3DjT@`Ka%{KF`)YCwa3;y)A4`JBmf?j1--$GF%~hojlZvuVN264jkf` z@9P11;zGy9pCL8ACF7yX(qW6Z__+mm_iB)L)#Q6dq-X*_h}=<%J7-6WFPwjBZ|o>u z5(7Q^3&;6HTB%T}yXMB3gK0$sOV23GZ_60xk0jWK7s_;FB3l)P9(ES{_45BF8P52S z@`U{jY{)-H%Bz+6%83$-eL_HFfusXSg7i(HM_xg$4w|G{Oc;PTJ{{e)u3onre1=!R z`_S6#iXdJN8$GF~lW{s3YfvB>N(xzR4oC0t5_5AGa1Y*rJrF1(Na8T_4etl@`kXCy zwacRYV#Dg*=N3Ck3%fk0hw1{hsqS z#_twlrjkcQSNkAC&YEIV4G|?^PT9z7^a)-&$+USK8o_F_!HDJvxf!cKYDt-hTuID3-R zWJu>`?u-&`qg!$o;quVFA#3Ysv~+Fg`uZls#yewfoKK%g6|zH7(Rn<72mNo$1;(=6 zPw(}m7N8}KO0{rVouTMxa9enzu?G+IQyd)53k|8JsR?+z$eRZFx)H`aHJJ?^$DYkdSkwX3=O^(23bX>e|8H~Mi`h5O z1f?s`gGCJ)Tv#Xr`}Ix4IUl2|nMsAnuBn{2E4pXszNyUqZKK5+`h=aE|RX=p0R_|9qvg%nRAQGOH(CMpc@l@TBpV! z>}|IwvHk=(Td{4gN2A+5ncPU9t+bg5gNL%HKx9Aem1cwm))>0^jDR^xNi8fyo-r<) z$y0mcZPR@05^!_TEE@E9=gOaZk?=+Faqrzf*d?r*cOY#n`5^@H9>z$>@Ju^%a*qG5 zXUKQLoO}oWXe2gD5q6bf`NtN{Mnk6VT5Va|m^Un9bDQGJezy_>^512CyFu`x!!2=d zG056AU_d;IW0z5Uucj;KKsNP($d;8bXwJXUI@6`Pu{3nD;J|{9d&?`3G@BxZeOFK% zo5h#JY7RrY+_aW$!jxyY*|!@3$VDMbuGk(Rt8KJ%Lv8)yO8+amM^mx>jv*+!qJccK zYK3OpR+C#+NmQ{u>_|9^HHI=-G1H-4qH}+z=KF7ax3JPP%z0$DwQi0CA2V4wo{$LC zpVg!PE5yBZg5VYX9UyIHb?pG9qRFbe+c-O7BkpdZSvo)v_(7}yFHx)p{Z;^%^GJo4 zZ~^@96_uB;Nd4lPV=-$vwU_$NnFC|xECyO#{!0)ez~AuJg<_G`69gIr+`nuqnTG}u zD{L-mFx%NgkoUiKl1ZBHOn>I>zeb-!P%oLF$>!(b)}uf7?7MNyj=L)!6Q_*H6()FoF{H)Zv?JRQ1}2>^Od`z+Oxb)Gd^iIMc63U4L1) z2{H0F+6h5k)~Hcg*)Z?KQPE>^W3z#s)*P-%{`)tIGCMv6I$k@5t@GVY+@3d<9$xZi z0*2)h?eHM`gfvuA2sSCbH)j*!>Ui;PUy;^L&I+H>|6Auv3(x320xN*q8t?)Ob@MfK zvv8K)V<_{R0SiNj!wnL#@&w}#4;JTV)1}X2V9XU>OyHXKFiG;?y(rG~c%1I}2V+;_ zm71Bw)`-@oDKD-4?4gG#*uDlALuGk1Ut#O2Qu9iUOR2@#DrtjaR?gq#wb z7-$OfSwHv>V(s|1M}{VOWyf639Ck)=W02yoyB1>99u8wuikp-?M8;(!ARN0Sl1GAD-0_!1W9^#1ReN-*`7S#-iNXxCo_s+D4KT`6UuY}i^-{@hbC3hvqEsQ{M z5QL3!(J7(kxv1CpaASjI+?UqQ^!g-&?1%Ns1U%nxkzQ0oKmmnZQjA`=illzGPBNtC z++muO98P3(GYO=DeUkt4ma{W9n_8lKyo8=3;Z<1t4jI%>dHUm4IIa)ZO#*K2@3)sX6w1|?N zQ?jbT-TNwKFN^o82tKngH8E#k5+1CAFqyFg88OK^!6r+x+S=ec-PT)v9yRcolZ`Ov zatCUJwWjV)J#*sCHADSD+`M(~4Zp9a3328rZfgs|{Ef{Vl;ugCYM}BpE{jbL%*ln5 zsV?gozM~G#K+u}ZkgzLQi~ETc4oIw%gatKy!{1gzjTi;!;J#y$ep7;BS^K_ychOu( zZX%bQNE^Efcg2|aM^}GCM4z|Yt%voKIwTtyM1iAll!J0~KzcF9%iZha5;Zrk7@1Zo z&}$c5Y0mhe1t!1-FBknZkSeYlPe{gjw(~~k;&}*j`Ec*w(8N3 z{ix#<;o}Bnx%db(h^enO*qUFnLmw6NFS8`mBV0d4{qPvAbRRnE3;BI;@W<;FWAt-9 zdVD2o-r#o$mHJm!-A^HCaKn;|%uTExzY-h4AF~SY*d;klwGr0Kjz}sho0KrNdY@5( z(brRN!}t=ORVt@cqYS{M>cG8wbrO|?gId7holMkuth^>SzS~GWLq1Rz@E;O3qHNh; z+bVsDBl&nC6VcGAw5w=M>+D1F1m~yF^cTwcK+!F~+N1DtHXlfGSOZtlOC)|Im>sfMh}YWPns&q2 zay<3gmI?CV095=e%56Ox5&wqB{!5Iml5&#e3((0*Bjt{(#Q^Q01l!>x%36*Goaz^F`{q^nd&cSEL_U6Q#e0vljy}0;n(% zG)Fqc?%Wcz;@_;<;$e4dhQX7&B25^u{K}3gA5D}l#YoRZ-^kx6C)%%T$5Xfy^Ix0j zefV#FdnA~fwoMXRN9+^b!}_`SvFe#PN?oDzb?Tdb2-+ez2$FwmCLBPkba~aVQcY5^h3Qse*wU!3cHqHq=~3bPZM? zoz3P}HcK3g#z~;@W$sQFV4+~?Jo#7c{J&xAV-V~;cXfBaS>vdO6-UOwIOryScaXog z6L`>!Jqz0$i0fjZ;j;|kQFF(0T8}oCkhZ0jyS@dHcpevj`!rS8kJ{BrpGH|4;3919 z#qEELlDG~DN(LP)jv?=fd>z80AF*eVHBuYGP7)WV&Et3 z?4F1W)khQCYL#NnPpsb=e&GD8v+X}?tQh`O9(0{ww6S9gS8O4CKtD2`+dCQj{+h|s z+2=Rt(4*P!%wxH*uxO)pb-F+s#@yOf*`;V(+;e;UD3DvXV}B(g0>5Z2ho{7PnS+lN#9C3#!6&*q-b`U}^NVq>tCZ-qCMJPwaqWA;Rw2^)$bA5y^jVUu>vR z;8M>Gk7YBzJdRLIJ;bbFu~H=gsz?=P7CEb1d@#Ub0BhPuYOUMxLsFod>=Wi#`ObXx zjD@}t1)K$c&C0Z8E42LcN3*-Rf|IU!&OTTM#bhE%Hx5x0Ex*)QRi(_@tBqyFrt1Od zUw52yo?)q;OqoDlhXzmS6e}dS+R4H$7JwK=l?Vyt<;zLH(u3qKg8pfe@W5}KBiF&D ze%F|2`W*YSvRFz7uNE>`qX3lEYbKZ8duu$t1VXmH>mczWKJW7iIMv6j@Lr$gl0B z>vm{oTj%4Qc&8|H^;RV_fsug@8sP(=GJ9}`m)avAo~@fbeDAHg-#afd%;+8A7~SJL z>mO@^6nS>^9Gm*XVoT&l8$e1CgW0wgGTpNKqs`Dmxqh5n#t#^)(V3=_Be)H0+0Bc9 zUx6lE3z=`s<)Ngcrld3)34k6eF1E?@t$H90A|*q@oZ!KtV-?b+$eKpBJfVQY$>T~TOZFwxu-gG;I})SxUjZ` ziiRd-n}3RuJ*nsBWo^?ubK!>IZNeka4P5!8ixw0lE0@$5cH=tp&gAy6@Z?b9(bHZ zTu1}(e6v{J1HPZNbF7wTR!et(T)RqubZ5{o@7xdX>0!p$B1iZRO5mk?1NIJ+jvRhJ z?Ld`MC~{-+cSgAxE?9$^5Dao2s+e^Z6!cV?eg(|2=-O$<_GA*)Fpms0JUg*Rm>u$259G@vE! zUh(bWDR!dWK{#kXYJLG-VXb2cV|hxKVrTplcM2MF0al>Es4*B@hxAj(Bp@v!)r$NMwma2R@Y$FS?uD*dt7vfq(IBQ zLG1+OG3NdaTPUv3{s;ld$85>1JI_)?-rd{M{At?$D+>`(>T7HP8>pXRpQJdcK^Cq? z`Sg#whir0U#X4f_H2keB+vYaMsWm!jw$RK4@dk(sE8yEry%RF>ku!>TxM zkjoV4r1?OmZ8U7x^WUS?m3nv~`#iC@HDcsfpE5yVKpe>Br?f z8QT78)=AAoa(&nDx4#8q(YFu%n8RIDo+;7%Kt3TP0WF+6F#LSgK3H8neZ97Yc9fs7 z!z{s`@EBm{EnyT$!lJDFle#YkxkX^<)JIC9JoRmo262YW=I!wHzTWvB2prvdtKrih zV0ksm8KbINTY_zr!2^9kZq%T>j2bs z4bEqOX(A@RO7-J2c2sh@zVh!l1`*=_qcM0c^71?Gn`_Yh9wn`62BMP1No-`#e|N8Z+;u8~ z2kF${8xrlP{2DqM)Tix3Yn0HM<5xG&305o268FOgk?qO(FXu?yhvp-90AjsK%VOzq z8VSX6V$eK4$y(PiY#&N5 zC6`{0hCHjmxZuskEGIwv6QQnG4vDE}8+u6kV=%vLUTd$GMN%==i8a;@ zTUIVBB0rM7Eyr=g2t`;wK}N)$&G_kM+}08FY$fa&glB?^gM>9ESjjVKX^;&-{KeU$ zzVO_3wzY9;-Yar~e3MFu(jQDf!OjAeA|{_ey{jcoB=$#5DV4F9VrUqQR*1rzdZ8TL z^Y8;f(ZG>LF@NYRaL(;{EOh8opW|}Gu(&q%(=Z&`q8`pm@QN6V_a5ytzkN@2!-xyg z0BEOj?xh_KvcUqFJ@{iZ*HJ7E(2cNGdv2t@Hpp%V+$oMY{kyXzo1qJzwMig7Z1a1?ODE-3-G7_BXe(*Dw1%@@K zqLr|L#pXD`L>RX>@c98Pu9Y|fdVdnPSk}yBz{x`V)CC0`Tz?#Csl{nKg%zw$296Q5TUE(FrDS&D_&ZN7hge!u&K*)Qs6A~L186k+%Q__yeW&o zW9J=^KRj&X2q@g~i)FD!$9+Rd=ow?eNs0^DXQARKD!QnDaBeoL%|JD_yjzu|-~Edq z+Osx`l?BRdFX4!R2M0{|aisSzat!iA+H_fSvsF!T<#B!XUBQ~kzcI@3K}TsNC0yn^ zVe{HxiKRGwiciv67%niBk_zUYy*3FBZ1@iBCx5;{)*m`GHe|$V5&29Ud5-k{$SqB- z<7zp5ew(#3>tvl|*Vb8SFdyEPo=Ouz0+GH`-= z31Mb^*S(JJ-fZV}K63s=cBe=__b$ow5zCXu1DzO$sgpxbAyM7#VA8ufP0N#nVlHxe zj+7vBG3Q*;^rO3;~j~8+ymWRsN;L? zHBJ+>o>(qoipe~Xf_4&83MwA6HS_)hFFn)@C1s36TeiQAvXdM5nk_p0Vdamaf5zUA zfyZf$EJ0vjqLI`R3G0VgJO&0Q+B_AfGmgSUN9$6*ett*ZVylGrbI`m7DxQHn?<&J@ zZ(BE=Kk&@4A=$_P-p5liKx~TI8>+?H@-MwzEJl0k7Ig)q>$t5E2tO}8hwoLOn^4<( zVWK}5g)AFB7(r;JL1aJX@ImFt0T;=*H^M!kql>DyXlK71v1a4 zWwIcR_|p19x`QMI1^AjdzHM;O)wE6JE7W~3@b4|SoNpX#zXnL_(1|e|*s&NfwF760 ziBwT9oE=}&rcf~_1B5fJneLl0A{a@_Yo0p9#J{Er+JivqAYS~N0~&Mr05X!-wlS$3 zbjUei-|dlvB8kZMrp;u-nt4gUm^&qzedA&)XfjCk{q<0|z^ET|F72`c^$h~CNxO}W43 zvXZ}d-(OOc*9)IEF|>fCm{N2;7b3=M54 z6{5wol{9P0@;Gc^W8Y~>nZ^ELv9)>PbPL`f;b$fJeH|&0_+fnhmjcHv6wkf=1Pado^Y;5~@EiHDtuK7sZ9gcDC1wC&I zn}@2tyM8w6{-ug!(Ok_>G>^?Vq_&r&^@SA`vyZezdlj6=W?1IEzvI3;>CS)Kvl&H2opM{1vFvr!-bzx49zoRgDt{S?Su zzSxc0>K;O0B% z+dTFhefnxwy6;>pO(V}-tajE;8HlW{b>BZ}KNU<@2vxrwFad;#%!s_oa!~_KBOjXb zWmh5d&p}@ek|jz6ShO7@$a^Qqa;P2Nej)ZT`_1wIi3n0!84%MvY;LV4Gavp`S%&}c4w-o*pXsa; zk3;K@->8$YDPQQ7wE+bwoO54`^mNy-;m*VA+EWlJtj?($Ld51i4&VR6^sGD|D<7h2 zJ#0n5HeiPi78l^**1i2+X!utV4zjdZ0*7WQ?Jphf8&&rF1aTS00Gn*dH}(!vLGL~n z_}FWR>3nJTDusBF3yb?1jZfqW9TN5jD1q!|I~Ko}cKv6E>5M!_wfgq@WK~t871M+S z_LgW#@oZ){7EKCN|HQJKWNK*OE@T6`S#F*dD%ulspPvXzr46Xzp!zt;;D*%-B&b0N z!`U1uxJ#yA+KFbzQTc>3SQ+MJmNQ*$q7>nHY5_{%KSU(+p@R9f$nuyPcPtYjZ`ubp~s7AhFILCX7dGykpT!fXh@V*amaT@Rn(is%)o zBXlDTJ2WTzc;2-}k&@UK6xrXc(#H>oqFgCzzshatyb%c+5pr$>60%k^l=DTZS?QKxi%h`9|jBXop?c<4-PP;#cwG>N0NXeJ^XO3*5hX zckirc3kk0=9U7c0{bUWa$y~<)KDX1s#^zq{?R>;eiPStgdwA+vYifLUjLd79Se_*A z?g9;-yGgNhw~lNA1-B0?ruZJWzoASyDV95ze>jfrOx2GC=O5TRp-CwHSz9*w5CM*! zpZl)?Mca9H)`tOM#De>P+z+0vXOn(|nKarFxPq*FI4zx(q7}s@-;5d5lpqbvLpZn{ zq_&maY_|5TTn`7qd}l1D?41H}Uxx6D`Zp{wKoqyz;ouvV+ccN-$X zy^50DtJ_`@&p(`uH7O8*q|`|4_2<-`25TnX4>&J@%z=mH6vhr5Q-sYg4I-~!bdD&_ z-;T&)bAglH!YEI>??QCskmJ2!Yy%a^F#fL`Migo z>W$YsY$5J|P}BUf2ddo7zQgtx?-bq3UH$qc3IZ)#hT{qoEF0RNv9R8BR-fMNM^K3S z-$IFe?{VMvSkTqc^nHJln8w{6+1fgo*BE-o#T7v?+8Lvfjygx2=`9!VE#ZEQUOkz= z-s}hnwz#JP-gkuTE{bnGe^q;ilOCbnix?}pK1w`M!2)uw9&0|b1O0SVf;CRq)Fse< z1X;%3Z{oO%y!&@%D{y-)S-aM}Pu^7vo!edHE$sCQ zA~Mu(`*I8)5D-=lpJxfT6HvNn_BK!K{;;sLrg*sDTj6frX|`5B=QF6S>foAd-M;!J zA$c-_ITH%t1zu{rKT7uJ+dUTd>dc}A(TUCc;%XTTC0R4FH;=rtyMKmg`IlmCdANMN z=oVJM=F4WKhl>^S&;W?H zpSk$R01r*J`*lbh?M)KT+oP<`yDlf!BM zsB&#OKV>c2KST@JI3YlzaRzIbh;%zSl~DkZjIN6vuGl z+ln^6o`h+(1He(>P3G3p4o4Ac&Xav6b6hWIaSfg56uRdTuyL(+>*YcJL(VY2xLlJy zoo~?bNVI`%3OzV)JI`OM$v}(no19dh^gQvQX|Z#ySkuhqCN39<*o9vbP}w-Sf40JC z!JF}=URRM0$|3+QKdWKQ$hJlSqZrHcYsFk~;xKU5=q z|FGwZ(a464)E|9UM6KtRyoXU8+dOujTQ@v$lT7+5e}JmRET=e{v8T=xOeznTz!d?W z&YhpuyIc2oK@9TnI8Pk-yz|N`wlzun;XAyz$kgiAc9hc9;E?z8QXJXLTGH5jmEgA) z;$FdLs`e%MiZ2#Fy$sjVNrW!Vl^ANySOI-^^C0qDrk=YqTG%>}x$1U5rVX54ysVAn z(Cp%xC7J>wNafSi*<_#n`>*)SLFltillflj$}c6*V)AJF1CF7BC$s0PMcwbQtF3qN z-Rn>OZ|?+Wmu*HMlJ-mF36{VLuRO$dZ>2#We$Q)#3ETlbqXV3(`X3?}=q@S|oE^_| zafOEor|UmyjfM4loJJDqqH6fZpdIBF36ySOki7V;t1jz_BUFCFVs&P{>G=HC##%z{ zHb$*Eu69!b5jKT;lMNy=NTq)H<$h$Bd}_~RQJO|=uUsWXC&roANc{h`cjfPFW?#IW zqSh9*m9|qF+f>7heHl?jgo@EvCWz8ntEHAmV`7=qs1Yp_t)+q@4WpJyD3V5Is1^-H zETaZhEv;C-BvHG0wex(xnVCP~JMZ)U^4{m%_nv$1y`S^kbMJFL56`>8O79}Ec1Uo3 ztH=JdWCPtah9%$R!>WJe^}=qG`FEo)CkN55d0bSC^;XX`Pk*4G67m&ZQ6u$tN5 zBR`kb=}5OO*wBoTjBocD7}MX{96JjHi7X7$q)HdSV?iB-V{%ci<(8uA7%XxIJ(lpMKujsXJF8}%Lr_~u zSAuDSGLxEa-Fb7AZrS*AS5{Ety$$MGLio+@Ezv8IL*9o)^?N4vwSqJk1vX)QCUp+J3eU!nsY)IEj zg@TQ$`MEmFP}-P;{;+cnBw=j0+Q;uy%5hEI^{V+)JD9EUd0BVO!FFQw_J#132Xq>S zusvk``CQ~fMjz!4juE^vOXtxA=WPCCTD8Gn!Beo@CV;Pr0vtwinl8m-DpCV!%oxN;P=Z3l zwNW!I57ut4wM+0MmDZAVPQIh;g-}dW0ds{CU2yUOD z(9C%j{v#qHr)^a1?T}73;=ELlOK3Hwvn9p|ex@Ps+%0(iS&A>aL^`HFuGljQt>A1} zewXys$pDoViEMm>#;V^^??aMHeqk}SqGVP&jfaop+YUF=$-3q25JYO(VNN>{V42=? zI;PoQ;Vo)equd7+2)kyyt!NZ8%@I{Dm-<2@T>wTdO+h!^dAbC`#c4%0@8*N3)NAI! ziAxzvfnDty!F?$pH=EV#rmNpU?iX-*iq-51&w>qo6ntDMH(xCP_|gi-OOqa_^(>N{xM4@?0s zk@s1zyPmRPaGMl`190t@R5foV$Un0Sb8vJt)Bll^63c|Au0HAX2l5 zSR_Zp%S+O>6r_Cx)5#;nsb;lQ3U;Hr6OIV|(8@1)BXVt%CyENU@6;aLDTF@zfQ^mo z=!|7QPDDfJ4Q6G_8L#|b?GNK0n+&M|xj6T|W!tIuCv3MUb&Upt@&5&fYjdp^4IFqkqTm5xReW6teYZ=#USxx(|olX&IXnwj$prp^@fWoD=c+92Ix}GRhKuTd-95XI(e9eK4W6iNtc7xO2Rf0l zBXup_?7U3Cl!i|Ucd3=N3s&SX+fpNKE?-BIdlZODc+@YW186DnU6<*v<{pi#Xz!qE zgXViV>})6T-Y$`n4(v$9V%A=aDl+C%sbLkD{PG|llFX7?ex&oUD61oeg?IGsCeK!$ zbW|y~L(W7q$%R?kUR+WwePK|ANsYjcovwms3s(0eV$A9w10v?FdW4w^w&FUkNgz^$iUpOgsU$kBqZ z%@^<2{HzvQ(=u?NHBE<|R%(KMbea)Ua8q!;u5n9(5k5NiNZulnM(_jt5izlI_OSa* z2J}3SKT>RNww4YpcQscnHq=#S=Q!sGh?PHwsRDfEX%cODI!>@`~0#JPGi(7{{ptVNrxcl&x`q zHOt@3JZRH)PXtymnJ|U7;`V`u!e&mrgxRgP85-=STYkSKZzpT_Bn(cf;j~x~$-Wu+ zaJUNVVQ(ESpyY%LL!mtxK29mtd~<9>9T0~-=%jzsFZtCj*~G>nJJ|-u<&=p2vcYDn z&l=W$m8$@V!({E{qWo7~c6&Hca(s_`Dfvtv3`TIVfJ6l^?yVm_J4Q^bpuF z^mQY_GD|`^`s**XViNXwqp+$p(@wGTLd+Y|a$H|j6AOZMn9l0l=?k~yPN*OT>r>>%O=0(5%mwO#u}23izG$Hz#T&iOldch&9to13_Aoo=_(~c=nx=O%ZxZ8prJ{P(tD&s zC{a;5L}{Uev;YAjga9D~-krIl^R9J2yz73rcm3DRS}Y`}UVV-cSC%uCL9# z@5DYXE-r4w)jtfmxb{nMaqT(%({6ajIP}dN{QA-BBEtA5cm@7s_XPgt^S*q`+sMtq z+xL#AJr~l|&Bb2Q%huE0-qq`#n>TGIQIm`7S1!aK7mWRq=7%sZZO}nVn``qrvdwm) z0YB`0{`}7%?Vo;4t$f{?T6w4EA-c*X$f;*wwUED8v!IM|u~Xo2hW2>9k9*w^i7#&k$T;WzXV5JUG}#!Eu<<@0!hr^4wX@x>A2_U{(#@^>xYav5BBeCpZ;~eZ~x}vI-`8S{=dIojr|z&-zVLFc=&(viPv~~ z|9~gogMzvH_PVWg6kaQVK|;ohGc!$_yh_t4VzJ22PbJL=nRWQAAHN;Q#kKl*{g6Vu zvj1)CfVr2tLRyu#A55i2XgZ;XK7W4kxFI%>#!L6yo{tHV+4bK^*U$4N$xD!H(B`=k z*K9m)S5=-@V9aR+_wyM_iAy>2-}~>-S8uL84dZ+OGt#ExY!h=sB%AZe+SB-sAOp0I zp(~0OmD&E^@#i1Rw{4EFCZDPk-1Ssdt<82|OsGFAy65Yj+~WK*6oXluoESr`J7XpO%g$?Zf#)6d1#Du>!pf%}?6TntMM zKGjK(yEi$1;JD`YuO^tUF{Uop;2JB!#b?kcgQiRqv5eY+&FgXB=k5~)*4V*^`?Go{ zOKo$bL{4c(=(@PL8@6oA_esq9_!`EyvBRS_g z*z}rw*$mMPaVaU4<5NQN3kxoeE+{=O9b4qD)!7>SvB~J{*6;H=T_l z)yXMwqfEQ*>>Ht0S5**jJvpcDY~6TSQH1Blhq-6M<&=(hFi_POTY6&HM%Fhy`u>WJ zO0TRGnX*5cQ#g+k;rreBjs)ta@ObX`!P-c9C3{|2&BM|JYuENtCe;2sGlTQVo|8=? z)rGZ63Xgb25fUxA2V3ti>!5eXo{gF(_BDsb8`1Cb?A&ApT>E^!HoKqAVDmT!BWfa!68FjhTWJ6(QoQRd=qyMKH)1W03ZE zwN)!{vPPu&v1B;2D`a!wLL%$D#`@SJ=Cl$qo`MUhYpin_EVuvo^k~)g7K`5Q7A$9K zg*MUL{K7-QZ8LFnI&NFt)Fy~=GJAbYLR_L3f)@rccJ#( zr0Hh~sGXze^1tX0>!rNTGCjJvx#toJg{s?P;3=^duCwK}m6gi%kGXXm9UT>&`<^#6 zG>9OKjEr0>zdRoDrxx@R(A3vwn9q-Et@qU|uKTX^)nx`>PO(y={A~OkpxpfediKQN zSzppL%Gpbo8>jnZ%9tN7h0#~`4_|8LFPC4%=v55SLqC`K&EJ6d!EH{*tCwZF)%OeZ zkF0GpV_3TmSG%BG9d&dp0ya!yMG-C6!o2$X56jwbj%_Z4Y)TEDSQ~oh(;%J};Hrl4 z#{C#G8vO2quA0Nu6N!V?F&CyHA|e78y>P7>YeQXS3*ANr?IxyHF(o8TH4~HMcT45v z<>xFbf3Fw~4sa#1S4+#v1aF+25)qe@m<pbdVX89#e##)YZIV}%Pv3k+n00k)=+ zP)KH1pOuojhApk|ohR3Pyxbft)TxK?xG`Yeym$42JqEe%N?nbujW{bgo1bB;)dKl$ zfEEzzJyMaH8bn;}#EzGim(j=q8KRdRU8w9$meJaSwpy*HPm68V0z;_%qYC8}ta2ra zo^Zcpx_ZE8!sfkcIZW`!SP_KF_ESrr)pbi5Tf?VeVX}87?+1=Y>UU^u&J^g7^(Itpoh1RxV2IE+!N+m zli6%AotsxUCsUZ7E@G6W-@aEYiId4Gi`6vEzKriF+5Jxp%q!0ydT6t)nfC}4>Ys=B zZVvXlc-O}^w3)v-T`^L9Cb2>h9iFTnd|lI%xuQu0A$!E;%c`s!W3zY=;PDH(^DZ`@XR0jl6=1QKz}}^w5}r0kz`0!@WbS$>q)E zFCT|5zKl!O(8Ozb1qRD|-2uKtf2WlEJRx^EaEwsBdg9^M%wQI!vgpzB+GvPKRKtO` zYU=>Y24Rz^@$uAiHWdmLLu|{)gXJbiGcZ()Hf1yFiv7&n+~~NN^t#t71{xJoO2Z7@ zUe|#Umrb&kN3dd#!gQXN|2Z0Fc+xU(;AOXQ9MUMrHkk1>tZHG4Vl+tnO*pV?uS(GJ z*XWod$exDBo9l(hWfmqcpgZvWpYN*fHhj>H|6Ms|D#Ov)wf&)J;&MpjZ7#~6fztLSjiYZHnX{%Qy^PjiB1rmE^Wj3)0D z{|>tD*9AN-Ozr5IVunU0B_6u8VZXSaf0?Qsn_ioCij!O2)R7nUaq8+gX2+%e;sO-} z@;G|vhJqQ*>bxGH!zJ&NlDLnuqYp?O_j`Lr~<~F+wQf3k+vM==T`5Nm9esT~;jex}JSUvZk!f`dB|RYui8dta8A@RF`M-?8HBj%WT5R z%a=Q>kL4!Gq3!h5TyJfC$!w&r%LObRsm-YqCrJ%P?_jqW-LS@HpyrIopOU!I;Rvkw z#GWadru)rnI$`v&q!`FD)5a#z(+Xk{Ev(VsMU5hbu+-r7d!`kmTPF6L`#T*W^wQVz zcNvtT3n?L-TRH&0hbOzOGR?{Ji+GyX)W^o@HTq4;=Uph-#q5M6ITyRF@fM?EpRQH) zia;-Hhg4YzeM?T({{2|Z8&93!rB9FxD=2^NedM);NRwN5d6L-QXN<1)U z^Ma?=(J4Y$>kJX&Z03~PDmyVLgP~EykhVd#Bari*`v;P2G;5Skg|4(>y0oXdOp_Cc zo4t?BYH|yymYiTPu=FrA9~khW9d0dgnkauJFeJ^Jta@53cxFCuB37(=SKb;$g}ZRJ zhSx2qU8ZVsrHDB^WP-8Vn$s1~_&rNVNj+ryUCA< g;?}4qMF{0?J`%gRATG8NaZ4XQm+>i-+K|awm9|?#YBx!sj@*<{fv2Axf1X}~ z@^rf}#h3ML(VzXPE3Y_kxHoXDSX^8}qUBkX_Sy;KMbrMOD^YgC(e=x%E^&3&_R(3d)g&kFl1C@YYeaOU|9ihJkAgudXz_p3)k2T7ww;_ z9%Z`%UBimd0!CS@Ck*wm_@D(8lSv90q1Lsuv^*s5`Oec`EIipSL0n@rB0oG2<`9#> zwbd%C!EM^3Fs}uRtSJUEoD?9Xp*gz6>_T)NC8$sJ-KnDG9A#EmAbkbBSdXM9`M0SL zlhj=7A_R>Fk5(?Uo5Ts=IAKp&)4~alRJ}p5+O*>)38;>CZ7Ey|ATa`ChJf*NR_s-n z-e&ghbad@Mnoz@jz`M*auzaqRq!5h1Fr`AmlaeT8%31P?0bu5kKP~m#z@ht+64x|W zBccpp5rkARo7I0u+E>s+7^f)Hr4yl)&BNMLTm8u_pWRB*8n%|feiS+8RDGDu))g_U zckO4TlA=j$R=ruVgQ@Q&XV zlH(~lL9PKZDDQ%zwl)N?oYOsG;ItYKx`*IrVzsp**#$wOCbOnqrM|s2YTzqaVvq9T zpj(m#`VZ6VRplX zl`GFYn0Ykym-eU%pK#(vv3M1SJLc*{w8psw$|I0uT1Aqtx4HS?ay(7F`>3n|78&Q- z5;`g?8RGpV-Sxs$kd-a)U=`ctua=%0l^ie&VGoB^qZ@*|R1Pn{Rx)UZgB5Jn-{se8 zPE0iR_|#gL-La^k&b8+=QG|yrQH?xvMZ}tXWs0ug3y~bRdmS(lSp~JHAOj^$G;(ti zzi0QW-2DDfSCTY^M%-pu`n9~QSuHI>U`N}nVz!xVth1Zzf=qd)4Ms|9`{m|J3Z)nZ z%UUkTn3Dn#o|}~y;$?%~BO?Zb3W|zk)crTL}G+l)kHbvSPAF0#^h{gsuMjr(%8adh0| zqF5|?zqnZQ{VP-^3fPRv){H5KCwXLqO z?h46yiu1KBPi(#=kvgzv!Dn6{sn7RfPEas1M9U3LR`r{i?I<%hHjdt}FEl(+xl_h% zslhe*ol>`g!{RviFu|NA|HkHWuqRoL+3c3mPNNibXpL_EadWZPWdlToM#L;CQhoVq zLP7#oB+lA@Rulb4VNMPLJPCZr(=Z;K+n$&Vlbmw}i%VHG={4k~DbcCg2>iJM)ux#5 zm@Z%)ksZ-u8@gt28H2d#=G>IIktxI?yNsmhF~a$bjp89aR_{7Qc6DmnkPO#|z}&G% zW_z@~*$PPVU3s&WQ+TfRDcYi>pa@yfi<>`|E-5v4ATUCxS1Tld!B@q8_tET)ovrCl zYZk&$lZp+#M84cM*a``ETsM~6_}V`RR>SSi9!A#S1f!8#?H2z`)uq60M8zbiU}A#eEJ! zT0YlJ3q+;&=J>jfChgZhk!;)8J^i5nY{{M0)t&zObl$ajLNx|u1S!;0Bz$2+At zQa>l7Ag{~Y!{f&89%Jvn($2Q3(Jo;63pdt~K>V!kM@=%1CI%2kj#|i;mPlRa3dwzjYUBV zg^jW3+Qpfx(~=|4VLgZ{N06zJs;VOdT@u2qu`e``15Yfs5^QBXyj}1+1~f2^renz-eFfZ- z8V!r{Ki9JQQ7BbfYvYK=T|gX-P|ZCH$9-Rs9F2l#uSYi?PahDv-tQtPsNs3OkT6-P zi&OTF+_3;dZ5tkQgg3*XkjU$q zDN$nFdRWks$foG(b=vuwU$!+ad1nEZ)Y;1YCsXV2%YQ0;AxqehE<8_g!7BS?;F{%FOjmNR2 z;AOx=Fq;N5*ZPMptKDr~BU!&N;V)nC7-~URuL?GKIXMn?sm^UNINWnsfszT3v!-68 z9;sEWm^hcv+1<%Ju*IC9_~N&@9u;d<``$1gTpQYpS;|cre&bsKYOj#Y(J;%!P$PxUje9mWv*`KO(`VPR{K$$74B-*qSA#v>A~KsO4_mpMrx_eTU0CTt9mqDqSkc-uY3ag_O-YQpfA>te1eOIqE& zO_LNbvT}p@PLSR;(93shgw4C#XQXwQo9|W`iK5x*JX)tg?M2s(K0YYu|0M6b+cM_v z`Nyu9xWXI*ltn0WJHCj~c3Z5rQLH zh~m5KlbQ}>kB2HK)gOODDiMFV(S?;zo znuH(1${8Gg@psyu)f2{2Qc`oP>R5qKUMI9tPnR6apY=(}ecB0*MNIi>ME*cuRm2tU z1xr%{$+;SKx$#99Y$q3$Njb;UDn=Z_Du?kVl zcb#={2fys`u8Vk|^4)(OyULk|MDu~=rp+D>Evi|X-&-}6LLn@KbX6TT1iTKV6kZ$D zxtMU&UbJc^S|*-3(^=>;W&csdcc4k6If~>%9^_jV3Me%}sV*=R#PL24j{wdPD)9a?tCnk?E%0e3qULzx`l#@FpN?hrMU+4cm96FsO zxK>qDT4^vH;@;6xLm!{;T*|Sf(^)tYpt%+6=~JwM4cZB2Dh@xq;&-!f)aNZ}Hr1$M za&?c*Rj<~mTH%GQDo=yY#!w~i zEHRxP#;es)UqS&)G|zVzm1Pn$mC%|sRnAHwjU}`MPP%jz*XER+6{)Qr#*y|O-knuk zBhp^5z&g^ob?MW_oJ#loi*a{o69EJ0)t(!>=+h;!d`s*NNOYLlV z&C674PfD4|B{`Q#K8 z)Z3mbR$poxh>kwOF(kca`6h~iez+1)cOoaOEluL`q*SEpo$_RTmmV9(#!a?Ugp#3X zD7W?(HwTxk9R{bg<#?w*ATD`*e1_n&G>Xr%>3cq~b+l@JekmvSOnan*lSXS8a_@Kxd{?jT$*?WQe_9?0S;K{@gqAg2ukm?cQA5N#f`kF@1rA zFa!Rmkd5ZU%)~rWTe?h{idV}Gj`d*ik{M%O_WC5p5jC|AbS|u(9@^Y|Kq+xzmmiq7 zdBHi4gOu}^snx13!ZTh2*U2xXgJzOA?qh#VnRsJFLA$VxxAVZD+HzL_FFHK2?6zJ< zimEIvh`j_So8C(nh!VqD#fhTk)-d6s&9w$nq-RD~kQ*|W z=pT8KqinR6@6Metmj(G*Gn=%RPbS@FG59XC^)b}R3SX;$o;$@HVxjlT1%K-W=xEA* z%{DYNObXK%jDnvo+xgYZ-ar<`i-3MAC2>tk+0pbm^Fe=rbpTIW|50O2kc=x}T$MNU z<`0)@7-&{2a>x~ev);VmCrU&*e+awB0pCU?oxr8bJtuaJn^gbMF`<2+DI7vlj&g<#DID#rxiX!Dndm>f3}&D{7SapHrdoca zHjT8kBDoeqNoZ=rrmbCjH27{|rMn@vqvK7a)UBv(T6w>;8V%}D%uNQdHFQ*6fny-? z;(GZ~^FiK*Z24cE!euA zjWp{vep38%Qr+50;I=7!xi!@0+|1@SV-Q(VR3{T6Z)?c$6bR*R!z0*j*4X~4*+L|t zTyVyVz+9wwuI@dxymVF{ieU(BM;T+mrkymztLPnG4Wh;hobQpYe5>i4_!o zD7{F7UT5bfuU17$Us0L(S;^+At}D|Z8blFWjNX3cq%bZCY6-mxTg^!Fw2fPGa>cwK zP7Gm!L6E6c(#}oEk>_Uj$;1Iq$=P}vym##S%*+fs$bTxvbQ-@khhO!d4_X_J3t^K( z7B)5xS)*cufq&J4FQ7@*H8*qaA&A^S>d|% z&7?z*SQ!~*8Ym@nh$hsV;Q!lu7bG((9~wI_>xikzKS~ zHO~FTHS7g9T6sZc=IK$O#hn_ty`rl^g{?4T? z>AI62KYj!URQ1(FWMxE4^(UBJCwa$I@+yUoM)De{dIm;Xv0ZzsaMw_0N=CqO@<8ur)K!)K zH5e&i#2lYiGkn<8qM~BHsJyP6qo3V|i3&kysFI}{8yhvWAX+OQGU)}Kq@^{{7-@jP zV0!U3I2EsHyXm(0{u+!Ic|A;ua0a*0optce$8QhAB~TbK^Gf#ZmvL@4zf05YiE;L= zu^DM;r$AA(UT1;rp3yM}CsnS<}MFkjy;dMxMN);`DT) zTZd%D5LN-zyP{g2n)(~Bwcnk>+SLJ$-uu;b-?x+BzWC!h(;lifNi3ZC3n&Tjpv7yR zwwsk|CQ=iN?Jel9rT(hF3e~|8MxpPN^!BoJlt@fWOx4C*9(`o3PH8`{RNGLMS4l8? zqqMx-q3QWaJ~bcb4pnNt@y(k;<1IYl;oPXMK7s}qFjj*J=KLjhsB@QY9sPd&FFJ62 z@P#Bt*Jq7F2?wmFT&uU4m#lsWef{E;w$ESDzNUtT*c_uQhq>;Y&{w%ymi+v^(|NvZ z{3WaJEn#mDrLAA*{q~vgTOjy;s<~Z@M`lu+Aej%%4p?zs}e6CX+`JrysvVV0+6oLgRUq z)bMCZ*>`Lc=zu5P=u65Nj1tMaS)lqGK|)Dh-VT~?{%Jy)Q_{bNm9LN&I%E|yI5^lj z)cMkm{C_(ei*AoEyJvy5d-rgcS(WG19ll$x_wF^d#GEa;{qCVibN*#m5>|AfMy1}! ztHT50$&HGx(6G}5$1NT>qm=R51BFd@U5J+Nja2?%@?FTS)OJD}-`f{s4|XM=?13(% z)?AZ3g6cuxLI=r#*y`zS;(VoEp1wZz!120Y+a<#tU1zB+2MY*gM#XoS@emB(M&|yb zi`V(ae!b^B+hpZ6N1xBlOj0hCIJGCnzVCiL6+ebX7nqghhL8@dMqBF+!H@gL^Wn?zqFKbRxd@yC|m$Sc|LN*K+4{T6sNLyV`k6 z>*AB|;WYNUQDFA|Z?^)!4{H4%nri+#_Wxlw&i}_JnhuZ;53R;1F&IbwyYl%5H4}8A zL=(pQe{$#K|A6KF-;n+PrXThHl~FBR`8PGc&1=Mp>KK}u#)z9&q&?j>L>^lcQ`8d+Eb zJURQr?GVAD3sX4uJkkme9Zd8Aa$PyugGXcK`c1rbvPjiRrw;Tjd0n6TCu1HADJUq2 z*9h==e1H$T_wZ?Nmk?-ElXD+?tD7M2i0kMY8A-`X@t5$LZfl zDK0hV!E(t+jn!Km8UPJAS!HDkoWb#E6pVwGI#ZvSUs(-Gbuab^2mX#&{wN(R;}$r< z&*O2KYaV|}F?+KIA6!O7-?(vu)2^kPtXkGsiQ8JqvKpP&S6h%5R^&wP{fC(8c%hoHsOR7=x{G>8){lQW50;&EZkD)iG)7nnoGh#)x)P;)aP; z5bJF{k5($y-c1 zg+khzCly2Qp>yAxlf?Cp(#wm!#Ok-EMLH-HRga@0SkT=$jxje=E92p#K;a01F@Pt(``Eb8flW3e}aidoqHiWV;+Xqu7 zucSmdX4pwKEhMBvlQkd6$g^qZ z%=hZ*sxD4bgOfny96Qt1S@R{##*ocMb@oaZr!vf;@mH{#OLqZ3uJQdR?u4FxzB#E$gt=NlOg?$(@ybgg#3lq$dqo|ipeg(S_;F&CT^}lWCk>Zj~ktj;xjo-5Klc?d9}$GN+_N z;xC6C%Ye+YbI-vxGh}iMPteRI&cKrUs=O%EIyM`I*vV&d9Zh>Qzdi_DEy1;S8E7R} z)GoL%hbWqHYKxVplt%n)v6Gv05~&d`E!3!=qOO8t4N;a0+=9;f4tZ#oJNILu%3iZt zhHuZ(WaM=B_MS$Juor!^U{S-GL8xv=`S<3V{WG7{i-el>@i1l^QZq_~PuA{g9jMH; zN@1nZKre@mBu+!FCS>=V+}svU<6^5cQ9aJe$E*S;L$jXXgswrzMi+A_G9)R{l^~Al z%|}3_NY#9OAGpzlTg>&yDnpT{S)<#*LVjZpKyjT$$Z~KYSyh3CAq9B$njsl}zc zh)*JGhd~3`&wP5#vTSTu8ciB>t(HVkD1;knSElyctY3_kw)tnFVAxa}+%}uI?R!kh z5~d5lDOOtuBQnYwSt~|UdxwHq3o3KjY1sK~N^DSk0HqcZHa}-sI<&@0Lc?gs*t9{B=Y{R*Fb4aKjwFx+1TjRk%kU2E3yk`EiCtwf)zP9u~xTM8yy=v z{kK@k%rWEOjO`9q7;!x;kZLj7;!-iZx?SQsx^$zPDcm?(JzINGLehAz;E%h0+*SQV z=(p7DBwwVoKskNIdA;lK(fto=J)S)AOWAek@{#AKkNT#C^A85m0 zHAi6ac>GAnc2I#ug+7G3iKl0=NKVN176E#%drFW7SqsVn2ZL5VYj42#MaRU53JVK| z3#b@&Wf>r&f8$!;sl4#0Wov5-fF27e^^`pli2}W|(Q32h**#UqoaWb9?X&e%7QoJF z9`Eh$KBJ;yM$%;E8yXpfCw{^jo0;WwcN-%NuUvV|IenqOr12#YO}(j?sHjJ)V--RR zu}@5N^l^Id783~=WwrmiS3WSr)cb|t*?&%K9NzSi?7RTn<~@&#hW5%h2P#avTMkIPZ5)6>%@ z*3Ln{2Y`J(1c=6)Hl;90VTWdYN@JzkL%y51sRY@a5!&G<{eNd8}umrpz=v7=Suoo{~ zVnC8WQF{xpb}RVG%D#JDY1%wlj9vq!#CHF$@Aj0r4y)Rx^f>jvR)Uz=*i0VH_4A91 zi`Vq@V%i974sCG!dhSDn3p@87|!#pHiSwZON zbd@@Gtw1VLJ*w$Fwb9briUu6KN9jmzDDv>~lGBXC+Yqhk)9pr$5rU#UK`9+=ZP7hW zG5yXQw3ZLr@XjJKEXtif!y?Z77{;rnaUYytX-*XDH@X184iwpjrlzGOvN2p-!NMmZ zO?(poXUM?Pl+rqzfG)n;+}u1RWn^VlKuHPc_(>cHZ5LYV@iLvnvq@dq(;cotUDJuZ@osT-L*V&K6Ng_@tI=?)vmynK#I?Z=7 z7GUgNXFB49tX*;aQ`-tLc1Em`OEB@f8iF^v@{%^@z}d}Zv$a8nB{UR zUEuKHG=L5xo!E1qZMHW|5$JbAz*M@kH-_AA^*wubAZVMtc0$!VyRdpul|dWbe!}|f z-Vf|QBRzcvl72UwoVG{E@4Tz4D>i+&+Ly!gv2(e)k-}Odw_G71`_tQ%ERHDpLuw0` z#!rloufRiaj`E+&$(p3mq!AliEL!qKeQufzZLq=s^2I0c>{8829QaK3W)P(Nl-x#~ zYj9d2b%zY=Sc}zVPCXJXeQz!Z2d}?QO--G2SC$W0b&iRP6D}L&;u@Q=#1xR9w>uaC zu9a-}Xx+Yv|H5c5wr>SOmj%-4R+N~*O9udEj;kR>Ji zSHa1%FX^A0oy`G=cVcfa%&UD009(aZhKf*7=QHa&3o+$3MZ6YlhO&Ho}4+#nz%l?r+V1c_%luc73*5ZbeJeX zo0-Mmz}V#OM<}UFK?BR@IGf;{NUg0~U%q_NUjwZ`G{_3NJT)+2zH9gHIdDOH_eaLIU`|jpW%c;g(tq%2w3foN2cU}SK9Q&{fvyvXFsQzuT!Id zH87I1KvUfb9!bf`1->H~?RW3qolx`1SA>~45b`Eq&DHkFUqF=jsMS-k7SDLRfh~1& zQumioVW;ga_O+{5Kf!0uCOrCg_uN=zxS-li&`~|GN(ul8s2yrFW7_tznwb8;7rM2xr>pXU*-7t zxJb{@uzR-{v#&#iWEaCnfRmV)IE2IE2BC#jvTf_!>hvSW!Yz$MBCo{zyCNnOF=1m1bT7i416& zbKu_KX3@AN*9z)Vqi~!^(E69q1X=rQY3L)zj?F=!%RTNERB(#+p^X#(r0L|cu(fs4 z+>vZ}=t&Ai3<1hKE(J5qH#I$-8^l^|;BA2DU$0y?$G_e{rA)80Sg5I%mg&RpqwhafY{AV*@`(lmyM9CJOxRndR*Y9^r<IM_NOyS2SP(w z3l$BII$*&8JamO)AfPKx>nHWigH$K-WCdNX8u{?|;WEFay9=X48&1Z8kL=Df#h)I$ z^2Z-DAV^}2dA&PYTLJn_TwDse+AYIAc1|usW(0ce>2D)!ETr!Drt8x)c<0LXs$jpj zutHo$>xS>ymYFA~2<77E&h>D|pZ~V6TA3jtD%#xIs-xk*;-283n3!0r)X$M_Ca@{2 z>-}H*%kI?g&T6UTj3>c62V_hxxb<_8)?+FvDq2_XK>E|a5bd)tkb@!@4pjT%MI0f< zIe~cB);3(R1WCGi_iidQ{^UaCAjhJ@RsZM%QAbjWMg!Z#z<_k+Bo#xSRxz1FwS+5; z^yLP5dU|glv;lo{L&IDHO zm#TdA8U6R!LW_h!A7|(M)rG;V_wO%SLD}VmoWrw?H5wjNA8KXhv*fS>m;2vyb50ZJ z`rHqaQ%{L;4ki7wG<)`w%bji}Nr?%jI8oK4v%S6$?aF#u?ql~M;Uo{p$Ax3lVUcvs zvR_?z^z4;qJ*j}Z{xdQe9or?Ftmb>u(lV*Dvom4%AlF#8_I2jZ5S1K~3H{CZd7o`^iqmvzd9ZU&Lh`@O(61KehpLPq1A6ZpIxQ-iqZ239@H}5q;r3fDZoq2T%i7q; zU-7LMV4wsUS?)GkC}~lyyep2JZBbU5ni$5B>7X zxbcD1VBA~}%?Jf7ogbe#mj>+lhaY};CLQeM<;5TLK=7AeI%fm`&Sk90qdKwa!11iL zHordFw|~Ehxp^+|_O|uAm6t*f66T9rhyN#$L&^)&pvt8QIbkJ=Nin2R+=l!!k z{`li@yw0_25g3f=X6=E42Yoiq4g4;Br9{DP~eX2drcU^1w)RkxVyeDd`D_n;o z`o2{!#0-GSW*Xq6s)q|9ieWB>-Rrpd&L@FkRlNoEW8tUpR4g7BRpl5Ug5Vq8pW^HQ? z1Rrb_ISylnUj8~&pZPP1?GE{A3O)HJf}8#G69%$Q?Fxx7sh{xoZ&+|M|3tVFM-9}{JJh6x4Y;`UwZ)drrBzi29IYBtMaft6 z$~-=zb-V_JH2h1!Bh3O!35 zTWSe!-=43ks^a67@f{6PdSLf|@!&Dvw_n_|350>{7AlSAc0k6$+*~5G{-l%(-9I#MBf8a)!fe(Hu*7t(=QXIk{@toM!Bvins7*%w=TZ zg3W!Zt-t{tD0fM`S!kI9;ue7ge>tDut){5wls(sZ9ne%wO<#bwqQLJXKo44ibG6&3 zre2D=86X$|Ol36mag;YxY7R?^ihle_JW=;_E%*RHe_}*3GBeB1WDgl~Yax|tvaU-j zDUt05f8Z+RrhiUMvL^V_3c*O!;nWtMg?RI~G&TKhy+$RI{H$Qo!ENWKMatK_Tl%`P zV!XCE9KHs!&o==F-~!wq2CqDO?jMg2EcB=}t7;z(p8yx>B0@IzfV6q(Rp10wB935M zHI$w*5x#~%dGU z+GhUoCSdusYfnKLi}dVz8OkFJLWH2>R?CR}tSKjFgzc{ObxYgFnHC^Q3#G{% z-d!KcLk5<#0zh1rjh8e5p$EvJqKEPut@u*g|9CFULZF=kI%J@KDEa)aPcU^EKs z$kKWyo1@TQ{^E6l=NHTW*6M1GgrMEW%?*k*T1HY_9ARy3Eh(f?V2Zasq3r%@Y3tn{ z;coClI7x|f)8K=20U64G{*|G79Dj}v&%fJM$+_G#J6N|8qsjX7gy0G25 z2kKc_z}rvI0sA%Fm!YR*0`iB2uF00GBq6}a?~!05GL zw8@bmf3&Wg+ z0hkSkY_qZYicW@Sz>S0aU6h5|!C_^o_6Y;YBO zOwv3ZW^i^Y&c+8LET*57%@Lm96tr}7^uj{zsS66oI?0Exnmz&i=k3(szda_O{1p@R z0#@fg0|-BJgb1(pSuh08XmW96d9d6-gAwgo%K%Af-|ST8^yU3u=9TVuqFg`~jLi0!+L+wA^IG6wC~OkQ0F{rxa*R!vp~}xc6)PSXRSX2SeXsqc%q4uy@>BQ@ zl5pv}qO&Ohi!ybUH9!Hp$yUBO1cEs@=b?~CvH)AaN#%cV8*+(N2%FKc%wdQi24ldi z0Rmy={rNIT01pW%4^F23?YGpAjd`M=|2XKznRFmySGGksoR2X6^z5@Wpn>w%S?THb zfW0rTt&x|fS`)2^&32vJ?9uI6sOrFqEUE)9uE4U&5SEC(&0YCi!gX^|+KO*Wem zN8G%OuiMBiE-6t6-t+_c%n=cQfIum*>4jF+b3nkg3SD+^-B&HF=|!E9lk0L6c{*(w zuuuktR;M1tgT4@2P@PTvQXh)qczYm4L7C+>HC;s*g7F8#B8q^%D#{%RE-^hjyL9Uy zh6xl%g1}7!_0xmI1@%sz(cH0P2S@ka;A7eacc_`cB6uAks3xJIVFlQuH0&J(gv_qY zT*0pC=gZpK{13)C1QNcyBLNW2*a5vL7ED9~_<9>y%FnB-tHBV+;P`F;ehRUBd3eY`-n;?rVFq-1dU~#0WkOl# z69}Btyh6g<%Lr2)zy%9X^1l1Tap+z%PTEq}&N zgUWBS(i?&iJap)FHLcDd;B%kK#YNc)Px@H<|T$HG7ocr$uTp}srf znR}3%i_4tj{boHpj2@On^`3+30~!(}7UBXlTUp3zH~Ibg!_ zo+f(^3S5UWwucK1ptmRcM%pu{uBoZ1xz3C*7)I2O??qKKe&yy`XaBBZX(>GV#hv4R z%r(X$u$loIvZjSw(T0H4z{;UrQ2g}i2FH7kp$r1$gfr*P&Hrg**XOJV$t4G>DqwVh z$YEI>IQ(y))!VXbIyy0liD&bAB*2Zk{Kp^4yCM>!Uc7h>7R1L7ADT!c+RF+HBcn7R zmB8!J^L=)!jxwI)5G9s>rQlq3L2tQBHRUELC%O=?DxOMtj><323(qagCe zi2-7CuaV~GI2<0@7$Kvm4BNUZ3vgmFG&B^*u4Qq-!-qe>V2jJk8w2_GZC2gERiO0c z1%Z_whO|6a(myn3De?U~;@&zI+__!_j|awuBmde@|1PtE*t~}=(bxX{>-(=U&;PwA z=6`Yb9#BnfUAr(=j;LS*m8#M~KtXy_5Huj2(2Ii9&>{4qBBCImROy{igLFtJDhKH` zkN_bd(g{U+4crwy=e+Od_m1)3G4B2E9pf?_0y|`9@4e=lYtCmr^I5+RS10)xdi?zt z&nn44sxp7g{m4sKt_*&y`)gF5$x{Er5_^U*0FEjJz`m7Be{&Z1$3Ngv|FHP}KHGsO zpmP5G%U|D}#Q!e|^Vp}U|0hn@RaYeGR0|-HVbs6#@W{9L z33BoBWgOPn`aIA7+=KgdE`NdSfAyRFdVJ3?r)d98Iq=uPYQ}%;=GOu6KmUWjQL=vy zJ!}6j`h-7^|3}ODzjV5qD)_&e-^o{(#z)KHFz|diHt!C*er$PvNaD*bs@;Cbt;~UVssg!*9yiazoya?^`MXyiO0;2r$OcO8P%zHPcPK_^* zVF^bmk~sd`d$WCiAO-8UQ`uTOak`djYVjindhdCHi*z>UZHIVxq7Q};E`y5_6J0*T zC_{>8n3pw0|463&de)qVPrmE0W-Xj&yeY~uCTsLiKk|{olFQmk%mb&7Y}^xT-P#|j zE5dwEP>30y`*;2#(2yJ!|3MIhL?)(=u?VL5ibW-&M|}O*NtMeK6iL><&GIC7C9Ozy zh$T&g$Wm*o`R01`I==oGg;U0P?E@y>;{4u}^&3nrRpoG9RW1-8?0;7xB^c+2**zQay@mfsKnqhVj&aKh$3 zv#E~As9>~yXi9C?0MXwH5?Pr|H#?WujlG&IZ#*!i7}Azs?yMW`TQ>q%J^Wy9uo>KW z)nJ=sV(jBjW9(J8|ker!8|2yWA2xWY_m`^u0YHW~@TMUkOvcpb3vS zi&c=9%-4FF#%6PWjH?EnynEs^&Q3C|s($3UvPIYpdA|tp+_zB?W53itodkUWJ#QCO zOv48)CtKeC93_7Qxmpe&pLVc{+KIF~R4GSFfIu5yF}xBIs4$c z*QeK>G*3jQz}~ZwZ}#l$Xx9h-vB`V(1KD)k1-V#5)1{u_#i5W;>gep!oFeo~y6+yp z;IpJNV9kxp0?{8>g$r9nu3x{-S*A?B$@k<^C%K9SkVH;tz|SHh+dvg%9VCjgfEd?* zj7BPre2I248>fZHOTwp>8@av@i#qv5%OD(4bJaMgjz-bK3o5vbHfigjt?lBflj9Jj zI+}1jm`!wTWlO`BAS1~bZf@&XHZ+BOG-aMhxIWjirv)|Ug{*F^Sg(i>2Zk5yb>Lp( zTRt0WU5qMq+h>w#S@Q5!B+oCEQ%+*qFxT>JDG7bmuQh%*@z!t5cL={~P-4tL%nXFr zykcV2VLs#m*L4CN7T9BN@~#f|Io?V{PdLbwbn zSdo-;$Na$U`xmGWif-D zHi8cr1Ag=OpH+cow4pX`x=F!sa@+yi z)F?3*StbD+<}D!qdfFppqJJjo3zgrhdFh4C$^7zKgCz$Jc=(zAAbH98{p($OIL+dl zqxt2>*mv<$EAtGON3H!e^kY(d12Su+3F`r(seB%yWf@=g*B9&?X)iNnjbw!A*l#_Y z?`kIPI=kiwy0kwnlbl?hNUwK(01FpQ>78XmTRB&l>ChxporW@ge z^u|g^-EgU>8V1RnRy{iwi;ptN3L0Am?#m2Bf=vpPa|tB`+Vk^>fbOxZ6efAM=G0wr zdrlkE=Q4&d`Nn&vp-}s%Dnz0;oN54?iRP&fg>@~Oy3fqESL~IGWaS=hO2WcaXzD8!>qnP%w~AQli)I1}v?^Sbb2!50kl?Be*U`V$@NYbH%7lkz zfRJN9Lhc%^?gQze+mCPe$a(i4+@fv(;IjqQCUV^XtR$ao+9sEf&$^7CZrUY<<(BAa zr_?u`^*%xI>5c2~$r#bawq92j_7*~CA^4C>=jRJ9ghC4{E$246s|p6q1_ox}qQea< zP1HpXTht#_r}8roL+VGF+qm<4US$Oi*K+F87|Y%d^r_U$V-+(A9_eDC%9 z_YNA2_4ciX`27yF66B86-LZ6{JhAOfwwnrkS%vvnxA%Tdy6Tg`$quv5?Z=sRB4|aL zw@@SPG%yzHOE?I9eFD#o`pe8;1M6UeWKRuv&xTb<=;@`)7=Ll=?NJp> zR2fc4LS!>+!Z1rl(jI$%oY?W<9voAamUx+4n4yTJPn1wR&h-hW_2iyRWY$|F0guZKvBrhev=I@W7Dveh0z31NVmX9VHn!w64Mgm&5V0gYDBPqCqH@GD-A{! z1gJ30U-Ax^iz?dnnz?FwlJG?e87vdkgb#r0zhb$ zu4N1&LQ9h3(_GWSc=~gp6pg!a)2{54u>pv><$Cx95QKbs10Nneap>7(GPFRg(vZ{e zYHO#6inwFt-cNG%?>p2%%mdxu$?>I})qHwVHM>^&a})1zr0e9=xMg{R+0&$@bZ@D99h!C&mZ|J z$l_b3Wr`d^01t7Sr^}m>YHn#zH_aqjZv6`r>(un7;RnxyDl~a&T&7;k#Up2lZfC~! z&CvCP56BbkTeIP^8(N1B^9Oh$5Q0gKA*oh>a8%Qcw{cMlIa~=vLx5^2Q1#8 z;3AFn1d zB|mtDj6wYa)?LLszt@hLQxVe-8_>YNfiL9KvLS5^jdV~J=LY1$(8~f?085b3IMrmZ zjwti@0`P!k^a3kj9dLm0)3M**5MZ<~MVaVteBB!l?WaV^pq` zkbHKl4?`!7tm}u2ui?c!@IImzedg_s?xF ze=o?lO)Ndl!v>j(5iZ3ut**FvPz5PzHovCe^IW*WTIj=;vgF{sJ3a2b&@G=V*A{ta z{VmFWKf&1YQ9(J@*2m!aNCyXbUTN*URyPe}cC!0CXg)OaN^vvPor+r-K5hn4deo{5 z4^!!LyobvWEXXnH!Ek38X~A#__LNTrA-K15$VQbb1fW~v?o(;!-h6v8jt#g2uEo1~ zX2UzgjC7{t=^ZbhD@4;8@wE>)riJC~BZMzd6KKJo(NYL6@gUmaM2*7D>oW5g_QH7K zYHUQJ5E~?bexRavN37Je{Dz!gjIla0y6^&|@2fEgG0Z7FZh;#CGb<;Ne~~cjsjEG} z1=hI{LI-NWZiaKaD>xH3S?qe>k8<^a zo5kANQ-?91n*c9owSe27W#CIBq{Agk8TfuJZB9Jgyai}VJpg?Wk!V%Z08#}&w*Y-D zFIzco9;m5e0fi1<9S2Op`fO;n1Dh78-EqvIYie5YctZd*>lAD}bw5ktM0Lxje@Y}I zDzbd06URW(HP&W}8d9-Te0-E*|9Mj7VLq4(k<_%b{3UwiaMB=AzCr{oMFZ_9qWSiU za)*njLsx%i%6mRAj9ykywN5hlN=z^fO{hq7J4S^d*$+KYImE=nQ=q8;EwZ(D*DoMe zLXBZU!&cM!Ppc#^VY&=Db-l;T%Do&@unyhWcPH;H3vUcWQ~sG!j!4#`UX(8m zzYaVvGeaSWvKHIXujAY5UOy_`&os_bN zbVVV8^}*oUfMAtg`dUuwM+>b@i#ThL7*y~Hn+^zv9ZNnN!!)n^toT9H+A&}0#H7(A z@^qCuTAMIhAAz7!E>gX&3!z$Z9I5})%--Fk?wYI`tzjV#cd?F}XDFHz!Xs0D@G}sA z>69&kR5IMYDfrAH6E};1hy8F&W`aTDdCkK-nOrHZN+?lUXFym4sz-da`G>>wjHan@ zO?mCohyFv~qa^w&(fCKUmlr11h4zd5Ff+R7$Ek{#5Nf7F+(DIbG0D-Vj3mHQ0NjKt zUMx6aXgN)u#K-NpQv;w~@YO>{X0L%dimlpe7#etZFO0|+nx=KVBQxCi95##R(#+8j0aiR&+v~)@U%K3qIGdLMj zBrHNAE^f573FxL)-%6IerFi~&{pyNK96C{7AfOc5!0d)>8&3CoW>Rkz4RUL1%o3x$ zN|(@qVYyi`bN%?EOam9!KG(MOABjXTi7;Nr%!PBUe1cATwzp$$2Fs%Ymgo_i@R;Y> z)AQ>R3Gqw$e#jZ;+~L*ngo0}eqxXF>iy!bv_*$n-=(!jAlY(RCK*~cx3#Ym` z1GfdjqK%2^NA{zM2oSZABeC@)!Hp%x{1){wouVy0VW~TvOl`Y!8_j<@&nmc{NbR(o zxw_FVytO7>>(>~bjFC0yeWF5R&JO7vhp!p9I!K0lUx=r!fHj@^#Y1d4eUV~H);*w?S(o8WO_kc8|d`P0Z|UCXt6o3oF^NoLh~Dfq?r?A zv(sut3b(VEiYw4XoRfCOd{q3boLD!f)C^KF5;}HNP9`E#Ap1u1%^;-{t9?f>x*?i_70wBw&X9VzX8oc{ms_1@k$3 zUM!?LR6p{HSMmE%jjCXBjIX}fiBBl~IWY=;m%WsDY0KlE#OC{mI`BfWn3y-pgi z)3ZxMqj`%5f!REjVw3@yV8R#fyMUk=;c60jL5n`Mz}Wl+8K2TDRZ2L+!&0AuO~O0( z-W#qJRm;<7mp}wOnjp!PKZ={Z3u%BJEk>5Kjyv7i9YV~+3LE@#)t_1ckt_}HFf{KXrXB8WITvM0u^OXIQ;8YOM<|?D<0D2VBRIv<_#Y+dYR=uM%faS|%8c=M?>;lP zH;x&fO6-FZqQ>U&sSL6k23j!P>;Vn{^Q17tW2}kC;$sFXIjRy(7mVIlre!Iy6c6$O z51wFvUf4vb+dq6(1#pZ4)K_E$o<@vMOV1!%_)QmP9{3i_RzntV=Dl-kdRsN=ETUFz z1{1XcAg670@ZhR<&8?+g+Y6$TQA=LRJZjtLb~uDZJdy^|AZNmN%A8^^LdcX@1VPH zjXe0wW{ZEXV0>1LVd>la-i;7GouVQ4yOvRRzNlBG0S$f~@Q8`oaVCKF5sm?c0!=d8JF@@jYjTf2q7oF!$)syQcmqgXMA9^ql&5;C z@9Gth@t4lwHmVQS!eqQy{Q%Z`BPo_PhSJ@U696(gj-8rMbBj?; z$GNL=HQW71i)Y>a!CI?0=I{vT!LS9ONNcC=&D|epg16(GYW7TYo=2Sejwh<1#cY7) z)K#!>V?W$0QG8tC_qv#kn~bj*$KRw86*YFz;XEtND#s8>Z3}WMi!wYd{cI5#9`Ys> zC)~+F$2tra7fOZJ8ztsEC*bn{bjtB|DSs%HW4=hhgA0)>mwe-BjHzZGJ8?75w93i; zp#)d+lfA8tUDKG4oVo!Fmy4+vj~P^SuNZ%MyAgEK8zk8x)+0Z#_*mo>V$+xxEy^UzZ9Kwb9hG!HHpJx^4VFP=wSe^+7S9$~ zO*{7ShF*+uPt&$?qlU&*=p=4U&jDDO9O(HP&7Q|a8EU7K*YzXy%=FS}&I6+$vRiK$ z$lC=8F{IBcklyr+4sLM0?R(MJz1?>nAUK?nRl1e4MWjcDzJlBKx-&=wJftidiOgHH zIpJ-2AVB`r%Lm0PUiL7xST!mUTnKU&rrpJimDDU*+y|&hZ^NibG5DCtcK{5_0ciJt zw1^%W6Pi?cdu7DI+iOLqZgWT^+aiXmvaX@e^`^o5cj>%}U*{SMG?RuO1nt;-uOV!- zMznfw7r}QixyTTzH7#&mEFxC6z>;_2XLa4G8%jD#Qt(WyN8NUQ@b9`T%8&yG@*e{a ziT(V73gATfZ3VW%-~&}@>w^Kzhz^_co{Qom2jTvsOG>Rbdsj{S;G>`PK+cb`Vdx|+ zc~@S0`-_d#L*~w7Ph2)i16`o7wrFm0rTG#QQxT|?`hkuTP-WNh^{pk7!77({fPEW` zlQRl|hW!jO8xc^}=EoWuK#6z*uwV*6-yP_G(*-nqLywCTP8Xoe9oXpyEE-O!G9jt% z#iap8>E#i0xoZPamt4o2hK0AFv<`%f=W0^yV;`>ASMRyU*VW!x4~oO1h=2-Ig%QkU z1Tc>e$0iPMy4dq&nRpbD!fcr=TOF8V;_?dQlmI%IvB(vo6oEXuX;pd0qmdRP1+_$O>zPQnuFiMwPf^ zf-ULKnLl;AM+A+Q z`5}FM8x6LtC{y+UXo)n)mmN^$RRHlbtgUYZWdqfSu{)2}Vi)@myaA{CQ0REL&hkTo zn~md%9j^*+lBTgl=4ekt7m6>)%fNqjY*TpS6KAY`Oa=oE1Z=}Or&|LU~Q zT?Z@06Kklkn%C!8NE4{fU>TWhZp?oqx`kH$s|H#f3FtvuYSP&b1k@bp@acVV z;`CcDa+jr`MTi4>QN+uq>cE8ThKE%Fxehd!*mow0YqiG--~eZb69O1;b%2KvFxSRg zY&QW=3ssR|0y3dgbBJeNF|Se=mzz_ly*ZCMpKT9~$>-*cX*7v@lFQ8-WvHT(xB((g zT|sfi@W#`t%$EUy7VrrQSPVHJy9;yeMm64Xr9(_@eEI4C03!$UtNVO!XF**=M}swh zg(g$5hz$xbfU0UuceH%^^HHkRHM>iLg}Ry!P>>IUVV@efHfvo}!j1SSx8z_6R=k$Z zPP>kRiXo^?5%gIx0)ql&n>K!~xGY6KX^p-8KYbX=`6}+Jjk#2I&0fj}OQ}mJ&!nXY zH_wQv!*tFTn!Sw|7OiW<9R>J!My6rIP^Gpa9g;-~PoQh&c^5!wh81#rdFW= zSdvIe79JK|`x~3L1+XsY?Enc@93VWA88;%L0RrUmQG)GkGMTwF1;CqlKIuPHMuC+GAW92;0pjo>2UEtLEZnc#H?itsCAbV7x7@{ZN{aXEz zWB_7gakoM}vj2AJ&SE9a3Uu#X>{4S%DxO1YZN^#a#eUtT$+6Y7aX0Y*@Hhd|hZl-} zL`6fR>$&}AM~*DSV-E^*dZ5qDp71m4wH89a)vt;%c~&P1FDDx3mt)&71eHw6KSA*` zFSk&s_&`)c1TAlV67H1GSPu(G2k@hABB;?Ev<6bdn#GK!O3e$3fEv>L{}VhaB^S;;6}qDdd+v9&tv^2IM%|Z6hp@SFR%J zt~Tvjcpx3T4k$s9te`N%05~|15zH+|o#bNsgbv&Mn^yDJXY4bd(^f1aFP|Wcc(E^y zNAZfO9z#`O5^3J{0!T0#V09t+2B6HA=ZJIKSjKwlY0!9xO8Yj(D}f^8VjiH87Db{H zAxy)R)}V3>a-fROCjZ>P&mW$RU3}4IjeXfm0I8KzI)$kk2(D(#4LA-ChtO-=`SX&8 z6U*o+%P~>83#BEF_s+dnIHx^g5SO1^QtjqyS(t1aV2?0>Ar>FaJSh^Q#pl!7gA!6j z$mx)U(&G2fhjK@snzs16mW?cKJ$U%d<=BPl)~3k~Unx)PuALNDnXzT@t$QtgV`_pE zcVvW+0aX8JKmWSSz=Yd9fAs+V>$tf)^K~+?s?MqHeeFK$H@M9+Uu1=F0~UBNhGD@NFh;#f8q!ky$osGJJu( z*B~zCcTVJZQc&!_{EcR`9{5F;Pos-8rv6aVrCY?+`a?(h6KPXQg=SBti;>Z6kWyWp z*;$4Fh7WQ_C}uf-V^yTFXgdz)&Z{sSBTKg(F+bz>7g_3Gmwb}tf8pl;H$Th&eW!ce za;m!{lFiGg3#?a8sF`7D4+@H1hTphF@~V?98j)-sR#wk=uZj^|7gGTHg%tK*hv3p!i>TNuShJdMTGyV49z%l>dP74k_8~YEWERX;HPnRs- zbHb<)^wr*t`&T8(46;(g1{C)#kXq3K=Usm6g-fF+V%sg94K_P$qH#?E!K*2#aVZ2lam@o7 zu48Rhf*(2rgI*~~2>)kCu=ZXK64`5Z%8C70^OZ|%bNwU0ojM+mY4~J-XKE9$QExhB zn5KN{!!%ZvslZN0UK!2C-H>%JC_C&jybG1%J{5N-7nw(3Vc!fDkP9Pyo>&3p?|Tp0 z_?MXf-R1^ELfLE{x@j$8rEyC&$0&NnUUiL?2CCnK1p4p9B`3&;Kx9qs@byfc;fiR^ z9ILN+z_0~<82Q!e>wMf8N;9JVqXJ!-hU5PJtJ5-D!?l`q^{BgtzMWhIuZ@QRF$<03 zZZ;G3RN{;doymempYP2ax-jO_3kXvq49Raz|7=OxK%72iO#SoOeo}Bo6UYh{?n@(i zySv^&FJE$j?lPc?pboTl)7r^ssshi=oBg2IjNI7t?%g?+54Y}tMmE6vKkH^gKFO`e zfADNY6;bk7+@W`Cs-C56wS@Ql7>GrOMTIH#WTnvjEBpnM@2~J*f04piYv$GiNuXSmi@b+vv6&w3Up$V zzF%(W0fGs~evb406Ho{uYYR`Vcs{*DKjn^Qhk#B-gIdoLpq+ix=sNl8&b(EY?cF)C zfr|;Qc%tT&)_w)xvIcCBHAK$*tE*QNBqTH<*AEZo1pSt~M()PCtMXSp2r$*nWsz;r zPgbpx3p~XcpiwxipCO8)J^7b9=Bd0d0id9ndH{58z_$n<1r-%g zpd~g_{x~JE40D&nCGFuW17p1X;Lj~p9`zo|+Z5>V$nDpOhu05^9 zK=S{k>U--BAeNIc4089TqyHL17_+niU8n-+U)(*|YA6Oeu=$yp@<1|>#w`!r&nzpj z%gd&|8Yctqk(+Qpn>b(rkkOK07Joe<%MNvaf0;2NIn1~s_{vQZ7x;j%Yu`)H zh?jLWAf*bwlyX2cZRM&R8h8xPKk+*~C$qY6vPtncvDYVOZXjmIAW=7;4lUn1u0sGt z{i^Oxjm#o>0Y4{o^crl^2^GV5Ij7iIQc3754N<&%FEPS)19^eqw`i>pY^a9Cav|C? z$5)>0_7y%d7Fz7z^^#(iuJsJOkRiWLDpu`vH0j3Ff0rPLnZK-e#%yD-Th-X9n7r~F z1z=+1*XdL`LNH8Va=7Y6v*p!db4(j54ONPgBeOh2X<_yzc`lln8-(IV*sYYE`(Va5 z>~t{}*XZK#8`CJc#jauvR~Vv$BTz7s6;4=pD>m3O+lkFIs42U@mXkGKSy1Z3v}PJG zls^1bM0$0AyX|4P_UnPd2TN@ONv(|nvk9p)zPJ@P*qYMD=V^1E0(*^jO<9nk6_nNZ z71|ilxn&|19Mkd0*khQOj?6O-F!s{(Iw4$IB^krWkk4TGboMK+(E4_$;Q)5LA46k2 zvWpX`oa<)sT302ea~2|a@yh)ecMX1BqO+tyX>VgcBJCzVt+>RnK2kIw;;6ShDq=t%B4igVT{%kocpO;STd;-40*)izg zN0+~Nk^|uut9<0sTUWGAU{OV#={TLsvrdpe#cV}hjtrv872p~W!0yB42bA8>V3^ii zF439wmb6*=l_HG5q*~wh!w6sJRn-ZFWcHb98}(*^)s+2yFqbs9T;s(rfNdu%qTewZ z_9a4Bn21oWY{gFZ&`v}OOGq1Z79|f?7Z+g7V>)-SaUAP5eC#$xmW3t;2k|;fVxzEU zn|jc)RVv$D7VW-4Vd-4$g>G~^9T0%cM0j;eY(#0 zq>MiL#9_%K=?OzT({5|1p*E%`C#j!Hg&{f1(g$H;m|XlSmYRth7TxOROmuYgm<89A zpOda~vGlv!&WHOI9;k8~(;!<0ym#{6USjA5f`*3s=3rqE<^k7jiTj)h!xbXM+714E zYFjrMC*TqJ^NT#7`iYra6^{cR3w(H=+GyFVQ-RB?2OiRf9N;-NJ&f$&pzr$`F+4jR zm5`86-UHH#V5*}7b~aa5X2^{Mj`bU7Ff~&oTNsOMJ&tsdendFp@pBIip5Gfn*xgH{y=CI=W zr5{vm?LDjs2#b)g@_A93&i4am^H&4f7jF6;dN6GCR+^I+OPp~Ea_|qZvzK`KLNu4( z%qB$I+;Aaz_i?+1eutv;PH`FSWq7_}+idw2zMXGr2PFru!B!O&&>a^s0%~jbHVWRA zmp1ifj&;4IjA8eVRp#e3Iv)g&YWY0wP(+!|6(=PatT5lSMKe#cynx$p*W4(sQe6<| z;8}PkGvaQ9r`Fjx9usylkj-YQ>w>f=o{jH=_x#x?-eyjsZt+4NtY8)1Szew3`_QR4 zgij`i6t0KMwhGDEH|~w2REuKTMIBGx?+!F{tQ(Atyg#)&CMq-F+P+Eji0FX&y1lM< z-D9h(~;j_u&1NMfTeJ-HZv!VNTcIY6+OMLh9vdDa+eX}r3 zGvsUd>qU&WC3UE#x8_Twd_!$LZ0`HKUXwl1rJ{Fio$V?y_9_`57mNl!Q?M`br3R1a8<4s5vBt*$&dK^eb3+0dz@ zV1cZ3{5# z`cSo+kUo1|i@n0-1qioN$XTd`aY1;r=ms3c!{eywtWfrf^CfH?EW&ClG(=xSb-TquD)%+LA!+(MtiZc8DxJU3^>m;k92?reb)&VUCDr)M3 z{XpL|t(tmv&8S() z2cA)kdOLj`?{k6T)*okw8V108g>W)(iw;Tjn=MCUrru+wbb4CDKPFShv2n}r+;99Y z2ldZ@Htera`+2#?ezo{>{iR>`nV^&~;g+oTHpa#t#tsqm2E!JP9&K|j1({_;gJf0R z?rpFLjyObsN4rH&&lFEz6yXuQ?zO}kd84+TTH0%=<>R%c`<@Lu=jrS=^9t~TZwF0e z#}i{NPw$^ zW9Fp051Uu*=1i75{0;w2qR$@&k;nuoqhb(27E$KAjcu6wU|AcoG=$IE)5o1Jm>jJ4 zSgAYbXWZPEfMkh$dNyM9Dg)zF>~@EkJ_;83=NLGK6=Z2beip54U*HG<(`6#a=TphN;h5ylD}5kIJHMiW8wZ^eY`=^LGKRn|1p{>bsP$;MP883c_!UrG}<;l{*{ za13cm4qLLf6GBBKi7UOPUfD%8j%y+s`7+bDtd=`gG{x7wEE_L47(7``nF=P=`WLub3cOa zum!d;QO7X{I2W|3mD|ecBu%SaMP_|a57O%tOnke$nCRnH*oNM-H86YWzqhPQzDajx zBsS&CaEh#BA$O1YmeDANZ^sU-A?t&u4F~4j=H|KcPJCE@HHT3d?>$a zDq~2aoxgv-;OpDhy#f9ts;k`(v8a(c4+)VgXA+Vwj$N!S1mUY8F~Zu|B%ZFJ;z75J z;Bpeq&rz#Hf{~x#53Qu*W1Ofc&Wm&SOfXI`#3$FKEXzrp+0%jNKdWTS?Z-JX zB91k2_FEHYwGfM;@ax3EHQ(eZ8LX&}tSN|V6*KRF{BAK>6|BGASC;WHDDd$7&Q{@B zeb9{vprj>W{2nbCp1Qd47)D%rmt zW|q40tPQ;GbQ=}G`W5Kt_z(itXElnQDV}{UaMgmXiKt&}=)77R^%O^~ zysk%@yBOgTA7=~m$(SeeS5aTWdD#nHIinPEioCii71+x#{kg@s;`eF~bpRe|Ye{;( zSZ{tQed1TkKfS}27vsB?-e{WKD+*~#ykoWMlu9Dtx*ok*7_tzwF^V&{0(*1Y4~PN$^NdB=>=OGU%Ovgd6coq0w|C@Erp~@b-g36rO2oMbW3p%B z7Ik}C?>ZsM3d&aVli5*wGc3f3#rjllxER5f=+yf34p)m=WLC;8S3`uyAEkRJPWn2@ zZme(x(Gf-kFf0H%Ou2gmiJISd5tDEZsTypUxTWjKq%}5zRPm{+g5$OH3I@m$O4zxPWQ5uGC9@j-Lau-6qic}!CuhYlV6Y%3RcQ~XK z!EYb|vB7^vwW7oF5yZ5jVX(+z!MomToe8%Jt$cj7U$f<< z752h>{an#H%RC!3id!(?;8*nxe-7fa`UD_I%4P!;cY)5?2b@e5z6fAyN|F5Nh0^Ez z2u~$1(?FBaQV7Pwj3x$I!ghrviW5~NIQ-kc{@hG$~T*Vkn2 zak|sfT*9}FD$d$_o7<<4Fwez;3@_!3LqG~FC)rBWECQ{c7ds zpSugPwcI*Pwua4ZDw-0{#l+~SH1HZo*B))UBbGkIVPJ97*}T+VK`#;w(Jv~x1@L2K zCb!S)_z{&ab`ensB2nV&{o}BM{yV?~^P5da@`=S)(m{Z?$SaW!(8G$ywh1~*>(p#x z0Hq_Yww2rJ<}EO(s&u{41$Z5cqd+f6?7dx$#}$eXJB5VEBY|C5qB^5?H70G78i8Hl zhu*h-*TIpg8Ze8Ay0M-eAMfqBrXhXsU5DTft^A(x0t&Ulm4+$UN_)vhPN>4S>&=Wx z$p{Psj0yyY(E#(x_ePJ7`D*K`Fe7QLe7UZ-m}$CILjn3D-C)LW&mT|T<%?0@R z15$Xa_X_D487gMuZZYc@*21`roi&H*Tj4gl^DCY>2D#7RW@A$M`vn@{*1`PEAcC)W96$lNhoQ?6JAUc&K(- z(Po^Ml?(?hkBuULIq-t&$l*$bO@b&p6yTn_d&6>dB{{suZ7V*wVPdW(NOLQIY(Eb( zPN?xpdvrBE?MKh0y88UPot%d#W{(_mjH^CI{ zlg35#0_f~CQpn@!3;)dx-t{=z;C1XSs|haoHov}UgL6{Gm%_`w{&@uxOG&NV-T|(< z&0_@uL=whsFO;aQJvvz?U7S`qa~NeVFOd7{w0^T=fKBa-zz(wY>*`Lm+X-3&$3g0D z=vbJ$>FX^c#V%u{HX>^ru=_*Ee$+ItbB~woK=H^nEF5T)1K{>*_aD|_Drh9un~_&y(Ta#hQ8haUcj+?b36C3^pB}i zsDqI6CKFa_N*WqoQL&EFIl3}3Hz8D~MTo$Q2#a&x@hC?N#m*z$Sj~PDt)j$K~^9;21+cC)4WC;#0?UrN!8@W>(A9X#(se_e4dIuaid(+F7r-GXcuBZ{P?DE{W(?T=?6|fk1QRJi+@$TLpN{(DN z19`WSM+XBpqP=K-H;Q516zkfI#RQEub-1H#mxEs@+ zmMN}xVkNhNkaw;?KPRetk8IDvXyuI_T@ITA3mchcH!&j@w6yfr-hJ~#W>4E9az)?^ z&CHf}a(!V#^MnSp&KL|afIYWsIlAC)>j-%uky7(mE3+Xw<%8G@0L>uYDgDq*k}8Lb z4fOOOb8i)V>FOo?0%+0%0Gi$3({l~z$bsDvK*mmqVgm!V4KX**Bun_v(d7W$#H(Rn zyJi0XNtCz-^9RfyUIIG{gl!2#a*OE+rJ80;e~|;eN238dpzk3U=|;%k@Rt^# zco7-|MWFltqgQkwr-tIe<6_TWDwCc4UamslJ=U zO$*Z5S7i+{B={px1L=68;YZJ6w$WYos|MP`2l_%=TU(#=lR;O~HK3Q&+uQr=H;SW{ z4=H1wr*}NQWxavaB(FyxZdo!G)4^VgVpNSY*%33H;xqtxz2;D(+6ga!gc_`Vz6a_< z8?zZU^zqmY`50D*);{B4ZEA7X8t+^*1kKNN zDgc1Ul$%%drHdKM0q_vqb_pxEV%*!lG3=#T*_5$Du)qRz1OyzBS@_~M?7Fkt;eS0f z#qk*DBZ_Pav-z#u^zSd7pVf4Ff5BX?Vtc#>l+$8B+}uAhoY(WX4Ahx~&5cT5+~i0# zU#j)aB3BJT0a2p2|K~&;Jg35vSm>7WmjLJASMPM;p2hmmx^t^rC)0hfw36Rd_=bDN z?-5v898wc85&zng@aKD;2}qcy{p!{H`yAl=t?l0=W5BU*|0{%%_+!6hO#bBu-)mZ7-0AM6W`e&m=s@wlbQD-C#`L$ z9<6{Wb?P@d!z^V`fI&vmUPJo3tjQGn>7HBh@{Qj0)FI(35*%#YkjSUSg+0BZ2O_tE zj#Bif{l?R{E1Nr7t}&1(^0ShB^y~i{rNpyCR;!baAfJA7>#p!wqM%q8 z{f&3_DyijtCL3g_>;HqY1*j^@kw)%&?`HECoW-X~@$AV7|CzSs?t<)dM9YKmw2LmV zcRCp>&5tm$cNeE;V21#fR{CIT%@HIO#Vzd*znjf*xy`yQ-RJ+0Fp*r-PFL#z%JOsm-&_*Km0Lii_BsD}t?zhXn`v~= zzw0rPXY8vB|0jIJ|2>Y{KVFIa!`*8G%Y@937~X#0EOn5D+>M*i9oHWU>A0E~O+@Mf zqTt=QV-#1+esdyMB0+&V#AK&TY1E&$Cwra2(D}VxlR~~;joe(-So(s`QXIRKRFB0G zidTR9KEbkB1NwMgj~Gc#2BbzFuRT5x&V`Y>8YodWDL$Qh z@;hDhRu3SM&7I;l%*eE$I>qF6-2(EHR`s&&0uvvE$9S_6ynf0FO7SfH#qT6agxM4o zB$E54o%+e>?x(lnEvU}MxY_<^M=;GA6v>v^bm5!Q$?)4;5Bu_dGNu0D33y&nDH(0r zmlkrdQicf!RxnTxwzaldMznRA0xH3(GJSvV9F-gQ>;ns7%l4?%iZMr-<7@EYnLWCHnRDhK2t163FgKhE1yE=)}rw zmE%(HS3lawtd;nZ-Ki?%!m?oZ9H>!h-LuI|@wcu7Wsno)bV>O4rHX(+!3}cn389Hy zw}nU=YFhx89PHtBZS558WTBpOJJx&7b!F)f$r(uf9bTcHsh?N%Ot}ZBVpdqR(+yy; zKx^?K*hs_RLDVs&PzRO< z>NcR1a713cCe=<_ojbEPjrS`%B`TU3O^ve#+%OQGz-I=;K@IS%8^m7=lqz3Do+R9H zecYH9_uX$(6hy@V{_A88f*ke z-ms>-9*Dr|$nFhwlXtT``E%&E8^KO98=%RgWn!hp`cB)TyK*GZ_b&%TF0h}^@oI4S z0Pel=_3q_cdL;PN6M()j&kEK?W6K{#POGU5oD~uTe!4cjJB~;a%VJ5Gj2?wHIh^7JGLi8NSORU>w?5Q?jef}ZAlN{PymOH~0R;scePGFX`@-OD(vM)- zg;PJH!%vUF-VkhvcD{(_i8$AaK}nD+%NCbV&+Hr?>tEb#nX3OmkC!x#%zFJU%{6>& z#$erjsov#(F!vrnQEgk>E^Y&EMKFs~*AJ6%3{dK?k@4a2Sc2Ra(z1CcFj`5CXz9Z%rZ`HQ7 z8Mf&W$_RPSn&8wBc3Cfdv@$jg00W?z9EN$glMM14#nuFmZ!Uc==lHP!sgGxM+{V=d zuxP-eG?>_WV*<1Tm&5X;(JQ^oUV$fx9T9*LRFsPkXPra zD-N}OC(2is9P&PKgy}F?38zBACM&y_3FxQvj~6GCCGoP{+z8ZxUI`1NG~Iftj!yoc zqFU3Gw9agxhGFvv8mi`LjI+b?bx6`3-EHEr#ul_yc@|wbu2dv8^7#gxO z9ygV@^OZtUHMjKw=l_?`k$K$oRNGc1-lk||&|U3d$}yZn>6yoTtjxUH{B7T%&r5A( z?$(@+n`3gNviRN<1^b{<@)_X(wyPYvdt1YTqDIKs9gI6Y+rH=u#+6-T>vTr+Vb3GTNbk<^UpEfpP&S z#I@C2_cdIp5pC4nLGdgVOQR@87LJ<_pl&xCkR`P`RBHugSmfEbITlTTgc85JL_kag zVnZr`V(jTXYxCdLHDuJfr(#KZ>Uj&RBaVT@dfow7V{c4JIudf5&882M1{% zEI6mO14T2>6<_%y$N2E5-6x@KWh4Dc$)vbYL>lEaH+<_^{y3`%sc!78PrMczvDMWK zU`R!k8+W^mo-mO91sO#X&&V?WAdBCl=#O7& zmFU?dnO8i4>=e%7)jA)fh=PC*Bd5rx!FP6Z_R47*3uQ+y zJy5b(IIAUr?3GuQVm5o=9*#DGju+ON&(iM!33d96C+@;K5XDUU>kaE9wRuryk(ckV z0}*MuyemT|P_8GwwdnxFAo08b%-06nF21@PB~uF0>b)Pq5UvEDGD+^(pZ;|@G7B)L z^g`-0nmie0MXG;xT#`|I+rIGX<5BH*a5_yFb==OJFzd*cW_jy>SOW-CVM=v8tYVs= zNxaLw(8axrtaG6L@m%MSgHipy&Z2YVi?-;e$5Gk0nc`ft@C4VnKpo`QP8yvI;boVJ zp)4szX`}!|l#yPkytm;GeU>0O1)?ddu%78%V?4;hXvTs@>h`Ve-6_MJ*;)w@s{ofc zA>&8c@g~(Nr-iL2&!D+W^k~Bj!Y$UvnV6}X`pW}Mhx5v52!@h=a@QZ9fJo~i?taoV zE>PA~lvcOX4bQ}B7jfjtZM{{P`A}g8qok=n?#0C*xSx@^!HGVzw~{48%&2z?pv(GH zovG-}7mYjo(V}vmpCWaHN#oP}S(zibe@5793wXTplk{3W-HY%%Mawq+o;%hBryaE) zZ0sqB$u26_ls|C_1-b+zVI@%AAXNrTt}^$Nd$Tg8aGM*nA@=ad)bQ62>8|B=CAC?1 zfSQPaUYOch$L~NFnS*vvC$)oGo#z(HT-M!M=ao+ysd#nEU;n@%i_g>+7DJ~>`dF-H zF#?TR)1nyxicQj@f(jN5wz5C_6y{35#u$Ix*Og^*=OhjzoAg1lYlP~`F^Vf4A{V`O ztBW4!4{Y_jjkXo6J$#s3#;nWF(WEZ-IGhseU`EK*CR{V^ZL9itON*uBHug0IKRzjJ ziiL|$SKVK9voT1AC+nhC!?G)8lVmSkM0yx>GbqVnu=9_5_a3PAx95Oqx~Y_Ofu~KI zJL(z)L7A!jsoxgHP!;ntvzqb+@_ZGl=-{~X%u&M`3Q-anf1YSkc%!UsXjA%^P~{gp zG4a>~+SJn7qTJj7muF`u=!U?G`~0{d5G9PJ&|127K2FTT^|Juk=RU*22RvIZ;@Ft@ zoxgICvNUiDr%+8M{#r)UR6}4a!y{RXUPQupHF7aT3Jin<10Nn z#+wbRedH^fTW9ja{WmAWIMh{iOHrfAwtu>AlXhHf^|Wp&ZS<>OwJR4X-->K3H(l&_ zi0@f$z*mV^I?LG02L!fjT1R9&)eK2bOwc)+_VmCjWyPoLjI;joAeP3tPo0$i_L>y9 zH=!Q1GVIG|LMo>5urN)?e#AtViE9tt?=Rz5gwr(8PfkDl4mC{gW*Ij!K)cQIk)KaJ zvumooD9jH#Z5=%iz4<1+H#dn`Q)`zfN{wRkrdN06o8?vXjiZrY{4AX1Ax6>JDxthh zp5P>k`T71!tsMLsPIY6uVAN>Oxj<~m-a>4wo_gXv?wi}gF6_nzA6-esW;=7sM|oJ7 zYfy4hiq-TxYhnO(?fiUqbbmQPpO;f=Z{wS!=qAx4lABBYMDGWKPT9Blg)mI`=5nZx zu&%8N!_86vU!`rMTQXfRIeW&pyUz-{v>~`l*^0K#Vc2p0q+yZM%bg{&5)$QM?iQb~ zr$foZDmIWg>hAc-kX-ofXnEl+aZkg7RXS7XFnnl`TKLeAs}t#wbZ6jvOdiXrlUJon z43yKENBfAVRSKUZkH8W-i%uMYw@KzrFK1P$QpX7?VMVHgXa#;U(h+d5_#rl{bqYln%P&1(?|6Tqc z;P@6COPvAZtjJi(e`FNG~xi#xN!P_5tWm7U|4OCf2V!swMg|P2i_|peNf~zZ>dyQfM z)r|flr%yY_zwX%PPpPNh9`mfnr93(3zw8@))u3TP(STolk2JHjZ~B^8XQr61Y>@rQ zm$4y=`n=M3r=G^%X^OrovkD@~q2Y}8KKvDFtp3g0dm}b?;mdmldeSCJ4-cZB~cxFvTxFb&{TJ= z=!4E9&>5PTQBa^dx?ayONl}6fnA&FJWeor6GiP|`JYf^{!h%gd!3o@9y?uSDgel2v z9^KS-ckyinqr%PZ@!MNQN12fPI;sCUKj@L44;p?y6k^Z)Gr6YzlOCV1>)d|3GK^iB z=#dL^R>D6VWYOsH%fTN`XO#Eq@2nXV3cT{+TCJ6;DtK?;tE@CZ!py zdWHcKOuN6z{8;JG?qU%;AB?dlDR-$Z(6fIJppsVFaOk~*HlDa@-V#8wv#{8*xt{+f zQZM``)g^}Nvpw=vKS-Zq!h9LOzG4&PxWgXfv2U>J6!>J#;CY4yiE3e%xAt?C3|Zw3 z(YHMmjeXz7uC`W|ohyre`A37qk^J#O7$B^;3a{0cZ?Z=QoJz}Uopm*$hvt8{oHK4P z--&e%>2Zp^k#4~iRcIoas$rGY3lpZcQ-{D_70C@YWQMgh($6lu&orI?P&=!kZJ2!0 z@a5j()vIE67CST?2WZXAh%f;bnnk+rr3b~G*}g7MdoFM0uS`Icf)RCo|YBjv7C zmzeOuHcv;P7lB<;`&+a@lF**qpJI{J+ z`9%s{f^AO8rqUf5&IvgtGoAKXROZ$$c)z&KQ8r5 z%%}XG^IGh-=Pym*`B8~`_q@ToMGPbsoPFF@bk#}`@hJZg|F`4`-}P8S*}p;r|u&->6-a@?)f(tmQ>0QQu3NQo4(t_ieqVe z*XARqiJ>BBTq?Z>u|uB5rp$3;&Y~qEIP+_`jaIGSl4}Z4tnkvq%7*a}#`BT_ach2> zKhn9i-hH!qw~KEr%QTzoo!S9wi-AO#eBhRut#h2*9P;lfbk`5CrW~me^tq;b}!fA#}IC=gaZG3w4oFjvwu&tnQyY~P8i61etbW|d-ewhu~q z8n^R}&oIiOX$D+Ld5%xCD+)BIcFjw6ZALp!>96%1lL8LQvH8hH`7*9?-&VQLY^+c> zrle$)cW&cOhb>7Cdk0;g)?nuDnmzx3Pg!(zUrxVr(o>DlnMLesR{BM)46lTT(m2u7 zF3Zof0eHKi&i*vV3f$>Oym(Yq;kQver*9u`j~s6!c#TXaQ1)FJX3!aZQ?WpAZF0HL8DLpGHtIaL% z9f>!B#Rfzrxdy+s`)@n3RuLKd&sf4uqaN0hP-=pIjm=>YA!dJ>i1%=l(eWxi=J?Ih zf*1lwc^xfvCwms2W>Gs0C)fK0PXbcln<3vuN!?wa+0?p?Ow)W*NOnScomhD%{w7qJ(|FFUNPkbBGGbv(xHxDCDTH0kGQx;1-YS%U44)_Jrx`*pR}va{ylJAZ0v z-QH>@C+b)k&#|;z5oc4-q2kNP&Nc6g&mSB=mcI5ll;TiG39U)zy&x5Jm9B)0Qzt__ zUs|;!ga)0xQqUM*?^I#o(HgI01%dQ{+vby^@NKS*TB$4RZQ4p0;dVY`+1%pS zlaNUXf18d3|A@D9!Q?eNL+H=AVXy{sU8TOY5*CkpH1(G&pV&6E!y~m=d#Y+=sRxQ} zrb9a>$qIxJc=Z|SHV&4}j(CkS-Q4)x#tZyb!Hnz=K0f3D)G^xVP?EB}=jJ;qhk%ht zGdkCagyZT5$Uc`j;|Qjl7Zz*14zH%wvg}tJ284oG1j13l%r#>N(1=Na4-G z>U=%LD%)EmOAHc&oNf6Q%m~pbB=Rzr!#j`wbVhPaKB;dSCz&6q9%Y65I{#oRBV2Mz( zd?z2l(xENF-6dYlJR%UU$**=z_^P(|_|KiecY%eox1LnIJ)*+n;{N4)&b_hH1D4|5 z*~2M0tQoVAooMK2RyX0wSC%R!2P&(TL2N0<;~HBK4=yL7E;(bVZicC?k$tuZp zD_TfxI3aCBBwf!}hv$;028c?_49oMmLZZ8yo`Q#lc3lGjPbnlQ6*S?5p72nwkaV6N zbe!XWnewM z7PmE`M~3y%hEv${NrF#cXDN0dOOv0z<3bec83xN9XK^m66J7~x-zTnF4q(#<&PJ^U z7d6c;&DdC`#Xd8thQs}tlw(G~VSAQ6+EiZkWcSuQwO`(q6x5^dIVR>7waRO@_+2gp z>ul=u=q=Oax<1u-myu(9rry<_7*-DJpgIdRw?GMDs*;(pu(ixj!?{n+Ju!EU<>aAz z#G6%?q&P_$9&k#RhAi4r&%@PP5wp9xdZ`5zh0R|577n>p1EV{V*>Fs_hw8pCq8}H9 zclY+>9dpC4Ok5zJSac=j2pew+XUeJ=Rp?DR>J1olFctKt*RSg53~OaQ)d-pCJRgy1 zG1rT%D>taEtSpE<0cd01;z8tGbPbIY+d&|JhvaCgeAEi`I#h>g9XcvzY2?tXYTDXz z#jL`!trAE(QK)VeS`7=SYiMMG4FQyQuzTBWd+Gm3KG*H($=vS;i|?F+GVINDoiK@- zhdgFqau`$%jJ%3R*5pZQ!E7Y-L9+)Hl5VJ7)rc=SZ(BIqYkYU(YXe0yC*DmpoxG6M zVz8Hw8`a9mp2U9Z7|Hc1GQXo8Rsn1h``)~pge%yFc~8a>gJsZG)s?rvBjAwN7^4(L zoBPtGbFpv{J;sZ*T<3~BT&+OlQ3;0hUL}G4Of(utfjcOV79Y1 zeRifTZ@vph=+Q3A89?Q(n`DVO_Aq)lEOxv%(U2(&ZENmmvg~nn>Ujh!jvlXdbm-|P z8K6>X^3!(Ia-Q1?+=GO*eDmkx+qWNQkXgannn6X{(RX)Q)xOBVskq#geC3O9%H}l9 zsC0X-pZ)u=Uov(M-II-mta-5N0>O}x5XQD>Fk42juwADvAKZENeG(>&c| zxavp;J2p0VMVCnp=hjS6_bOI33uTe$aAs@md)HB7aAu(fjm@S|cch%8$Mkps3B@_r zQBeVo2=hYcDO8kizxCWKJNP!B5Y{^yh+lBKX~i>GgEBRcMvytgbt1$tXF&f7crgqw zBSD06S=*ztK~S)Md(!X=38oU!^*qsCBlP$el6RmSmiJtsc+S?!A{#U7rQXbQ*pS&z z*ww8PDX9l5AMTZHb}vb%IaYx-L+Xwqe@t{Xl~xWFr*O{>i1oA_7^N=6z<_U|lM)tg zi;MKs#?qrBk7vZ89wo#+^QeX;Edx867d(Mi6ScOB6!REXyISwF)et2wxiizXOjm*5lUVKIGLdF|RGAl@sGJ;8J=I zC9h&l#-+*Y{;GC+F1&#?uI78NUJ8WnlQ`sT<~I;NsY3inS^T6bR>5C zLqVF3RRyQ@*m;|#{x0^m=fuJI;T;dVRflH$B4&*^H~XP+mbS=sAKBrnURXTIXXzEh zsPutS3|k$8=;Sa@Cy#523@TQEnk{rrFsG$lz1u`%yhH@i9`{N34Bev-i{a$1w@m+w z1z=3VjAl%=iosF|SBH&*)#7XLGtE2+ka|uU)jlbr6)gd+1cVEqOilkhaWf*oDc`Y7 z6lY%w3-MVS4k+vT6zfYL$>crV`j|bMqa;#jbAsB2jgM9C4Oj2;GTJ=Qjp#%vA@bg+ zz{TE&^}5`RJoxlE`a=3*v9#>7s<+Pl0Huvibm#56d{)*kOE0F*zTFaW*o6prZil1p zu6A(bLXG$f?9ijIoHk8+LyOYy%nz2A?^(yGf`W9D+I`>D*vqa4fDdpNY}hu#x3(uo zbJgL9QJeFVxAAi%*PcNlO!U{get3A!q+qlQk|Yf(98+_{PtpE#tPq7&zj@4o4MgTw z)c8NePjrG3W$&v8d$Ua6DDUEQdwWzkh<1r(Po=?L z9<;0N+H@lZvxw*(-CHRwmz6DA_T4+vS$=51ogq=b%1rNm+flO8k3&m4{EX6^A~ybh zl2_H*zUql`Z7^{J+7zG)!fB358I(&06}&p$V$!zqW5}l1i`?L)mKgg zi4+cjRUE(ar4ISv|9<@F2E@-s|1cFdUYH>+$w0J10`<%`5D7UTn1sNs86RRi#f(?g zls_Uc#m3*(zN2W>p%ax=Xzb?yGcgA@GaJ@SP=~pu%A;XUIr6V=3jh54b7CMKwO+XA z&EmQuo{OX*aIQiiQ->wac!JqnYoA}N@8I~?cf)D* z_Wf6A3wh!DfA>7RIPn{k2CqB(A6ll~X%!jx*F*g5U5|Ha?itKl=;qPeMxlbazJoWS zPUV9)_wME2ZMctS@?2eRs$RCz3PLkV+oLvg&ifsbMi-=+JG><)yLk7v@BOT$1Ohp0 z=^FRj`?71++)|Q_wC5-H1h0!-`Vs!RkVhJgNzgyDx7|?2a+>UU!SB|J(Ff%(^k$jX zZgv3O^IX}8mhcxj^tbb(`yaZ){>PvC8`k+hJ#+tOKkhjfvk<=`dcv_nvJ7qi)FfBJ z9ySJ9{C1@uet*LreGN=zDg5lNPPew}`c6@jeeVC=^DsQ9Y@0?JJ!r*nN-qRs6*lBl zk(~6OKTkSZJvlncI*3tFSa@>2;>P}F{Sw)Ev5M#z;Mm~_)t}jk$_S9F5iV8nx2phu zQXkuJ9))eho*M>sgM{6H+H;xkhOUV`cgwWC`3Hc;c<*U=?e4l$q6jgV#aj5LvYS?{77IQ}Fii;vZx-XQ_Wb3^=&mFcKzp8m7OXYaz4Y%Mk+;76JAZrpKeT-Qf8*nx(*JhHKjbMQ_UCMdSZ7sa zs}*0FOwv=he{Xt{tvFsOqB&0)hGz!{IoXZ+-|=rIK})_6NUYSWSMoYICbK`$v4j!s zm*F(4a-wytRCo2(pnxYj08noI?@(@i@=~>E3NFkbm@(q=l_wNOgK8We-OH@B3KQAC zABK9>tzv9eqrt|eNf_9MUhzx%ZG%I!Il;|oOQI=s{aM82%bcbE@JGCS`N^BWFh=m* zNE}$3qo2$qBQrV(%fsIvMhZJkC0C_W)6fNn!drtzAzHPA$klt}}bSFo@3JMU{9ZuNW#q+hqp;Pyqr-uquRG%1?6w{liz)u05 zf%SU;wobL{j4@ZtLTUbhLI~E8MVMC`3WW;z$iV6<14Nc7Xya@T{__n(^7e9*j!x#v zlG`LwS8*Iq96|;O@`(0@`ma7}$5FbI7pt3;o}R9pi#R7R+%+}L03X0KB$~W?*JN{L z7U55`HSi{3zr?v|irbT14|T!PspXrJlbPJ-RrxI%*dXq(*zK@aTsm`uJ@P}skYAs@ z-js{Aq<%g~AaDJTTp*}0N~7Gi;&(A)uPgN%P2P*>kFI71o9ryay2!}CrVy&1T%Fl) zmLYYzO)fpFgi>m07bWZXkelWBiNA1?A(Ma5vtrME>0R%)iEU*wn%2BL`0I9WH9}C+ zSkFyU7mPlTBH(x@-3grC$`3CpR&H+lU^b}LkUh8eieIAs2&M9~3T=l6cGp6DK|D>=Hc9&N8Ra&UZ=?TA#xfocc^Ac?(#=wt{-141BVrMNoh<`taJk)5Rox=oTM zM@Was0)y&scha8QqY~B&6}+HGLESY;V1IPx>b$2YY3jDeypQQWrX+zt!a$Mi-g<-h zA9t?9@d$|TY>n>qf*}Pz7-s2Q5)}e!Q>DxzB?|yveKp4Y{C=Z zlmTxdv*}&rk3*~+^z+t&8!Cp=){I{aj?*n}gIF>4Ohn&BBuyU$aquzARVw#k)iI&k z4MDvG7l|o{JXG;~2-NDfc;-7ImRvEek1Qi74$X>-JAO#@Qw)Zv9q_Dqj8o>@BWU%G z_M9B@3;P4MTI_{;I>y_n<|Fd(=M)68c+1;5w4-yoTr^rIv=&@3m)vrFgVmg0t+*pc zNA_a~kH>c@dM=$xNlP;a`Zwv9rKcDf1l|qwZgL>JRD;RCx*D{vYfN5Wf98SL8ST6p zrkjXHpUeTj%0gKrGJ9@sDCev;V$hL_vKC0J<&D98qWbpm#x-VMNnj!LHCvkhq!~40 zXg_K$TV!gGG*G?;xjh?HM-V8-v`l)}maSN0wnaXq+|V+_Drczp^{UTd)&v;LtK4Eno2#AGoqhVeirmN42|=e9x_=XBVrk4Rh(7>NMIJT+=L^C9+Xv6c)>(gJa-~b2Mwpb!QAu z^N-}UgJcCo108;YQ1Q9&xLwCANS+)<=?W(8T)LrF$TEJ4hl7{NWG=+szOW)&9SVRr zw5gP^Wm`mWViadHWUcC;qX?!9C`iEw+|$-fWhbZU>Fj5g26rkfAVB4Wr8}T^@2@X$ zB;nyOOsB_;`?vID6#cr3!sOZ=k21}W2U@Dc)uxPkTH1c*LR1<21vd4;&ZHafq`8-a z9I-t?>iXD}bG@OsP46;o&+q1gc#;`VAUQ+YId6TeAiF{?cjB9jawDxrp9^k2uIpvR zlqcNrCt$$oCK5aVDsp49Kg24O3?}jOYnl>TwR?Ehz7ZB#g}x-7caere{A1FXmhiH& zI#C|w=@^G3Q!p%!3Ssl&h7&;Nt#ZbSq+FH6`3736AhpC@`@%k2XgcKY@6XE0s-my2-@Y4VRW6Ne0uUxv zCb8v~8lGl7K<3Bi)t?>yXW31kgVU1Hd{M4hS&|9hnb#W2bwO>!>7#VDtCKH?%*aFx zgh{ytC8nZ60l~!}nPjM_Y!|O8Y0Dt)xCG&}Eh1yXlCR#=!p+#iMhn-S^*1e>^UPE0 z5^m~{A2v_zp(VX|Ktfyx$O z1=DF$v7NM@d)pkA*R7O5^R#*p%of(1)Iv@}T4=7zw8C{f&0RZ4SK&sk)@7mUOnlDB zaz#)Eiu|C1unBc0!jyXY9AT?A(CBkcq;VAb=jCnen}CnkuCTDqY(gaks-I|BDQawZ zQnh;eau~#_v_QwgsZ7Fm zswVL{D06A3D%H$|8wFzJ0_&VhwOmntuAt5!g@n3-n@|re+)*mvBUr0x>4hO21eC*l zxAl3Q`_#KEf{Z>BMm69jCg06hhYjAc#!uNeuV}#0x&HLu0s4>>JjKn+udG;UdyB0^ z0}K>$K{1EYEi7v7>xI;Sl)&zz?*R;}?%w0>gU$HzKZ-})2;Hig({c`Llrwufrb#q| zgvi*asBTGT4`75Y;PL&6Ry%}iO)!D*7n(ck`+(|WvGz8j^#$0F~ zOKlrf8fnmU|DT|^P5+MKGD^EzIlh5AqI@IYeb|xocyE1j*?t8hUY#e7$yc;zPHVKd z*(5+c;IXrF#A9#Xg_TwA1LLsgy@aZz!J;y{2if-XlEVnXU!Z zZV*0B^;Vl2cmZ`{(zJeHXQCkNn+WwlrBVM~k1Z-ZX>%*2++D%xR*43xW!Wy6+Nftf zUt{uV{cKiA^g5oAGa~dvyNf3J5ZqkV;uucp&95P+Ku299Zq>eXdyKco9c75fHRqrw zj(Xxd|L|A~#FM6`SlJ^ZGGJo9+E}f>r;oa8P;TlIs>joc`tDcBxU7XZ9Ym$V&=m`acE@3j%UHGnAlU0B?AR;hc(_H$F84Am&Rd8 zVm(mLh{01qQ76)(3#rxlN$G{f+}EC0dMaWVO-+@HLE-}x6rDV={yN@XS_Os-@L5>% zJnV(zH^p^g^=L;H?9vGH9JpKY0G4Kag!$Brf3S{jFHU!b_hCnAl4L70`-?af8Zxvl-9XdXA%w6Q$Y8t+nF z0!FG-d@TG|G{pCQ-q8wl(Rh1Ab)^C|-+3kPG(K>RT`+0O=Kqel?X%!RoKl*;eQPhN zBIW!QTwhYs)P(g;QIWw3B_s0|T(iu~&D;9j903*z{NEvN{g@f-9&HZfaFc4?rc6gB z3ZD~T6#N{KA5OIM@?K)njc8Q1bE`BX&WoGwm^*dfM_W~0A7y~H#V`wam~AlXRX=>W z88|z4!3-&GhxiY}>~=N2+1f=fETG$&jqR$oW?S2z0!*w!i8`UD@1uJO*~f&QDrn2y z0!v8L4$Xj@Vi{kaW;wuA;y}@h*?()mpllpcg$&#UiUBsS<4U;PiIJm!DU1pn||7 z$XvsqLci3Q#k3)8!eHLxWH3F8aJmSY41tFdOo*$YC7DH8is(Y%VxZ6utinIQTFG0} zlb6h$={;h!1CJIOKo!mu)-V&idcW;(&MyJtbKk5fSiK(xLPn*A0cH-N$ceyN^B_DMMAu(0ee>U~ftJ{_?NnLi{Uj z_R$pVX*RdK4muQdz`36miG3$m0WG>_@lh53yzAUbjyWM@cuYmZE;upZD346l#R(fI z?H#gwN3lj17j*ViA*Y$m=yUwUSV!l8g0zaKhE2mnNlI!7_C2lI@n+3Dr@fL717{)B-Gv9kY}cFe^F2a^8w4K_hS_d zye*=)w_58lnUNT93= z+|XJyBbced@CE94n|IRqfH)gkEu1c`{H)IB;{2LvcRPiJ8I1yh!J0eq$gFY2(_5KPz-cx^4y~UD*9WcUD+2^ zmHoxuX`7w_F#^giai!cd;U5JI<{y1&n17Ew(-;5I2=z&5bzV@m2lTsDzy5eTfXh(X zg4uAEdMp`0El`Le24!<8KT31-AFn8+XJfJpw~zT*vRNvsPwE35vTv-_{%lXlD(-{k z+b1_^RtUnz+f#POIf29G>xMD z-Fmp!b&u(-1-A;nOfI#NZi(?faIDVcppp^Zh`4#jt&cn8LyX7i7pRg+_mYE5c&D1WMBZ0?YY6=)QC7r z|CKJ@F}e0kW(=otwv9j33?Jg zi3d8YCJ-3%M-7p)MfO>1HOpW}CMG6kbE6H#0XudphUZ85yIq~X4m6R67H+n-w!5vs1t0AiW2O&lq$xl2YKNWuk}zyjobC+Yj%rKw z_=N*aEdE)(*LAM>nQnRy;m^6d7wEXUNh@Dt!rIP2QETBw&?fm1u9%8qP;}km*^>W$ z1QCgT!vY(S7UFO;xZ_c=r!#~@Duriu3Is0k5J7$2I?Lkf8o5C-P(lG+mDgt zc^8Iiw1jpz%ERPjv2g~VVyyAbbYbOts$jw{6f8`>){J781_m#bv8QN-(k&J;1V&R` zvlUalJ-NE*FZc$&zF`5T&dXVKj7c3AOB%9v_l13_{R0(cMx>mtCm7(X#<1lWVVfM- zW^%c{hzGqm1+fFq1$okNo${6rAqmJoo<2Z zY^?%Gn6(YIf1Z<~wcjF?$f9@GPcqs$4{6DM zeCa7R8Z-%m%jNq87;LJ80#B!|l6wb73D0GkAES6?oF)klT?o-bzxCYk@_umwBGH-Q zab1o_?Ls1G9i84W1V^37@=~XRUL@Vy8MFJgKmzOrdLGdQ`%kG#*kORvT(_+lIDr>d2Yy|+AKOb2ZSM7> zf*a4Qt9OdQug(#!9UC|(jo14NH}oJE&MRElIT!3Ti>-!P!7db4i*I> z6BWP`ke9%I+(UXd*{?j@1L|@nge0}nk54ll^Yc5=YG(&{FKZ4#&FoGxh#BMrl$)%& zl9J1CuC{b%^l|SJMJ9+3`&l|*IX5-3#e}ws(Ok14&SQN=o z<~Zr#526g9u$W0pGqV!%1AzvvB}1cS>kr`MA-l+cM@`*O?b^QdNE!!7syO{feBsyo zNa}{jJz~%N_lFP=#bGDheD0bl<>qrQMkGG*%@jg5S4Ij8@?MOuhTrJO&Icnm{l*}F z!-RlAcv*ge6!@~AUGB(p+`$gqbg8Vto8JtewfbvM0D}TEF1gZrRICS!#kUF*)r^g& z1hbF8=t}@s;jAakp@=IT!m1*@ced7k<5l0P1Fw4i7q809;QWVv$@B#5$Xh>tA?WsG zzc&jUxvRBv4453Kzdw@(krM`!A``))tgRB9az-bs$j&?jAmG$VrrB0lv=m*k^xaG3 z04t9C5SQH=yVo`n(;%fjy2XHM3vImFzxL_?nk@g|m#Q~Ed}87X!ssG}?D4bjLtoPYT8#Vwlq_aEdFw-_TxYYp#Tyg%@V+)Ww%wuah< z+URA`Y4_GOcjjA5v26}G47*g%m<^uoD5vt>^vSt%;!-`woOTv-FmEYJ9FDRYh>EJ3 zI|a{t?r;^|{BGRRCL7kk=22Rp=Gz>}^TZ)>Npf|Vi=UcO$Ss^cvEx7J+=d|%L zqT^g#C{Y>Q_s>i75w4}LI!}o9q@3ysj-W-HL#&72XElUc_E;MX=KNeT_NP0M7N8L3 zbh_K5CE#RTUp7q~o%8MG{H%`}ZF%3YbBip)ck%&WdZbZc7BxUZp$0QtPIW!zx=`eT zO5vN&QBr&M`fSVGju`nD`DOdU38>pNi?3#6*5r;gDrZ`nVTBnOI=+7R6ChfZw5N)D zWwYtU44J+Bxfe#Sq>I=-PBgU8z*KCc&(U!V=RbU$H=IGNH1=CPgPrw0L$0pYoBXME zyt{88gQ_?LG3cuh=hyhNEkxQHCyDa6#kHiq8Ctl(@5ZSJ?%$3w8iV09s-re%#iqw2e{|NEy83EDSY z!h7eg^(3`f^d1W{X5;J3ge$RQ-=&Ngv*m24cd{t1WSXAWE-6rRdxu}?%eO2y)AqR| z@tyU$W&0AT?&kSp@wIm};cC0qh`@DK&rU(-GEzZ$!}oi%gBH6j1;8?dHMmkwgesH)P3 z?!ub(_5}$3c1^I1n5s(l{GFoP6K^Mx?RY~bx%PG9p3)g}&8&6s;rZD+7+huZVQFtc zxQ959(HOX!_63|*Hg<{MOp46v_jZ~3QlJ@pjSnmV?3eEB*)=n=d$`5zZr%o;(yxZy z>Z;r;J#GH#_hMi-v6|`5o7SRc`YOqc#S^Y`BZ96t!Vc`{Q8Ra1FJB(`a=qNVBiu^Q zoZPF<~HEI49u)2z4jvET4|_R@NM%(;tpz{!3w;hCwaNX1X8 z`xd(DyzyKf;Ml7QF17J+v&}uLKonCP-TrdG~@U8cZf}=ccPFUWcUdby_?A^oUtAeMI z8Fma7*wPcWt}|I(q;0niG~+Z2F|^V`rCh8}BQY_bNpz>x)1UUN{C~Fxy!cv0Rkg@r zRt51g)h;p%(a6;Sq3Pl_FBC%t@zf$AXr@aDH8(w$M&rF`$xsIEce zj5|~TQ6U;2%wt>|YfwQg>Wj(u)^a`IsWV5}!&A)m)k4kerF<&)ftTbGX|*{`n|v-9 z6&d%^I})35;?`#PU`%aFX}XdYdujoLO+e&;kUF;e62ybAW^u3#(&?5?(94 zgJ_kUG>`_K1)1sQLCN&ymho_Y)v!akACDKH4Qtz|A2Lu_5)|M|n;$M546n_8s-Fkl z?m(45=~^09%PCJ2R7KBqk2?9t>^I^rN>9M2W2``tWjdfD*mn3_A@PktrW2ky zayQF>?eZ0g3-eVHsqIQFE=w%D=gyin)QbOUq8A`!Fka}L)q8NI5~i+Zd8%Di^vXcn zxkeM7ST0p(CW-tcyK^unbg#eu%g*%P%7_d9O_9e+6-&^{%#@tE`PVH=Stzt8L%(a$XFbU6cNf8 ztlHn;K3waY79Fh!XB;ujSH`B+E!#a7p4_Gn)FiJ6ke=UhG`x8}B-RAKC;Cb|ID}@H zxQKqt6&3uUdym(KqsA4?p1y{EwEr8kx}TGYNs^0;tLB$~71>L~&vc)=P*ES9D=uaS zS=WMuQ%%);h`#*3vKL65O%mwjtkl>!KMT0YYKl)1STfa(%+uz}jkB{aF$wBfvAgZP zZ!#N%FHebHu|In5@5lxS4a)%hd`@fa8?)W)R8Jx`;r`ee47zZ}sGte#L;C06GY&gw z1sMCu&N_W}w*HPRY8`G-fu^M5llKO*%}i$B12bu75$?HO*H}}EIAj0q;d33pE3ptO zjC=6Z6f!{`>EUzy1}y^xIpnzOQ?GFg<~OV-_t~(!JgkCN4Qk3-L6L*BN2qwsCq7cQ z(1ax(f5&pz`JV&q*C&5&zlR*K25_2Ik>dHI<1I`{$cI~54UlR4E4xUxSxY_l?|`8D zZ%iV5>|ud_C&d2v4}{qB-+()K>%|}6YkuQ0Ir#KTbaIRNyqT_=Pg$cljb4L;sfcy# z&!wfupYF+^B~d$3O=aU8TI1tarMu`+cMc&ArWU406u`msz~SGRA8Io1HnEfs&Z9{m zCrLF8=_4z;GV*ej}oJ0USn+`%uzSM2} zF)(#;#>8EJ8g}U=0ovQSj~5(<&9N9T3vK^xgizacp5;I@mJwDjb*T5_ zof<7mWQAOa(5#f_w{hbWT`KL;RJnK-5ZF)3^Q-T;Kh8N;OjwmP_e1{*FL{H^@AttA>P+2# zfQtX)$p7s${ZDVC|G~#`lUF=Hs;;X`JNIw6P*v;(R;^LnfXWp`S9kM?Nmo}RP&qbW2dDg8rI zaIwvYpG=bnD`>$+6ilxFevUrBpRll0@5rBa*lxjk=`}q!W#>>axBbwhnX5D~9!it2;)d*@U_84>XDLFsiaE_5<_ z(i&p*+>5_jwEs4OsO{hg-vgz2nWO3X(kum2f!x>_T44mx#Qp!)GCpm?CV{ch_;w;j{XQ zQB#2;<9(1QiY~1fPeMP{E6#1y$wzF3;8XQ{&5KIXHQ1ff5-;E3F@5}!X^Js=Q2@fU zV{T284z4^XyK;y*_fGy_?7at6lWV&zin{Ctd!ed;2ndK$q>Bm|5D;n7RXUL(5PEUh zP!Xb`DZRHqkP=F0Dgpx1OK1U+o=~KOUe5FB`uD$o_uBWKd(J-Ro;${6j5QV_VDf$M z_rA|F=X~ar)oV)M9%|eCIl@)iy&-*f$*dC>p_cw187pQo= zq;jGZ9uH0{*<}be&t+9FH%(}m3N74!W@ONt&{vwL%+*$E+o4g#8L4se#N*5?q6RuI zbQId7mk^ZfEdKLFpZu~8)}Esf{T0Gl7bP8z%szau=)iF)=R)kpzmqsVKfsX-zMzST ziCdv9fRE!W3CDdOiXXZqVsXV9J0VDrN;$xzPT5R4fqJt{?oQrg?j}d>minV5dZSbg zUaPRp4P5E`(gURzyLF&zRffa>Xx!cJ%9oaUQ(QM(p*s+hl}abKALW&ixX~YL-YIDy zSG;A8992$qe=u}Pg*ouXuV?7tDch0yNF?=|^z=5ok{_LO3uPOIg2g``J!51iARZ0i zZ-~T(f{yM&yLQboim4*SzAH&r-xU2aiFz`-*h$giOBi(E{mSnFb%i z2-P2ii&ZTf%g~Z&wRQ?FlGgeq8de-h0-i?o^9BtVwtBOG21PfU@b)PI4d@TOomLJf zRw^QzL1@)w*P9Q^KlL45QwzYyCYJkr1vAZM+V-ts;o(UeMRrl(X}Cqt6>KKAI`E4__RQ!e{O+?kW+?E*> z8p;i-#eBf0=27-%1>L;{A^zO@MPK4mz5_$n!WW}O4GyrNhE8K9belv7X|e@(dV zW!r9VC@q~+wFtS-nHl`8NnXKe=*gP}ZRrtnmK5iTv;GY)7qA`>`GNGvlq~yK@Qloj z7j1VcNQVU{XL7-WK2ZVwCwE#%k%{gml)J%XB9ht56Mu+Kr&aP@DE5ieqJRMa#pxRR zeLi(v6+EaKn-89LnixL-J<~H-+?){eqe#40D`Y4urmUk<+d4Zn1cT{HsOHIX;_|wk ztR`Gpwq@#`BO#*H1-tR~jsp*t=l2%k5*YJX$=%G@h^&x}<>7H#j80oOo!WK9MpiRp zSQKPxj};QG0UCY7P$XleCrZLNb>{*1N$BQv47h!3<2$b7L6Y0bABx3|eO`;Gn@&4g zl9zYWy1 zcJ=M;tGsR{&8x+8Y$N*^iI%FiY1;S2lOV@v4K4iDx}DLswxt*~wiXsWn*||B>siy! z!H0R!-u>`BQERB*4aF>;nEQh`f2DDH+Zz4xRSBnJb$}W>t(um<2ge7o9E;sB%F_xp ztpp$>YBe#ue5{>D+ea%mG(&E%)3xVN)>CVBjN^2)k6BvC`Iq{jqq1A#)~X_EnF15S zDxIYlCN}{Bs-E1Ev6ynxP{s@aKav|(Ca3gp31vQ-=_1|APA#i%!lKD*y0B5tO{v*x zYF>N3KFgc~R-R;&+Pt*9>SLFDRugRiStiYf34!fw;RfR`DBIw$_iT7yN^Y(u5&{p_ zyvN58m7@Konb}z_UES2;Vkt8Vi-nFd@JF`kE!IW1r#BtZF*xu921!36wxr^xl`CII zEuFMLhjOLkV_rC}`s_JYOO)21EQ$w!_uarP zCzSas_^n;{M9hRj$3u6y_of$~@inZD>Z4sBileZwn-7@CtuU zXC9`n`mT=6VB2XU4PK{{yW;_=4hm$;m{$#z>CzyWO|iGa4&wfUFm~bi9*c`k&LpHyqy(~Hk)#~f(!(ns9UUT=75-E#wiD$*v>$cnVrc_-7O+m61uG*EIx z!l*5-mYXrK(^M1OLpiNl-@i3#5R>3g;LBstfF_j?HQ6m{=G3e^GIXW5Bn#qt!!w`X z%ptrJGC&F41$3kl;I`$VT1lr75fjo=uieT_^e-*pV89@Z_IwGaBY5hj85h4-5o>5r zM`7@{zJDq*93W>-Hiv8pR(ig#4PfJ101*dz9gYNx0D=k=@aX*Mk(#s>Bh%2*0Mp?T_WP;FU%c1Ws+Z`DD%XfR ze875aA^cYm`-cjX+7N#C**Y-{5_MG{A^x*TkQsp0&4n7M!cJijM_!UYBQ6Rky1fdHu5*wLT0 z+)1`rk}UF`u4!8CpAsF7#A2y4Jmm=TGSC6GE=P`8wGqmRH7LLK1zU;PDpWmFbXPo@ z0DDiF>{1rzn6i$42>;jbeG5fm&d7rGC_69bXTER2uFUP@^|jFj=DEpXlQ2mk6%*eo z6waq~y)^cApHT#!FWGz%TU{4GJ_PA&aL`!n=U_gNndQR=ANi?ciCOFLYVP5Y@88Hw}F7Cx990+`ma4KM)zFCr{$wNSGEJ<+dR-$ zsA;v6dkc;Hm4(2*Zd+nxgt?CFH-~Av*~mI zoh=r;U|6rUxO#DhWFVKapW)$$i&0)*D#l8~xvBk`s^mGLYDymV`U^yXDZye3B@!13 zxOs>ux z)uk1`*$IHH)k1%m?Fy1$5B1co`)?tlR~gqO>FHCwCue@0?Ga&OzW(D9AGv+~&9IT%q zl1AV_j8|4K6-xKo4m4Q!+lW8#Z)jj^vMB~H>b;@!dpm5W6FziN8y}V2@`o42{mHA;$zarg0T6U?#=;bb*#@>2Axi0(oL1l zZ0aU4KPUbg#jsDK)5x@m{JwVhk6_i3g!KOa^*!&NSYgenZe8FW4O4s45TTk35x3hD z1sFbjQ!cWOy>cj!WV2gk#*0FZ-So^ zuk1)KnVgc?7>mqo;1tbXaFle5S>_4&~96K_ThPyXTJw z9Y54=6V-t6$4F49QbKlbN{Y{T;4vrLe?d=|Ln|x6lKEKKO>^@kaIP%91EDYs4;iSt z*d$rJHrP_}feyECH}pk<0Uukr9Z9#nASzmlAN2-FlA$i`Y&5(;C@HNHMSCK6>j#VG z*L!$fBq;8dV`qZf@~o~n7azT$s^f6K00S?T7MZ&}d-fGBD}RIiWB+Bz!nqYv-yui$dw0l-rNhbjs!bLiw#n>{1ax{gEiu$@Zho2V9}BN> zD70)fk%^g^-eH0TR{M)>{>lOd^Nlt-`kG=3_GQv0VluE2JxQM{mb`uSjE(zf>+S8@ zfLicMNObk-o?x(l!0Woq^Dg~Q^yLn9jYIDpH$gJUv%xa(k;LEBwF$4>gKdj94)5gH zF*ffsWscsx;)GEnzV+X=R|rrE?Hovx`totwCLQmDHUPdFC)Xy2$M&^o|bJ~QD;`j9$)mg(8dtH;vl_KjJRe$P&c&)Ym5b{{MOzCOpP3+#Yu;7Mm zc&X#*gs4eEz(Kldr3MC)gaN$Ce{cxq6epA7yL4~Ig?kgHNgH;+|kT!Te zo@ z1-g5Bwyu8$daxp0?8 z;?e=W2%9V%Ve=UoY{|Htb!BL1h%}McZJN^=^yZDwm!G1#D>uSLRn7#WqCIC`7zpTK z|1xp}5KHp-&?bg$?><_#25l@)?Uqo~uYSO~+QPmW$*g{C2O;4mr!#N~VM+70-H^MD z^!BIB?Zh{DTy1K4F)`!Nswk0RCC;sLS81wSkm1aHs#{d{2RBwp^NLdn zEW$(tc!jpnrw>pIq#p*&1|=^V3(}vVc~|JVs3(dx8%qeO*m=6%hT?B*cq>Pd^a^N! zymFHb6dnsNT>B;=z^hq)(1tg|s;#nQh%_E#KU?};!bb8oWq|3B;u*`fyn`9tx@ojw z)9QQkTfISz808~q3}=%qmMpvO+1>$f7W6XclsfT0k{Sih61nPZpTJaz55Z^=D+n zmlj?v6yIrmf2`F*KOn8Vzg-6~>gSE6TcStsq>lvIQlieA{t(-KGCtV?rc4ha*IY5W zGkwWzY{oT_(ItdxuNw&UuV(L;(xS;T70;A$Ag5}f(RP^$y_+l4E%#tuNgncO?H#+N zfK!p&l}3z@vFMmyny$+jMoU2WPbmKhymTvBX^Ez30&6Fi@&It z8^CU3nfQIFNwJ29vIkm0s5jxSsM*p%*r_|s&qCS2AgIaQ;7m!j zo@Zo?2}j0qCH>H~LyEd7}Q&SDH$z)%DH!=Z>fL73V4YcsgQVf=2LMb<%)V23VY46Eg_Q5R;MWnP9qD zm54xsNWTo_0-`C@Y4$BrI$|q=Zhe28RjT(JyN?WdoFvWxrbjQd?F8R&s<1_-fI<*H zS2uNip2<8@eQwSzBQZ6U69)b)yFXg54Y98XpOQ3!$Y(^Q1%Nr2FwVGmOyUkR6CU9d zN^+^M&9Q3gN}iu%Ftxv+Gg!JGJ``-MuMlmzMfr8JuWe^!YfV4}Y8o474%LR@3k!8+ z7e6uvMfA9|@BrbMT#|i7lFj?3(4jMys|!9UFNt`qRfvXrK(kRYF1WtrvlvNrnP?qU z+|cMB8|(7ia52r*6B+RFIW*q9iJ{=m)e9*RU~uhIXof?suFu+sV@!Lqj$_(d_ju7A zO|)Ro2-%{gS5{=u&8UU$EGM58k-37UNGht8lo+F3LSO~oLgDzo#uXj)Z~E?bY<@D? z(M*ULBA;{SzRE73;e3VM_cucpY`CH|5$|71^A+bY#ihi&8xeh(}Ik;wU2?jOe$8Tp@W%M? zncnXbfGyGC^nAp$v61}wX|zU0@-lU#k{5biSbJ90v?6c-jk}60dCR7+lbaT5XPVo_ zoM?26FC9(~)AQHG0XWOg1glP38#BAow(@F=I}q*tg={{Wn!f-@2XU7&GqUzR2Hhn& z_8(sx@8rk*EN;&6e@ucms-h;)hi~KFT&wWdj!@>(a*eV;!$^~uqG@{Y9$MDK)S5M> z#>p@Ft8xK*2kly219Os{k*pD5E0Q*4i#t{ zz{(Q-EeSgzfm3>}@v2_2>x0)|e6dF~vx>t)Ij6_DFS*QvMO9oM(ytf8nhGVmhVEO1 zkOyjyT+-Jwb&zG6-ZVMgcf1-v-fGugze%5xIfbDu-j=oI#l2HEy9XuuwSnXOVp%&@8 z8c%n(A3LM+71anLN$_}l+tW3v>FG53aBGH|4s2w=mk5c1JKL4*Lt$RiAlgdLukG!> zWm-_t=f8YooK+PzEZwiABc-+$sUgLs`k`uUNh@|^C+3{Nk&$neI3i^D2V*_ zs)T*u*T;@@Xo^4^#&i1g6)P*N3rs8P(uWxC{KzPF2Z<=B%-zfNcK?OaFcRnsKWWi6 zBj%o6RXFOac+b zSDxTTO6IJKxl)3Uz8@u)e>*Q!BAB{Y{n<|=SNm_Mm=swvcOPN1*1qC2HES<`PA^-q zCpqdWp9xflJ=TKV^--s(RA$&et{}sYv15l0#lL;~_Rgem=R zf9B%5lg~mC10)Ocd=Pq~{ua2!8;bJO$@bm@SLlVAHaKmccP79YeSrzA{>B=odOP?5 z>fuW=og2Ns@8ABZpP$H3fKA_#!YojyEr*KFV@+=_DbtGwq6MUARQm#0j&mPu++O-i zbw*wSc;2VP>!tV7jPu&0KgE4HdgX|@2vS5CWeN*%%NZ9g<4*QMLHqANF0ua+{HM{i z?ki563BqP)6t@)xHLyS^RCKSn;R?3Z%1%9!8YT(GqewJLVPWdaJY5f#Krvo*pY`b@ z2rdKQnCX-~Po=q*t?HvQ{x^1f`c263a5rehM&Xv^Vgz|89NQZ=wYF(H)l@-~Vf}_Cr5^@qqV<#r_o1_Td)&IxzVepE7SM+>%ZBknk!U+RFCv`5k zk|v3?za$|4B0=0Et{$(TjFZ}@_?qv8l;J`b=I@nYpuXZn*%oyG=TSmiq^jGIp;wUDD0ka5EWIzA%6jCtw#n&81AH;-~QX$-0>`;XflM8 z)rW>DoN)H3>i5$c_RqKc>N2$(^nMRd{br!}@Kp7^94q)+jpiO@tx|`lVY_#?x+h%f zFxwggYB_jcd^Y{3C3vv-r z;s@z};@5$0^V^jp$Bu0;`h|tUOaANQPNS)X#rC2n-b-J%2g~vu`ppWIVGq}T5GjG? z;rnl@Dfngor)VMJrTo6u|I=4D{JZ|@qh^^$C?fTm?Y}}idTeV^#KUZ}k+aqikFdjzpD=9NygB=@oO(iAp5+l6zr3~%LP^MI*1>KV~edDFlad3Y8lxgIR3m4zL>tjE~@!;T&3)Lsx z$_Re4Gd&BAvV9{_gZFStUtOZKIwkFtaW~$)x$x|1^&Qgt(^@iWzQqEeQu}-ZO6bo# zjWQKB7P(^ub~Bv6e*EfhC(WMRTB96_=`baz=r8$eW8b!hjqJxAFZs>fF=nYp>zEVK7T8M@Jy(P4mMe0Y zH7{MzEnA##-IR9Tsovad1o&4(2+`|DufxhIsRzj3VH4rwj>?5Yi^kwEsT7JpS ztuDSg8*87Awh4m>L!85j{)(mZ^tmpdbUDAij@VGyvrVrDEmfFTst4M>+mEG|9YY(c z2SYZFshy+mkH2cRAG$V>#FSY)qm;iNDJ*27d)-D@*XWr(ZH=*4F~|g1Pr(C3WH#F% zoB2~@wl=2r^Bq_UKl__E>|C`#678BR5ReK59Mc_jX@$?m{v%f`2N zcaqTk*HDp>!D{q;pJ2;@C?+rTy5-s&?bzPyk-zT#4nkhuPrn$TdRrE!2d@4!#;gCc zVWg!+O_m>YV128@V!Y?h1y!5gGBAjkES^Ys>1n@tJMDE>uvtx`w5l9 zoXaD~fF8f0&o#f{A->9^Nh2YXO@F>T0|_8Q7FD$EyLUkqnyA%XOCL_#k|x!}t6v}= zID^B`+DwkHo@h^AmNtqGA;_lt*zjmnJSakZ@o@J^*30Li{#I51eg7PGuVU`~0d+4o z^8kV9h>WsTlT6Xc)DX@Ishi1?-WzYgjl-!gKPfG@SREjqWCcd$M#fSJ2GVbRW=w{;`x>ph*VJDirxmtwL6Q+Ht1vMUXy7JG^OGla+;J)mf|U60SGfnN zKal87H;rrzC6U8S!cEq~L6p2c*XtzS+mSR9I@y$m8*m^=LmNX*416{kru=LnbsHiW zm8EAD%S3zADP!4B^*0aS@70e#7CJRMMX!_=!L<%7^rnov!V^7asp7{=(+hsnx|9_? z_Cj>6fzkXd_y!U8ZaF0N%Te>Pz4UyC39q0a8F^;D`w2cHAq->0;}VaBG!jYg>C>m+ z6tMTW@%uY}ir(*t3FgzGX4eYrmV3(Z@aDz0buZaMI81Kek@;eikEeGu?bqDOaCzfI zuG~g2c8m?#W_aQ?h@}Neco*%OvH8)yGVwySg&!U0ZXzK?37mvT?&bj!62%~H z((`dIx?W|i=Txg@!iB2KfSk9kwjL^uGm*O!!q`%&?!IxS`DfF~H31o+ho~>7O z(1ZiL-d?^xE8TRIliL=QIwu)W*W@(q*ACT9NZfAX3~W02xIb|JbQ9H_vhj5r>{TS! z8(|7&RjGw-i6TY3^yGX$r-U@!jrpO?8>@u1F5~tX+2TTt`0N3Cn{J`CHO7h_u&acW zt=WIq+zX@qO>idKIq&C^Xdh@_Ye?6zxf;I9;gATIto(!k7NTlfrz`Vhq(#Aj9TsS= zm7TxnR7O+8i>sT5(|fcD@R~PD_i2M~x5B;`vu720lMw36jRPedERD02JS@Rb| z!ceaU$yKfTb|r~uLZQM%^RGXT!5`xJE>lLR=8h~A4;I0*XGcXD8O|3R=Rd0A`Qw!Q z$XwJy%Icj$r6@0J2K;7*7@xgeF*AI8N`uqOPUO9ZgyToZ?jyr$j+cV%a4gSF`0qb*i6V`GCvjJy_; zw6GClkAw=qcsQr>9x2M2uZa8900+sbdH+yC)wT#pJEgpXaT#3?VpPj7-lGqo)ixgB zS}K!Pu67tguG;!QHI@ryTqdQaejwUu&w6>dq?w%~&BK_dan;Xv8S7(Hzk@PcC89^_ zPcaW@XdI2*i5u+8bZKX4W<2_;rN=LOb>vm8N^5-PeRA5wkk>BW=n1073~V!6-Hl0p z3W=le))ujXZ-epCvc&aQB2MoN-=?Z~pmUvd%)mx~NXf9_BJN_mXtmto1UVHVT`=4j ze&p`NQq=`u|KssayQl0PoZGbrah1n z7uQvYR|ooHX33Mn1cOKdoH+MJ+INM=08A8ZYG4?8E) z8$T{;^5un~aLAfKL@P~i?k*1(tHVQ;;2b(KE|!E{UtMQoO|@-LC^j{8tchYtw``8B zF$Z8`tR}USQlIryA5jD&+l#ghALEYQ7Rd@OyLpsnri`_`XeZDTq3CF!f~`@_p-GH1 z=bn3_V|e2)Z5ySewO7RJ&4a6lJ3rNRVcx6Gi@M~WU#O(CIk>orINnP-oo+6Y3mG)0 z%lS+AlYazm8W!bNyY{Q)6!-(lg9D>9`sYJxU(6-f`jCu;A4_-gySY-yBQ8KG_V@QY zTw-zf>AE!afDLR`Omm&Qzq<`gQh2>4-#wgud%!LGntZjTXf4v9*#CJPHqVH;+heAI z-_8_i@b3$ikdnc;7Vo;~vdzbEvOdO6-Vo1Hzt8MUr>WnLJvi@ym+I0+CYE|PK4cM2 zT02`ieRw-D_!eL8QMs&K%glu;zqm#6OvAfNoH38>&Sy}xQisB^NMgB*fpN!#Vd)B1 zoC4q8^7ovMmvbm=DCQn$!ym;SRMGQn0WMgV9e9M)0Db)$f<6)K6H#?iv;r)JTx=HhEe+R|AG*MTl{={qm< zO@=g&99GMgit?E>C(M2sts8bL==0ZQj2lekNY2NSyE#UxAG$j+VvRFJ=I=S*O$xD- zNx~HILJBL~HF;lE7^1wgRs02x6Q4NCcx1BW$?Kxc|{-Lh(qhpA=CSsYKGmEKv{`~o-)SV3bnXYE8g{AL&Asrw;GRP~zolkbm zAuKz55JKPEjL1+%nqzKANl@4*3v=#Tt;94qO&!me^NPsaf+%WmTZJHW-vCXqm64U@ z{W#X^Ms}9e2Zhqh6McE9b>Nmt_)3QTYm*}>k5^XG=#T;@ofNWUN~Ye~RY@$G$T)Rg z+&iyt_tMpYU?%q1xU1Z)J=9yT_;1i&rVY}Ug)QzSl`#`xrGU}Wuy($ujB&m|n<0~) z#KxTi$84nWztZa&?7iIv-zc_rbfh3o*nooW^DUQcZ~HT|q{I-6p1=eu_ooSzy*KLm zsOMf{X=!QIgCdGRa!V@2==};OO&#pCFwNeUx#{l8^njfHZjdhtpY@s5g+2czNqdOV zpDbABnDwf1GWI4m-$SQ6<#|2#-nxwBsbZ;{AQ=QJa%&g2)^U3t8TUIf`$ik4rkdVR z%~fiY+aKvlm*MgF0edi|wS5~db`rC7whQ=sC=QJ>)dHMdE?14_tg)RxzK4`>UL(`T z^)k&x2ezK8L}#5u&avhfS6632mT=*qjf7rH929}g2W>W?gW17)3EWBR=ktE<)eQD* zx>@(0O0i)}H`b;WBrN(rJ;gyj@T3b&U9?{g20-tjBY28&pd{SqEU^Q=jO>$e=-T&7 zWMLdrz&7Gr@%gilYmQXug9z9$5W>NUdttDI=qxG9$)yBmT^oHL@sh!&{22irmJgIC19AlbCdPDm9c2*sHVzS<()Njq?(wis|o_% zP?8`xo;8rkxwqj}Fehs|ES6$C#{;{OXumrK-Il^InsO@`lfj!wM9;mSG>m7Q%bp+m zDsw`!w;);Jn7>lfdiFN|6CwNeE3nC)Mk%88a!ck4N*7aw6pQp%0^0ecz9y`WFXj+_ z?FtMdSbf{V3UEDY3E|gIs;N=pHzuA9BU8MUZ$Frfl{MQVIJM+|y~ zgrRYwT9VZm<-zo5llgfjkujYOFI9AI2y06zHyh(EdFVNcp?I$;rtd zqt#sUyDl=fP0oC2YwFbP1T~eC_sjMvLVFR6HZbeFnu*pRw(w^OdSJJf7Z#&aAd3QmOdNeRqT5ikqB2E8(&z z&fh=l+90(P=F~f4_VB8)ygQduozf=BiSYmcK=lG#G;ZoEJ;EB!2BjJ%`mo}5;0yut_~v(`Gqq{C=9mM~wC)sTc2UpJ zxoJOm+E|VJIe-+h;JZTV&z9Qo1T{)uS!wwOv4wI%!Y)^m9v+&%jK#7?CGZJOF8y_m zAa``XL4KciQQrN|IDk0NeWhMu=kGoO_b?(1*@=jWA*vL}Qkzmq2C5_~kIHLPv|&_n zy6jgN&4A0N=VPCeoWRAq z6K=BwXXjiX?ab(yiywj-T*rMn2Uc0?A*J++rZkEEMrcCyN^)*N2TXmslBww)r^4uE z_bkfIC10k;h!EUe!-WC|W{Q-o@ow|T?xN`W5U`RFw0oB%TUMqIXG-pheF-9Ou%49H zB@LwsU5FYF>j?z!X0Y|aj(p2e6?wya1_Ur6`$yS+6oyib$Hw^zFI^hiGinet z;gBv2CL|Uz{pUo85}3GDBmxeVb$~KoP!>reddWnm(O9h=osr519smm&p6g(MV$H+? z`gL$FdCh-%kwW_Cb(qTp&bh6%^^1894+qCpg?OP>u1yT8S*tI_aS87~e^6`Kx9xFt zLZ@H}ucFygQHq!E!812n7o#comp%d-V~!1$i*ez>7`l$;>L^EAcQH!CdsebDJ3Du{ z+s||tBl#6~w7R2JY93`HC#HQ!LY*5Gw(v16hJZxB8F);s;1bB}5rXkeXCL?Hn3-)i zQydb2>Tm2t9$VF(ZCCRriODYm_Aoa#Qs3P!zrhrCboO1nKT&rjqiFhadS5hI^tk)R z`l#JcI#~Tw;VI`4|ul{xQEYx2**1ujZ!?!B~v#za8U1>jpG!0i*WNVI_2XiLYhb2DwbVWBV zjtk|M@2yjQjB*ZrFOJh{rW{*yNBBCfhhHU@hYh09ekY&SV&)1hgui#^pFJ&7=kt}t zDp0(6cthfxKxw!5fz(tSr=nKkzOv<-4~KU#T$cThKW#q2)Rt~|hzj$?J5HFS{3}-r zui3u;_n!fz=KrN@`CoXaw?(Ez7@%+sEeC*KP$ic*Q(#hl?e|G}Ic{^)D9&n{!_xxX zpDmb7!@oF)U#Yi$-O)RZ)o;a&af1&oZIjnAi%!1E=6m(u*oxo26ZQ6H$~c-3$XUqD zJYg9`p(AFr5#Iej9>ah9f6v>V zo}Qbbjoi^IF*74(@&DXZe}2cqkDrhK_5j1z|2BE=f5T?-ckk_gVypWPd(+7vs>|fh z#UgW)cO~|5tN?dPoP#f)`RD6qU&AwDaUyuw`7gf{pl5-RXZ7rNWA&i<-wbWG8~5E; z<2@R~8!D(VPb6C{s`Q0$@$$Bsf&6>tZ(HuR#4Qc7_-vQnkbj97^NiZ(W+>psvJZac z-lbwA|Mh9LD~RjH>+{b@|G0O*{(sz(F6pueA!7xXeh(S*3*-#ucToCwopSdpLM|XUwcoIRGciXo!g&(FxV7({dwE&jr5k&CP#LtImjc>|z^n4x zX|3Pw5!PlW2Ts`AwfRH?r8r-KUN^xcCWShI%G;E3^w+;9DrTF;y+ki^a)X<23{(Q%g!-p+l9yVJqBUa!i^}h|mz2r{viRgj87JXgGDSv?G zhyNMw^;UQzt0Uz+!VE;rz5P?*;#r^`AaN(DmfHeekFzQ|I7BRM@b+Uu*qcKM)OwX7 z{MC)w??)#jT(96vg|8b$Be*qqS86TvTtXdnyc0MF=#E;cMuNYGH75!nwCjJ}oo`bA z3yH`_*5p4WN(wy7pgfIoyt(wat}6F|8r|)X=6adSOCs&tPC(6@TuOx%taiRZD)5%6 zqv+XQrZr5b5yhR}VLNiaMvZ(d(w;9Z!((H3k9U z{{d=pyn&AgJ=!9LC382Nn8zoiXEl(e!%H^K0bxaSw|I*1Z4Lf`FkTr5JRykCW!IKD zAtZS$Iy@jXHj(0^8c0d?HSS6aTHLWVUzH=w%U5cQ{v{RpVA0avp0u6K^)iSVnPj~^ zQ)*!yeGvb#d7)OyuPm=kLMf8G zQ_x6GrAsH^vK0VWfzfp^_il%lvJHCCEyMYj4BXesZ)FG)+FuMi%j?xKMV-Ju4fSvB zh`6><>|-mDmPo@|HWhnTbbOlYX_l6_*~A(DF$QpewL5ZuUcklWT6+}s8elF5bL$~v z`?rj;ZA;wK<2Y8@cXkZWt;Uwim&qX)fFP?iy}%2%4xhx>ViuSUtD6(G(P4kBR+OzR z)M9varn(ccezhKm0))GM3x+hXz|I4O_<|QYO{tcdUM1#YJ@@{PwQu+V_`xoR8&d>H z&n`WLLZna$sV<{LMr9(#Cj;P)3*md1LXO6}Y2;v*1}7mu-Wxcvxz%QAUKuBV_A?>f z01Te>$%YcQk^&c60s-q{bHAGdqS(hI#^`D<;5rAiDC%R}Kn znJR*DN+T3GB|xAuE&(GS><;(@Z$LNKV>y@Abq-YXmVDJf{+>7wHsg560$N*5;&I2w zzmVxtk6jLNmcLyW78Dv6J~G0`BlhM(e24z?tqMS_(NFg>-Y5XhJMP5@z9@X{~SGTCIXLd6 ztS7o06O4c?v2yT!SvhpZN*|T+k}ry(E75uT9(k8)JTZlw%EnQ<(>BJKsFOu}eH zgwcqm_j?1b1{sluTALUe%eL9vTmnvG#?^~Nd$u!7{q>}*_fpV(gn)GSpv&>U4d(MJ z%<-7$TPGSHshS`Sl0ddR_I1r zVMNdMRw+7-C7h~3VfS8g=?%Kibxof*a5?gs#b>}$qSgmEll@f|eBT!p^svEwV^_wN zdb@#d!MXJ;g!`Ts%`aUD-dtDa3I@RB;a82)J_hlL%mLQJi+lXp!cL;r*W4}YPOaVf zc&V-g;uY!(dag+?*EnZ%8F_cbICwf0czaH`uFa{T+s5t3Dhu6UW^o={_M^cojo@Ml z%(73iC2E;^%z^GRbr?B4#u6FlX^P}mWZ0u2tejdtF$6U0)^Ti;A{dj=Ow68E`%QhZX>w zn^H)n;3&yLc1#{7?5j7N{cC?&&*`3U|M78qa8wil67w#$B34W%cR-pRCkoCf=>TqS zZph0_D=s#WiO$r&dKTIiLFnb;935KqjFN_%aSx{xc#iRTO&SER4>inSoSwv7f#$yf ziv24?d71v?wZ5=8o~2Yu0Hd;>x`Sr|0I5LKUdI6pqivJ<8njo$=v~nPH34L@IkqtZ z^=>_&!Vn;2P{yIM-}=|oQuid(vxN3$C_jM93JMumZ%Bb?vi5h}EFzyF7D;(^zHAu$ zCy_FF^oul*wjf4BGDw3pa*85NcIS_Fb#ic`@Oi=8)89ohQNYTey39vwWd8?@iz`B) zK%VEbT7_+|T-tI$slk?+*+4ULto~tZ7zqBMgs7&afPC1u>s{B!KYa}(XN)`djLcdY zs#}yep4t0`lSp)tSsKq!b|gRW4dnhAH_E^eee56Hte^4f6;b_f++k1ze4DMZ%~!sa z*)Rne3ZKf$ho)Tzog}tr3p0Fh`(Qb?YWky+QbgR?h}y9@Vht&NmbfM7V7t=rU|Lw|9zB|LbWH!TzDkd*K}zI;n% z;K1p_$IP_iDXC%0+Gd>cbSsKb`N7QrL*`Ds#!C-YPBfI6UP&_2D^-I^nVzu}zqV4a zaXa3cxl7pm_9HOY;;Lqk5oPl5RwP!px)sOAPsyQwt>P#3|Mv_ocew?GkM#HdnQ08y zZO@6&1`SsSrF@fqo=D@W!6BXnn&0O7oqiKvBli@oZ(EWeiJiUQVVLmDP;wu>Sl>iUAhqM?iO>jF)&Y3evzv?NlwEHxvF zgTY%+5-FTP|6tmm$1cm3ON7bo>yKx|qUjY{;JdB0-srkEBYCXWay;q|-L=Ri!~f-| zXLDnZ`*MBlmWq3#yg(~Dhbq?X)4@i1t&~Ui^~H0vAr)i#)*N?l9rzdoK$~)2%>!D^ashm4bUa9I=;Z*+ zl}{Iclh>$-X+8;UW$Zp9k0`Fqs!+13$mi1w}f1)>wFO@In91+z}EcLPS_5zvaZv<5`w z*R8rF8%YRsc<>;LmyeHV*>u{>)O61s@Xce`@eIr(>mns}Ah&{CD_E8uZdckVt8HkQ zfdtZN3l*XBh-&kQAg0SI8Wl*#M; z(p%`5K@g|*Xc)Q`_}m)k;6dDJv*ZfPPd~2hMM2=0?$=1xJf8)sv)5hEXCQV#wk}c} zFJLBC>lKuR8K7%H_;6N`PX?6l-q*6>w}5!@Im-kq3^6}{cqbQF*oD$tF&l0V{McM= z<3R?U2ni?9KOqnVjH5ycUSP}mNeB4$;S!PcOvZ?Dhqd+P@~+(EE}zxyyDK9_J^wkS z7&B#Cw&rZpnJo{gW9_A0D~MSw#15gWaa`a|+ivJWNrZ^Ra8*zvO4+n&bvbX8yyQFE z*daNo-R8^Z1U|CDYCuXrML=q( zp&1a75&{Xm1QO02*M8sqeXjS%xvsO%-sj|6OEJKcr`%=EF~=MOK0_c-eGouEinNf* z#p>AGwYrLNz}H}Ri1!$myOQ8WUEQf;aEI$yhIEjCM>S*jCdUTN*)LW}bpw221`g7p zz}Mfw_vY&z*|`_OYT;3LoL++Va&r$0tHp=Bv&VE|je^`=o>c=9D}7akjU>^rF&}M~ z(WwAjp5z7fCbs+7n@5W>hz+=($vS>!A#;!SCLUSUB!dFB@bYW;971Mo0a1qupq<2S zE}sNc{W#Q5)Vzv4Cjdy6ygUd2&JF37#z4sQ4FpNX2EWkATUgy*qfFG_WYE;8Rv`_~H<2eKJdMwm5=#%`(l*7pNq_6@ek zH%R3B9dez)(X*m|`U0l-!Kyd?&J@l>Nye=9onja=tXzSZpz zci#`Jtd4*Exm%@Zs|=X)k`+coh>>)f;0e_eKt->BWHY@A0p_PiSV#zZeg2>@fKg7} z{tQ}VyF)%(fsh95pmjxO)|cr`Itn&xM;?x6>s`V*@`i4pI5U2FP%ZNNldTwQ`Mtz*Jbgo%2NL zzf~6i2hR20JyXyyb5A}+T3Q;wc$&~t`@Wy)D0zDkazsa0nf3+u)j`^AL#L$O$SPA0 zHjxQb9_8pRn*~2II!vkGWH=k(g{>^3;4Z`Q@8?gA&T@QSBNva(_`GHF~M6&p6NsfU)0LU-fJhFZ;#_fDP-pWD&} z)Yu!AS%1W2B$HX1)dX8_fYSf%DGeNxP>%! z=`z0Nm?>)1i_EUKX)K(4>6IWS1+u>FNo{9I0N;`ma(m9O?7Q;nx60ImFhj<3US700 z^E!D(<8Dl48@JnPIL}$OiN(}s1E!!MqQE%PKGfOa$f14jGXDA76+zMNc=TVO!n*Hq zl+?iAK`A)#CD61-krXB&_V!AI#}M{Gjw7ExU+{c=;l@Fu*X+@^^*$lpZ+AX#Q`%0q zAGrU1BJQV)s^HTvvNzW(dxoR6PP)CnNeR4MiX9pmkzU+sT@XK3@v=^`?&89#FVrrv z6RJ+Z%{EYsg6vm+nWTbG{7+s5`!fDn{rfokPol$;(r;BaaJ-Oz78CzZ9FE=hvy8L= zL_Cs!i$9i;UbE2&s%n{9|9u>Pe0DlX%?|li?)=t=ycAhfM}Ey8U%#EqZSLXC=tCYYw~6#*pNN zLysdb&o=DDEAIK36+yES9)(!NuIy-g46D7~Fg&1yMvvLKW{$F1X{8H54o&)&yf6^-W|H!ZgXZL@5(#iZ|h@qa+ zc1+8HqOFe{y(28X0#j0FO;5`C>N|4Fs@#+@G(q2>!{gtGIS$v$twcrObgTIK<>W>k z4(Ws+7pz{qWE`i@tHI0)HlFoh$tRrAhJ60FC4&9+kqlbOt%)!bCO7B) zZC!CQ?~nIc0+1YUY$mv--CtAc_qO0K`IdEB;De9WT{_V2A`PnWPoCaVmILMyPdNc0 z|G&O2>gzZ@{$T@a7u_LD*sl}Qgw_W$QRP^7U#nfpGTr4iW zPw|WW*McPPN56d3_NV-U@SqN9Wj(&Il~i@PA~JB{$BVOSE7hLuUHUy2H#>QIq{2g1 zAFSx4to@`VUUo8lgY%eQ@N*q|Ey5bFke}6&`FQR`SJImzspltM)VlA&=B5s?mXD+Y zZ6&i$4-bT=s2YvDk2Loh94Jzx?Q;2d!;Y{WOCjWE(5FqFFr}=2#-Z0?j8Yolpp+`B zs4)6JZXpxIp#`O-k{TAEWcy&%2s95f$lajh@cjAn$*RHS3|{iPcjv+re+5rXPv1#* z&!>qsC%-v~>O3=X7~%``>{$kOg|psBiS$k6+(ZJ)kM)k(pn}>mD5G?*pSTvgzD->j zoC+kpZ;1HT%-TgI6z-T>PmzzQT@>;)yy|?c@lm-T$TH?%u1fDh878Ozo?0ZLGVlQ7 z1i=1mw*aHf*k`{DpzNoI(}Qbl#W|w2l+r*y2^?N)USydGTop6`TNAvRn&v2fENu@0 zm426Tl>#RrE*kWR`fLlo7HC5Z$@j8T?4HQ^dKWftfuk4)I@NhWW%Y5u=9RuY97v^j zkN8DO^eLM{ zjT07_QMTek4>n=S|TsMrLw^2UBdB@z`{f(D>YB7Yv7rPT$I+Z;>2EW#k`16vqs3EQ% zcKyk8mo(=wpjO@s^G+^$v*qJCYLh#pz*_LWLC^8i{@Q?$M-9O={u_^(nDfHGyj`!; z!31ePkFluwIvF4g4kFVcG#^t~9?yPyw9ec2Mn%}>ygFm1aY^6?{5@ib{hIORm1Ad4 z-N6^7UXLvcuW~PJ_ZZ`cl!Tk+u>_?Ke1l}IO@nDo^AxJQy8|Hvd&U%{1<`2s+IPx= zh)IV_h-wYBp9(DG&$`0wqOC`38FD@8-1!0({Q>K`I83NZhi~zi+4~YZnXA2%SK*F} zQmk*}+Q>e_a_YJYowy~%mT5oYL)H`^82X-XLJGRK+Q-Xt2|X0(-!ji-pUMvbD-)@! z>jw4bl_v#U#nLxHukzruiAm+c3(+SBfmOocI(aoFnU=|^bt*}N#m(Kko^eM?Jhs2g z6F{MP?vsj(urNN95VkiO#+sl&?DYn|)hRD4@3um6zC0l*XjuB-cRoA3ib=oM^U`DW zjr}NpWPiSquVbyF-BUF7UQug<29a0_eSCHkCC|a|BuAUT?J1Q?Ykjq<;6b7j zs>Gi#CCSMM8Ex9a+N@@K5Fv@0EcA5~C8#)UvwC)e~rL{zn8eU~%l}0r}AEH8w0HA&#-Y6U6$Y} zcDA^)u0jFM3yfnPelb7bjsY48t^wCRoCSU!Pq#UwQ}jdaX4(=r^RjEr_GSxZKt@aU zO^>({XuVE$get2W!NMKiS8*5hT;@7rYUlC#7!z#?#s@+2(q_29T|d6?{@1KsQd%A` zF~~0}(!Fe6)N@p#{yW7Fe8Yz~hF7hipg?4LW=2Ftrr%>nPl1r_IacM?^z=B;ek zIk;~t<+q*h568F9r8K{Y)(si)Cs-P6!U6OhHkhQFmjQ&x7lR@BPEEXxUW*9dL9>H%Y!gXiTpRw1wj#x4m*hUZ zZ%rqhkL=GWbcuP*@2ND$TUXqKjwB}wK-zCTM>e~g#O0VgmpadxcA}T-9j0>3)Y{3& zD7a#L*cLbl7z(sLZFi8oiPSg8%()a+we@-RJ16pcT(hnOlX`9W;St($SA;UyhrJ1s zH85Vh{^s@u>wtUzxSt*uTZu#$&NNgfQhl7F-U4=@qyBvY5Mcc?jX7&I>S>J?w{N}0 zDHj${dHcd6ftmwfSW3PXOvQ_}^YRpf5hI4`$RPyF!97hf!6D}x8`Ufx?$7nNPVwi+ z!uE$6M7=mlTD3OE+n8B9yyM>PF2n~|Z`EtW2byE6$_!-$ z`R5aESOKB_o|({Tz*%BxBL@&)`u7`fRqN>$lh3V`A+?}tGJ3^$amFlU!_NrIOIvz- zi5r_*zCvdtW&$5qPbJHIA-mBmA#$B9@E1pZd-$V|^Cb||Q*{rXj}ILU%f6NM<8uJ5 zKH$(>y-|C^LTz(T6T^2znb}ikT#c^58TFZu34ygk*w*1PL_grir!h1|i z$3-FF$_cYd724XciAFu_)oGnpp|HDRvr{1c0OKL+$WeLH=!jE1JJ0*t8D`I6lLGsa zabTO#wfyG}y&-Ss^uM?Or2Z-DSYynkOCPff??xHvUN2>49U`H^>84;Y$O9i4qmQ7_ zJ$dBSDpyQ^d925`xl3KCud>g2B$}6Wm^gW$j&vm7kq(yc;al?`b?nEPdzt}ZIzg8f zH*@{>%C+2#Wf$lP@1$<_o<0s=7~v^bO0|}hyJ3}Y#8?XA4zR-M5l+fr*JB~b6>eg) z3O>=e14el4X3K*#G~FO4k=b)g=c082?K}3xU7c$Eaucb&^b3u7aP-s0;@CQ9({&vw zcTQID=4C{+4~~B8%>uf>ae~1L63FbfI3dKs;eG5@QTz8N(}yKkU%&39sI&5+&FB+! z%Y9t@TI%PCERMYKd-qC@>9j zi@w3wj$^~U!@Pag!5T*GE>UnDD&q_s;l}PCqA#dg7YEkeicda)wkN0P`{Q?ZF5CES?mcJu6Zj`Bb0 z5LB{SnMLS~uLMRU!dXki~sDCu^OMq8|u}IiixiS(P?W)no?dK?AqSNZz7$!5J=& zZ2NHUhR?N>UPh?W4r37t@_u>rH`{X_9%%J)X&?6baKiJQ^q%;^@7 zOcqT8a|aPnsSdqXsiF%Vbl~aPVh9!&%xWm+f}i8v8=uBbxz-{d%bO6}SX7fPZxEYl)calmE4xMY zJmZQC_Ez#Yeh$q~(O7FQz?RaAgq*(!%Lv@!+Ds5u?8&A~bPoOa)gmLVdiLdwShbC} zTG5<2fN}b9Vj6669}l;8fS#_lwzg0&gPS)2^TyQ5D#=znv6TWsTDHco3(GIQel@hQ z%C|nUf~{)B)#_%UYi}Le+kw?AY^ZlLqIs7uRq6G63Hj6!LWS&Qp|+{@wVyWyzC11f z30XTF_NsT%hq1nc?nOd~^^gf9`PJDho3k9*z@7{^E?Avukxi6=(4) zLCHSu1~;wzBCiO5n3WMpt8Fx9BW%K<0f+@fYXOM$8~B-}8&k4988w}q5L3%i zD-iYEajOo#Hx~BcmVBLwzo5Wn{;#4QCZ*PgyXgn(oxl&KWPU7WyA_;9X50dSlM zZSaOolq7Cii7+0jR-!VM#3Bhqq^HO2ZGsl=WC4#WMsRf!xYT^yXF@s5El-iyRQ|<< zfAIQ8n@|R$QotMh^W>8!>oh%EFt9$9T8f^9%x~^7=u3|xA^^2wU}QuoHD~`m^}|v7 z$xOj|kt~-f65%UURAHIXFDsU3e_OFc5APK?N4-GSatSNgC=a?XA_@;r?` zcGMK?xnNv6Y*yiFEr1d@qE*cVy!9jNn!3z_XiY>Z$U$AfGVZBiJl*TN1Aq-=_T{<* zWMH1I>Z)OjNbbl2+rMcefLK6eLoNI=p9vYD+hENkhk+v>Br8!ynOs5{wG))0Spy~33 zDLzFk4IUiY0Co@Kml#sfj=a^kj62bD7r(&eU5@5yJ>Kv|?+=Gsa0tW+fzvC zuJv{*oJINU9Qknz^(al;A|qwzOsKWc6t9{G$oBn0D@*qD^P`K$p;=BB>TyD8*1+IC zWvFUSCWe^g?P*fyh4@JeYfa3~#WTlx$o62AGNihjldewU#>1CLb7oGPsTZk5SeL8a zcG@_#(OImx@C8|iD_5N%)^Ae^z=l~ledUI?Va-Tienj&+FktKbNfyUl-B0G*8ty)I zjl6yCis8qldYT+e<1`JLm`C10*VJ7^cx>(%nQCl0fl<_&q2kFLIFc&ONwp)%Y$h`8 zr3Q_1&o9uwYuRsJx5w$nHLJxoj0@>&%yjCn{Yqb=4(jRYQJW>gG69-G2;T!pIYTi^ zec-ezd47Hmc1|trjpnub@Yn;uw<8L>efCiE1|e1a!bOvl9ODyq-<&$xyqDl&m&6l* zCf)Z(vKJ!S!S=#yS7SCE=$V|#fx6KTyuMBsygJ9w=SYV;XXu-z&94wSb>XnLgmRzM z&RqKG?$AJu_4o(m?tT=>svxzJ9YpgK3^uYR)@esMBVdF4VSlbntS{RMupxWg&0PTPC zj5VTqJ>Zv%%%HoOp<$0z-SRI|rhq)2wum}@{CKEWwWa9%!h$JydAooLL$mOncj28Q zoVF%kDu{W->mxOQ7N&o3#arEm#jKznt*7MVw6wl)*z?P7F`U@@Q@_U9X)?_hU~k8o~=+$%IJ2GoO|)j6r|0DHY^tNAOTo!dw2xW7vHbF zNp_Lt1nS?paf8JLUZo;R;+-U0XUthh-`g)s`(wk^FI*##2z~gG*&rQ+#by|JXMUh| zou(>Vc|Tp~(ntQR-g6)`j1jMUbfC*+fkMEBl;YfQ?BKcJnNuugXBx)25F12FXa&lD z?TSjw&I-q``s2q5e2Kk8WK$-Bf~}qiWza1kecs_aHoy|t;lnSUS#bN;udn#i0G^6l zY>nmH90tqAa=`?)e?kC&{WX$cR8C`nNnL)@vfcUVWUaz>(x|E(R~oxG;F%RL6FU z9G%j4_Q@$&P?HOmso zl>y&nWh+7f_7H~pnPaSoN1jJz;8F631M;|^9MY3=onK3^7b_|tBKq`_m}0Z*Ae$7EG%aO(?6-BKz~77 zStcMMnpj2O0Q;8OhQz{@D#$zuW64zRESH7O{@RAkfJn+*!2Lyg<3;S>1yI|(hUIAQ zwIF@Y-#p zN1rncX3l&>l93^%>L-qm_E-Rqx1$JdeK1NItttyfJyXLHO1SFO@J({VSNi8 z3hzOTy*_>1Zn6^~O00egt6xn*JEGQSFt6?5y|#NgR6YpTuZ4T zQd%KzR60Z6mz&Ag%}Qk2jagnodHBeICN&_Tbc?!>9`f^gghgIO@I&}0 zC9k^3!F=@9xT#Q{J_=17BD_4wsUc{s4Zs=@ru)@o-{{9iG+K1AU(C7+Cr$krM`P9O zMhxG@h)1I911kSG&`r5)f(tsX58EC%1A@+6?6lpwEWifAH0C(ox7(J*4*>uWs2zX+ z(Tw1*KD-wVPQLp*q`w7t^WhgomhWTBFq(V2*~1=t{=xdFyEUxrRk8H|^X{ySvX$qIMa;29={t&wwAJbf= z61-{f*Op`ZCmFkGM}SR)hSFu=l{;fu2@>{b29E|PM$p9=abd(M4vzdnkSYWQ23lj` znAR$Qq+wUuFCRH_q;Gx5o`M41NKNeyhS%@ngK4LerKuII`$3)b-t{2U^z^iIU{-hS zv@=jc-+Uur1u&GnC=`!8k^7`3pX#9f98Xph2DuQxyRE}KV>Z|Z!Q(r^C}{{=ExWrf z4(yB>BDT2IY|vrw2S*k{Wjp=l7j~E{BYQq{D4CVpwa-kZd;C)~i2ujAP;-em$^gZV zPy%kEo^Gs}HVTSZ@c?~F`R|(|WQF@xL{$LB8mnFbtrq1*^**00@VqyqA%Es85$R?7 zD*xSnCY?lyw%&$E%Gm1l$D^a3$tuD?{O;-@XFci={`7pg(wh_>jp1p<5-E_BFd%^y z>z85cyW(QC0hM6FFrd3TW`%;zU*?yVncN;YcEnS-jkOas0XlL?^-Ji)I=8Z%3>wDM z%KxOWDj!;s+N7Lb(jg8pcMo~n?k)yUm_?A>vjaNgVp~b?r}uE@*ckJxR&lLwcIqY& zqMdqXVQz7DdwGUe_X~DqAb(&Ctc@Qx1O(@fQ$JYlEw2e#t2$MF*8Bt0SZZDuGk6Ka zzA#ZF3g=PSxd_3yo?*K~G zJDQgM@F!_D$73p88n_;t;`QrtqhDG8c#`j)M6a1l3!@0dyOYu34+r>~=P>#+ucD{mh~5cRKfy`i#0+ddt zP@}V-3eADf4~AmLkWQKah{<(rE2>=OoOKS+2nTN4kWn zONftwty)Z^y*;w3+UmFwfK?}Z(-efnwCru9uf|FLU;dT;HzVgE+-qTs_(ahb03aU<1~|^0#z5!Y3Ez1NIRbLErgUTMmLq8XjL3BnnzPvKCM}A7Bj{Qp z>&DhVMI0|f;pt6?h-U=HfAyYcV3G-)`u&%=j^2@FS8ZWm@J~L)hXzI%CgEYEcX-(0 zglHx=fO0g1ubL9}#`N4NYYPowBLZzyVp_%8x8yAB<_G>K2a^K9gb7_tP8~;oMb_;E zfU~D#)~|bOuar7eFzSqMQ>PeZyb|&^M%{-|UEm8U>Cl9AUHG5s{k!f1c}CVXemT71 zyS|}YlabbSLB;&SQc^|?2BudnQIJuPX7>_DnN;D=Dix8v!(l-qcRV~_S9GMs`UX^X z;72bc_R~~+Z9EEft17~qWB?*{B%(v^<5~29pMEu<9V&3_q6eT{?*4e$po%pBaL1sm zwR43EBVBp-(Io9IR6G$>*q%fl{OY=PYztIU8KtHx6-HSMFF{3O zcN$7}9C&aRP96+D9@dkbd5`B_IdTn6`V`dm7Ko>qfJb?R>k&x<)U9>E`T_BtVsSqmDuZvWEkAh^B@QARuCtPRkiXAW%@V;|vG;TQSGY9&9f_ zKaQy^y5Czg1oe!G5~*KXKltM#F*!Ne6fouiDU(!ruUaa`?khMJe(wS_`L5)X6@Eti7mE!0zB}Qp@Oj*&5HD` z;?FHny{(&~iNcDOtMvL?Vuucmu2y7FE752;ECMUQ=e0r%-oKA6F@=ws$WI(>O=x$O zP4^cM1OWrtQJPa$M7#*+$rSOakmMfwtmotY$knG2Ah&YAw)HA?%t12MqEuEyG!I8^ z3nf19ObJ!Y010i2pf>fVZ3E{;qN?&L^HZ<_%$={5V7e@L;r>m{5t>v|)UD@xAw>^= zhJh9v9C6aGrgGXL2cTgA{f|Urzt{B>`^w@7Y58&b1b>i5@mwnE&--Ag$CokZ+i+3H zAh4W_b4c%h*qJE-Y>Zw+a}TSXICaOoB`C+Kvd_M!r$C`(E49XZGPX{yinDGk zG&P#M3Lg0@!lW@szr#XW17c}HG0}q-Xx@^z{W*0kmZ=`*d$(y=;BmR zw)O`>iNk|7(%Ug~Cw^C0cr@sPF_?qpBWa*$+Pm<)?bg)DuSEUdAF{Qdar^}xByrZe}?)-xbRk^b%k%&-DhKl^H0vi|#re|>Sl<$njw?`}BTfB#rEuEeJE2%D5gr{e-f zDD-nq4zKuy-9G)%42sI05)K5G9) zCHr{d(*3*fEriwMPxu8k8}2e6k5iH@+QdEVmEvuE%r5{z7R9qF(_<4O8HPMh|6$1U z$6!WC(Y%5B1`O2BwxWOMnSoRPu=N|o61?}ngT46wGPm-g{(Y@n{RE|4eUvBcLMyVJ-~39$>~Gwptb=^}GHvuU19O z!mYzAo_{1c`KN26;(-qFNN7w@;XOS)WOk)DJ1)VmTz9t5fSf4v=yumAtZiw2C(2diebwhNTsS@#bd%rf-rpA*M;U>f}?^{US%uHz}rgn$g4;Re9{OCrDD;1eD zXtuWcD8aD3iCu;=)nm!uDa!0#$9Fc@pT0TpKFj&YU)VWN7rY~x1im!85>UyXzgDck zxW2!q*YD@8$m%h46RGRy$mV=yTbC)$D!0cFf|_C8_tEfop7<9xVbNFo90&f`wQXCH zVq*F)+}T&A=KTeL;);Qd(xC071s?7efC&pix_@yr{~lgV?f;qZ`u$Pw@F?)}yKDxy zN&M0JQ9aWpTEZf#b49IyG|Q+}Wu0!46TawW=!AxEmVy9)#5R#$2pC|qwmVN|Xp2JY zGcy-LX|*~5O}od!8Se04!al=~jN}7k#sXOxKr{x*LEAMK!27AOj~@NuIa&!B92`9I z*I&Ir(wxy3dFW6Y4Q9vqMIWj2c~KQ`7o9SY?1Bn%`$Uezp8#~iIKuML=}Ea?ORt0{ zUW8EB40Gs9)Udz+C4NB7`RNCdDCy{rrMyLhyc!!*rjiPG)_e%aK>R2`A-WsI5n#yC z?Oqizw&1S$VdY-tESCvngdJB+1+H6ME9Dt7G}kg|=RooYTQn|JGmQALWZ5A-)_=W4`$oA+Dkyqi z7Xvtr!vn~}{eof*0a0Eysl@c8dk0aeawUvECd^)U=-Pv7Pmodh4=a zJMPWoCvn`o5Tg^nZk~}2h(HX^jM@JR`s(Ke${)MLCEyfFgOmZ9*#Icu0%0uc+m9P0 zU5e02@iUlk@VO;kqCI#`vjT6Tq3bIvzyqoc^{oO!Z=JmPDJBl?P5O($SOKGsk#2)R zWQVKdC6Mn=VBN|=h=+0WPO_UY&3i$We{$&XT;K9v)S30TGbcF}-%&x*ho^`Sj`9d7 z+l^cR^$Kv1F7}K(6?D7#ZCzJN!~bAd%eoksd)2F&;EI)U4OqcPkoPjM# zf}}>%6gz-351ZcuE}p-lZW>Mp5%BJV-B1@tp?8Qcl0P3LZ=k$E1XQU4ugdmw!cu~! zi3WPT4EXF+z&xIBVRVhXlRYwah*Ywtnw@X8%(x@<=;_miu)-qz`@@vfoNUX@z#W>$ zj+y0nwsxbEwzsEvUowwS{3$l{#ID2D#?8k~lLLq`eIU*y9gnYU2i#u(`~avqfD}Ik z=<5ZW)ZLZsv;q(ED}FWl4{-n;GMKz~XZVTLB@2Vk+s~@`;hab9O$)0v#LaI&Q$VGn zCH6UfML?;YgR9@02dOeg2ecj6fZHF!R^mBA$*T+stBP$7*Nn?tJ24BhYKZ|w#oA`gZ4-{f}!0s^H!Ms@YSI! z{cW~QNvC~fyv&R zH~)Cd&;PWiVt}2CO_E$?>)esxT)3&s8SmDpp(V3&U#t91$Em9E64FY1$LzP+R7wpl z^zp^enZo+|2Q-CmJ`wVsquD^E=4K)^XhhKzz&74Y6;{1*{?5macOD)oHV-u8=87x; zB4qx8_Y8wQAlP)vGAOu3FI{pj%bmZrh_@@gjK<4&FB+v_EUN9SzjI9tdJb)dHyRB_ zn|F2U4D`L%#RP4*HvuicxotfvIk9`_h74eTR`EuPa21V)SKcVBws5y|d~tVLz)jmN zVk1F;wA|=5bX;d;{WD?*bKksn#z1GV1&aYmtQIy1MW4F7`ZSOQSC7#ytTGc3mee^T`u?5p2R5GC@7?6&a^NuSFAQ%`{GH&;65DAXW&!mv4wFHmF!ZnhxELD{jrK zk7BpFrni3<=(zxwb=&n~g8SmavKj?}PEvP0jw%GVbZ@qr3;c9{=eO%ni~|z5TD)M9 zo5$+4R<2)(NZ*>d-OS5o9yT9;8-UxW>|sf0xNo|yR)qXQzL8a6-8D_!f_tS@=#-&z z3U63g+yZl=c=GGqZ)@yka@Ol}8P&v@oNe$EB4VGy$yzI9oxZw^1kyHa^YVqxB9cV6 z$u-@#F@u5gLgB+j;Q9SQM(}$;Rsu9iz^_~o-3m9hRzaAKIK&U$O$26LH$=eb2o#eC z`uVQzLG`z@o^I~{JOAjGOHuH~b9vWig8z+Po)!BAqWUCU78ZWZ-}Uz7aQ#i>-R@MP z0`oq}GIq^tvYW44&!nZO%)L!!u_##Eo``h>$`+|sr{(i@SLThCpkAS~8%ox)GK6Z{ zi)|$;xkMeGLh1-;LaIJ_tM;%h(VWK=3@QaXWQj_N$Xc|0!#N-TLqky)Z4h!Ll4fAq zw$MM4Rlvm_hILsOT`lJ)R&^W+*o*T3mos>jvN$v~VY_e?9Tw(`CWrpG=&924PQ9+5 z&4;HGkAxSGn&*Q_MO$mQ@!|-}^5W{#QyB=CjIg!AqXH0`fE!pG#D&`jXbRm4ZF3{{ z7eBYv?zPE{8qE{KxKDEwAkb-OjfO`1)_E1oouFJaRB;3r2ISx%)-{-GFj0wtS+Hjgpkt{EK6&bRM@$+~>ZuG4ZZ#*{! z>-@~&2486Qv|gUP3YC%=+f?nmn{`i(Io`Z-J}JC$K;ja$dN4<%WU&W1!a+^6c^R@9 zOe+6FZM&Lh^h342xA&!?u8!Q)zHh1Ra{4!(jmY2%tIX$my+sFtl{8_Jc3|OQOq>+n ztX8rOe}}I}Ufww?jlD5_wN*SXZC*u(m5(Ran;>g5vC}0qU%F0wnP_09?_TL$-|O!d z`T=t-Hr&5#qJeSsdpnRCJL^E7ugo97<6y(-4j-I>pc9<+=I7@7*V_KN zrT467BjPwR`{#$HtGJ{yvww*U$&H0vot7ashjSZ3U+Q(R{hZ4v$(SAsqcsOp2@{)h zd^RF$Lo6)RS{{nV==-i65|H5P4G;Ht?v4FcfA2-u+OFWDTA!$!Ll>ma-kcX;fgtut zEwD*A9-?@AGD=x(dnJaxeBf}@8i9gQS??=gFe78hHHL>qd>fYiQG%pK`_Yp=6Bn&? zT8HFqJ7#AuogaPwqe-tF_iV7*>xaeYFECF~uyC+|p~b|o831x~t#u4TzotH8!$b>a5r4U_kE09~{_;7~o-nAV2uo`9>k;PAi zd&={pMP(5ejd8A5Z9;ndUu&nhrW!=QB))}WB30R6#N zr79t0ry!B`-g(xgAgd7PJu$GLXn)gc<)8s-Bk~{{?$#y=%>|xaRQ63UyD$N3sg-n= zYO|Y2ug0Q}5_y*(L$chA^en*a)wZSDzS zs}wBn$#Mn|eD~i4UJzbGuakj4mNv2AkW$#rg{Er({l*49u*H~y2dlX)+H>Wr6}wek zmvznV`n{=zbBie9=Pfi#2>F+1XSbfbNfWOIVtH>qog?@c?}c&#bCBs<248ox&JFRA zzomA|X?@<&d!DbfEOcC02ZVX?$ZRf&w#}mnxB8kZ7`-x?qch?>XfM8?<7~L@CE!4o z{tC^%sQfKkz0UvZRN~p-^x3CsnEgBISc0H4J` z!nM7RdtiH)Eo^jJUe=cs2I~1wpE9ZK zE;YS~Iz~_V0N(WpDzjE=g!-3;PXJm9NOS>-qoBGPCaQB_UkDSsrmEGWs?eQ)B^d7D zF44m?{+B|YBSRst`|9b9M)w+GnQ{2V=^&31WzSGQMFJrHA6cZ_Asu%#R|sswlML?~ zXJ0V*lj#;1{HhXja)LR{2k*W7bCo;%_Lj-Y!C--W+@!J_?eJyQOu}xbrBd3%sa2V& zfdM;I`FxN-Gjl+m-gB1CqlQ#84;j1B^QnKTt5fey@7&&B_TEqvX{Tww8iDP@GN?Pv zw~)+chnTogdisA-pHG5)&rHFZK|)yAt zJ*Do>V%5$ewMZ2Olz+6zNzo$C&PlqG7&rfb?JHIk^=wMJhl=SdR7?T}c{y7zsi$IOhMDDiz} z5S>D`QB!$TwB2hy(vxpjXOjQd$*Xk=Lak3Oi?_d*_b8dSsb!d&w!?7>=_@h^CTRI1 zzF_HpjTs}4nGd?gcZfL)-C#QIYVTwB;suMswkH>{&VHmv7}BoCQUpOBDZgz-a9tk@ z62$)v*ez9u(LnaNF-HBt)|eN(IureiV9G9_kD7IPA=v-D@#@ewK6Ri{dE}_dYU7PF z`y|z+(U$1apJy699fi{yTXoY4>Lmy#eRN%mge+vX@nh5K=bQR#y<@Fm6lKl9Klb^| z=nlX0tHW4Gl!$|%F%YcA$CawO=C}Dh0$!aU89qIdr=@*RX-G1>Ft(p)jOscaw2Q|L zF)LMJ`u9vee0uZ&`Lm0wj&K!rm=$I#F)xwxxrr)LI~iy03nH{pL`w+^)f0 z7OL)N&B4B25?d`#Cy0%)l?A3;8~FJdy7-qd7WuDuQcrnJQo{qZz?ak4s#s25+X%aV zPBdW2dm$=egO1_myOV}!)_PjdHCniVR(IxaQ{a<&{jin&7?VKjlbx=Sk6Yh8B$ULz zQ7EVtGC~D=n3jA|c;@kNvmq_qX0T?c3+l2vH!2>Relz3Fxf}e$m~AtB-2PO*6* z9D!iv;v$iXj_p%ah*#fB)lGOUcZ2(ufzwo88t{rMlRdwefdk1*f!Dn8WcGd9Rv{bH ziGG*QG=CV{v?EL51ix~8(d`f zLtGzj(`+0kr9`!yv=9H#{YCCk;7i`Wbe=I*X859h;4t-3kRy44!mW;E#z7+jbT{x^ z96>7*=Y^L~GNP!R*s45GmVW$Jl96Ei{NU5o$+h*De`30zK+CfI z<_qo(wbX(+$NEh?o!ruUGF|C7iNfqj`l}%!WsIis9HF8)#uQBN;-OC&OcP>DA0G>j zK24$M7Ug^z_hc;f`veOH3oQV(X1-yE%oWh-Sxpdxz~}Q(m3P{ZWg?7#86~WsV1W!+ z7%qFa)6vmEYuUfA8`?Ei9RmZ8Bt%g6>pQ*bI(8pThpN1wMeK17ytI)B>`cLi{^+J*}|e)HCM}CqF;xs>E$0XW)^pg z`18SgbM%KX6%R2yD(IK%%OYGV0+6Jpw_`;=U7sXJgRITS!^NQI)iklYE8n(hjI{qN}d~#j;v5112)-;BvAdg}SBF71(4L(mJ zgA9|3)zhrE)mNd9{fx7~4$DZPFk`$Y+C3K+jC5RLMb8U5ui-S|*B)>1x|!byMTsj) zG<)xs)iT>_yOylcrwUSPAE7&-ktu)7a}w(^(&so#bm>vKTQ9XtqUUxU|)Gt3g<(aM&A<*qEW&=9O zeGUfbjh8w`0FT_yPo|7`_c=syL}{h%*=wj3`v;hr&wZ3>y>M% zmF_lA@T?X)p7z#ngduPznxj%Go#$O$?ILx<#A7{-J z>DCIt@$JfQY=3Tws1M}LYZV$#HJQC)ogE_|uMFB`3UBcUGR+?%+f!eM#x&a=G7 zr6c(v)^!!Pf?7Y;%?8x2p*D5?c=YuzDaZC(F~+bGO|FfBt;I1!w$&K3>_J;tHiZsQ z0gmJ8n}z7+8HKQ&Pfs7P+`W0xUI(o2Wv??qc%^JSwf8V$@i5n;FrQD=8`MX8hJW`D z`HzHd5>PvoMvb|QB2nC?F8RY0Goz0Ih-<8Dodux#gOksnKkuDRv`6RW3Ic5Gv$s7I zng*;OSgl0QhLZg=xEN$oCqO0*u%o-to`3zb(*neY@=33F;%CqDGy1QARXY$1mKBgO zKVD3rI;=`L^J}}i8RgQ;a;{yj=8hX%#7BL*PVhC$42qW{t_Mbfy*JBh8{$q{7~DyT zEkNP&OGGscUOS!_YTWu$u5xrOMPc)j@`W#KhHq5Q<1o#Gqu^$+XjDT$HVQm}GYj12 z`w(0mAkgY}X1lYkyq*36$Sy$o+KXAsA15;ctZBAmgkN0J29gW0jIDY;+zyzl%kd=3 zD_vE?GBX}3&;w=#saaJ0$DZY2rDbZ{(Uic|K4H*@ZS3SxP2cD}U-PYRU1w$YTA5~z zQ*b6gKZw|9?Lh#ofmBzT^SH9ol9c^)O<)elk( zFp)4chX?>=xNCVm+K8{dNuCr)$OuK0fNUu_nTJAJLp0al129#Nns)N~@XN6P@Xset zk^}P!%)E;=E&!oE1V}K4Zm0^VU(1R2q>>^JV|=ud`%Ybyt3EeUt#MvZmvL({Y-Fu` zjn2lKV~B%tk$}EjZL8c|!Z^V}kir5`?CvF%=0+|*06ERD=DK#!;ZNR1gDq%$NN?+Y zBCZ2p3mqJVzq`r+D?p9_6|V*+e1%|8n}9B5_sOV-%sA)4MYt2eabkjNOqEZ4*gqSh zVN(WhklGtH$>V$h66yol8lnFecW(g|_1?CPvJGrd5h;FCRu$Q>uhz$IZc4?z^dBt~9ATc?s z;O9jh(L2QMGM0++i(2*w_~KLd1oQvoRXxCCKrV7>E9Ks3%x~O)pwKM?Z4BE@UJlBJ zxTZ+KoJ?f#+Zk^fHkW$t!9uPCQqR3%JMR#Krit0VtX_royUvb2{k z$u5oNPkaM@jXbOUypqJgS1YHO9t?cXbN8z%yb;sc(HoznBjN9s{nU$GVNlVWy*%NvyOF~G9(LtHlf}qzrCma@|AsZIxZ^dK>2?hzrB~zLSUxvb*ICJl z^-xVMt>zkKs`rfZMfsRew(V<9S1fIs8nzQ`1`7t>&<9|C8ailAFX!tlV@>liJ+r5` zf9>#`zXDReWECd9(|o@Orop>J)5=2>am$ze4WmK|UG;T(0);$L?0^)yHSQlmZ^m0g z;%&XM?OiyblMc(k>JQptP4D{|XKOs(B>VWJfFN(Lf@B^$LgV{6GR*gN(BWx@yG zS_23*_>z{^hFGac{(-qaQD6S_AbI6jneUjj8ivC~sKUlDlLEqSNp1>r@UCS*I~EVm z?SZg*@6_$p>n}_UC6AX1Cj_IdyyGdEXrsKrp3nrt*9AGxkJhc;%ayS83(rt5(-6DV z(pT7a_?fW>;CkB=vI4zF2vJs_l9?Oq`vYO}!B7ysAm;RSh9v|EaWr|8VP<|tfS|qf zos*tz&2=S7<|@!)rA-688*YW0%ZAW=g|&}%qU>70_P2+y6(Ki2JhHEa#LsO86Br*g z!`5E66fOlo%fhA$KywXmmvJ!+Rx9-qL-yY zC-OnJV!w0En73cj&Mz%5Qo~YUoU;!k)bIYk5CFur?isjI*vpq?h~phw9oFcE6-mvH)MrsV&=o z@?gFd#DK!5Ws09}nCy0y%+}(~LZfQUU4_peuyKYe#wT$K;S^~fqqNpZbJZ^S(v$oy zejm#qBfn(d;IeE(c(>X(IVFEYQqrPy_HdYmXiO}4L?tb(zaRjHE-BFaYc)Xz~73x7)Ei*&ZjShK0e_LEXZkJ5E zq9HQV0tBb(;;SF&eEuJr`o6o@VEV@|0Pz0#>*9$Cq>o;4{D_bFAwh0#(NTv`u*h_| z4KoQIECqq12R)wL`plhb_FET6o#(wa@Fqb3p@Xy#nAoqlv7J@9P$%#AO2t^(y-~sN z6dSAP&#zh*9^yKKvOzCO?p=TK-GnAv33AcHM?}`=*8!Bb_RudoTj!CQrJ}evmfm8; zSSB*jH=}+Ni8@LR;yU+7_ZAqBxroP0WVG zVYaRTGri|SImgRpOa}1F-b|OWRh;4UzPhH{_(J9$vwY zfU1y41?i$tdqMxx=MnyVHiY>o0RErGf>XK*rH66%C2m+=QIT6;Z}R5N8%mQ{kLP^D z2?nam8@eXd%HgNtJ-r*^d@fT*Ae44C#D;A0DyAm3bq={q+pGm_U&HMDx)x;Osk-hl znz_*Bcikt&_lAlg%4)kSS<~FTQl@@}Chp_M@>x_@?qv5l+^_Eep*F^T9m&)_ZL&s^ zc{BT|5)JJ)KGcL~=&@A;UbqzLl1o>bUK&HuBE4_kO+or#qFyJ-L1-><{#X6dT_L8Z zxHE3@opvDFbcVsdwYgc|K$Y2cby`{^=3l7d^S<+04UhaUZb={bF0lv|R+ z`;J)$=j2<$qm7i7JMEJ%KHlhPMX-)b2M2yxJT8~a{&d_L+Xqn|r8;Hvfn6?;);B%3 zq|gv%%*%sUc)8ubB@OG17xcD@^2J6ozr!nqR^ASG?tR?#>GlK}>N8VW%``r>!liKE zOEgY5${!;n#mKLT{DW5c&6bXVA-k%oYUwZ8uBMKsG(3CXTOAf;Awu-m4+%=nP)4R) z9E256i0Kh9o#4oBD{SlRTEq65I2XwA%3Q)wc1}D)mmaL3qxL8O4%0;>^I-1d@xnbZrOWpqVohW7z-<@Ucoe*JKW@BQ{#2X4Y9<0KDcY zwC$_hdkjsoWP|Fra#E!XarLSN9R0({OUh7J_4vzG>+fIkKKDXSu#*_Kh(SzyOLs>9 z>=OTe@`D*J(7H|gn$x|+KUJWm{kmYnk09h%S|blhEWm6OEWBWgy(2FC)Mc5^w!I`m zVzJ*;$FSBw!F1@^I2CF@bCF90u#M<9egBOwC+@c|N)QhTUEkw5>q%qkP?x@5?n&d1 z`g{`SwE-jcy4BqNMWsJ@^z#+1<9|QPzy6$j51948zXjD)(tnaMFVFwR355?ay8T9Q zg7<>|3&%wHB(GYCr~l>k&?RJKE;2n|=^l43dNIJC!z@QGJQ8jG;^fPhr%uxIA>udG zCe*iCJzBzJFM==a-}tFMmYcso5%&GX-&7K*EZ?UxB=<%7)MqXB3r~o;+{$P_@ut2Z zsHt(2l`c7+2T_U{$k}ob2vbRglGVB2PW#)@oSmO$n1JOaPvAhmuM!OXPi4+d>EAx| zzq{7|LJ&9oKUG;DYW$~y=lh)BNMP_4cl-ZS)${-8QT%>-bgJ6+;D(BG4R+x$YxXG~ z_c=iIP5HMIx%=@2cPxmo5{V)I?QgZ*@vmTSu`W}2Ues!zeN#0-rT2Z^UMk0|-!9_v zclLH}&CU?i?eGOVJ7@Qlghv*rzH^o+m9+PqCz1Ti!{4WECa@T{l zC|a#Lpw*fvnovBsSj{ujWT@@AvloUw)!jY6jg7lE4!?M*`JGIA(PF7FPk;T91Wgq5 z0hrgeG3#gmaL65-7d)lchhU<*JpJ1ckL^A=ed@%I{Z!wMUjF~fkXZ3#a72fmxhgac z4bK1mGUF5waHv&cj4qSO@vT%A{`a3!U4FyZ{GW2IGiU!93jO^9^1lx<_`&~|=K$sO zI;DPF2j6?z4CxfaN3rEhE}qj5i-cl8IuDP4si4;3$dWA^j&^Qlie4Mt(cc)Rbm3z* zIzz7lv>RE9Lp-=GgNe7}3KUwk%a->}jk>;CCe$jN)6kftkV_x`E}D8nVyk&ZXPqR* zfyjD(km=@4i_1xdZ+Kv8=$WR#VCNb4RDm$EubwFI*8%=xSY945aHrqA(R$9wNhnYu z(FMv{yV|P?7uoq$!?o83Sm3IpIzf4g^YCvEjx!N17TBq8-prU^TfaqNr#?T3*bDB+ z@8f=#ZhqS5^y@W9ww@H~j0$Eov&zYM^pADprjtaHZ7j1PF%lVU| zioRZKLxhcJY8D@SrLQz?9y%Kj*=)a3z9KP`H*0=C>4<9eTA7NqT>ds8rPAg@xi&dP z@^AGUDk|lJb#-+V1*7xaQJ;>`_0lKQHp~*h@t9GMR8We^qtH)?+x7CnMB8<)4iOqP%t=K2@pJ;O>jGuIk zM{I@ z!k7}F@OUG$#pI)U))pfrwjoC|YE|ftA zv@z7>pOuz&9;(5Ojg5034zTshF&Jk&IY0|elogZ4Je2zude6t+?!I@)+J&1w@%b`siSle)%poDupS3grBz?Fv5wd0NblsfS6)f z+m6r!VTECQr1%pC2l}c!?JovpCoXF-Av7r1X>qZ1LHsno+_S*ht=yK4?5+-V*ITpi z<~?f04C?AMc~ROqz~54hF@yvH4WeoG4Yk)GJFhQMuo))G7N5qZFws+KnZA!qa~nVCwTRnU=@fW#%u6TLwvLAU zeT-ZR7xR%+yvk}ialeljNn^eFf!fWL*kUVWer0QB4R>sc0!^FNFH1Gb z>958_9iXK9G}(r6h&LNsKa3j8Afi9(>s<%3q(lc)7bc*g{ANvgs07K$>l10!x0m^kRAaNj^f>ges;GfhbL!LN{{OzaR$Iy%*QW&P~s-!1PvIM|8GXc>7J%-h4xd^wOVAqMN)MWDQ6rIa; zeyV;uq?FbvcWgs_i8=tff0zLVffeATwHp4p&u`M@3XsR@fP@;|(Q%m32e2!^(w~4^ zr>d!}y?r0u1>(-O*PCUb`d@1#iwq<4r<(n6*059q)uubNmm2DM zib~JBVK5F<9O1%JXnr86&BeB8N(=M}ViQ^@>I{-n^SPJGNw2Ed-J!HXu2*H19bY*! z!hz6l(Lm3I`^qWMY`a-iAraxpzFy$TB}v@zTi*jzlXcvP))Ed$54zeyw_6PUwm_sf6YA*bP)v!5F%4T5f0cu+FLHBh z02Kf7<;%#J7>0K{&sglcvs4nGZp=1U+Q!ck1i1WU$6ZlgZ|9=m)JL*0D8s_}JaJJP z*!Olz@XJ6LlP%Yd{LP_!t_HDC$)0j(|V!VMjRp)AN=%K;jv z;3EQzv#w~Jp}RT{N_E1voL<3`E{cueLkz!bcEJ^$4f1y!^hId;%NG=g)(jWafp(pq zu5-D-H6*Swzw|>M<$0IXE5rPThx_^ibOEyFW4mcnM%a-kV+K{VKCi1z6iQcf4U$q? zn6eqD>`K4u*05J#lz-&cDkPaMjhZqug_?TeQ zE};$WBaJ*SEhscwR$y0|Tl#@#(`hU_VYmh^88eTI^0u7Rn6mhMkyy33zSJ9WJ}UZn zD*ALn+W8y8Km;w(*t_%A&*#&LxyzaA|`G?&mIo7%S z)-L$zez`Mt+a>121*IJBySBEGa=A<2 z^Bi!xNXsw>R$qT7{96&Y`TrxL>Z7}hf8%VnoxBef7js@231uHxv}6M|bEDf^)PVvE zwU&ur08jZZE@azS;RYfL?sP~B=&)AG6y9-DFHEYFFv4&~v@~#U4=3qR;tO+87Pq<4 zOPL(CC~w5uU+xWlsVFqPIQn3Z(+hdD`su^J$so*ff^|UBdmoRhpSyJN`$ZxA0qg z{JZN@F?unrbIw>vR98=0++Nme#jz>rgzb3{Hmz5NsiF0Jh%VUI8gm_10m@TCujJjB z_%(IJd6hg7kOye2-pXMus4H76&@R-kSXWa9J3T$SQn-Ch!8MX>wLI{C>lVlTrMEj8 z>%Yy<05m?%CDRLF&3u`p-yee?Z258r^X#H1POEAJ!;GB8M@8l1*M7PX7WybSJ$r5g zI}C(D4!Jn=PScPOlQc`QvA90v$dZcEV_|0JZ@P6=^bwm$BrKH7quV?CVQt*(Bpf?d zG-{A48O=bw??%A-2ETp{4oy08#f=yk;XC4BA}TjQ#x#37^a=7MC#70PoCG3_DKAQQ zcALc#yL_b7ulW+xS(;5ov*_8*_S3JF`gMJ>6>S}uREG#Qd7Y$0?_-3*G!*jdc-aNP zw{|y-8vLy3GK`_0ZE3)D198aP=VrCNiRe`1^t5)76VHwIWG|BnU~>AKrFOQxU~^qq zUcajNyfWvPW5n{6`^3ToYJWK^0B8laCm(*iq2j%jz`%RK`p-*#n81ithX$i!%89@t zrT8L@ad{}Ewe0W%C{tEO_G5vu^2hZl7^v=%q89<}hZ=2GXRFW19J{r|?%~2TD4@^c_Y18Rmtaq;4v+#!xf@{X7<*t(Eo2B3N-4DB&u5eP zma((GQ(I@q%~x1fYZ?fcbuBI5v3fmUPjy(TJdBNVSfYrc3*0$#uC}~kJ=|W%>!K+gatoXvDmY?_b^$~$w5c(GbY(I3bLFa6F`P&nf?hFaNK~0Mu#RxfLLiI=&j*m=z*olF&F=e z6Kvp>Yue($MGlAR0(mxke)js~itxx&EJX{ER@Gz4fBtCk{FDcL)InB;`%xLNTd?NN zsRQk^$l&!PN(hXVoJasmU0g}$=1ya??dfUH75$BzI%c*Iy84gK_I z$c#-O)U16=s?5wV33nxjO9A0Fycfc&>OaTQ>R5*aYW{4a@JGFvN(_W~jiCji^6X+F z3PK?$LQ{%An8yhJNiDkb<>eQzd=Zfk_=~u9`Hl4Y&j=eUtL{&cJkEl%HGzBqU+HlhEQBUC1GDyx;?2AY2H*?s)t z^jzbUx4k}?PvDaIsCD7f&Y#*y<3-n1d`NxL0h3@vp&LD%%j1151aF5=-ZiHB#4jIG0t$FfNvM8b?#-oT*{xxiKa^Xv5m#eCnl!h!xBDQ$vuuU)2^_a{76?LB+%i=UFPrB zLvRg*wW8FCy*u&p+XbpH>a}1av-*T*HdU`48_tJW5d{q4xa#DGmH#A#=IoL}e+5TF zf5u?-`e)+Il(7=4adI_bVTYMc@(Z(4=n>MU4^$*&YLw(}E*8^sg~ntIY|m^_f>1FB zJX5(pVS_kuiuHuAA9W4>@04uiTmLOT)a%7AKlED{kRNA4|8L=kQcFBWD};};ngLP& ze3|v)Qx|*hyLvM{CwnKnHay33Dam&t_Y;qPkpovnzpiIIdh6KDtju+GlKandO=-L{ zQ%C*Zo+_7ITMTX#p^n{)cQU7rCfud7o@Eo;a`Wfun!gnou}cGk8;R+`WXFC{2f=(W zF)9SIsvm2D+2-CQ+`xy1xXEK*4jkzUtDLm7o@HW<^&#xg44fMF{OIbPBKNKc)BERG z=4Nq;x#}~alLvNmN|+GIens1=m?vX5-(ej8PI0E|p;MDet*jK4Ui)eWT0^Bnw)KAF zG``Z(((u>PJC|;{PeMQUdrPGoHy*R+W@d8C`a`$G__#@9Q`3e7?_R1-mCP<#t_TZr zl@md|eP6|GX7*6sy`=JGXQs@_p%D0d+Tz?MvfJ~4LO|HVV@8kv7%_%JfS6e-l*%#c2dt9_9N}B$m3qbZRb`WA# z@Fjnjpc`aVJ@7+o3KxsT;eE~{QK&Nf;*OIPa~A{_v*AEjMo+&J#ph#mj&RQXlWA+g zp@0a7B<_0GBox9&MmZvSz8(3VOd+BIK@oB>U}5jadE#)o3%D#+`z7C8R@-p{iLI0n zj?Wb7QP^ISWrCny$Q4Yxa2szN z;mhvJ1zkdiZb8(Tdjk7hZgz5SIEPYG9tBiS%o-gvLiCoHH9y7+2ndi^4p51Eh&W70 zP$2omxXb6BwC-XoLtYeb>u0(Na96h~Ei!Kbc9K`rn5AlHdhH;ggJ@x6Pk>zArJ4OA zH>FPywmE$uB3*yd3fpMbn{pIuAzH|c13`I@M2q2G`|4y|5T-Zu6&UbmnnoXRDDd{% zY6JZf8pa+!yRGJ7uR6sH(p%Dgk5aoK;ENxrQL9dlXn`mxv{yb#2Zd}&Y=1}|w~R^< z+`^BfFBPy`TL-9n0lCH)DE2hEl{Onc_hqsUo)Cw+WA&UMWnl&aBXC2>oh1-6Qg~fS zDLKbizPd8Bc0BKSWL5}CPSJYbo|FLn5KI4MAt}O5gR~jeLfhG+j95o>Iq7!Ugea(5 z_5V7E5%tI|9nX8bAl^W31j1-%1b}0F97NdR&kE=G{)k`oFU&*EfnxXJ*>FGcFOt4I z$d-|%y6i!w%k^n8jxv8O*`WR39-~+;c8Bh4z6#6fJoPOwc;hqr9 z*&jN_Y}vZgHJ;S0pg+F3 z6VMf|EHp%te*N@M$?N+2ZslA|!yGP>rbn%58-^zH&#XH64@{LOr;`n^)@{~mh26sg zFOe8sIdcX%cXQK|C;vQRZVGFh(3J++XGf1B{yY>B96q?R^o6aOfUPg?@|ze84zFE_ z^F%;@Q=`lXHr{|3ruGUQ++cGfFPOS(IH!o@=ipK^2Gl%BVx4I~K?EkbvtRJUIYqUD zdeD5YvZ=ZeTx@5H$@cL@xpnpoR-9s^=Rvdz6cU7*<5@Y3r)Q0t?Px4xe0Iy`?=yd- z2A%Ew(fF!{tf)rv?d?yKdsXhabpIHejMTeEC?LF5gQA9r2i{0WPY=1iJSDRU{t6Ux zk}vm5X0sCP537U8@O6vJ7tc%1q}3PX&M_n(pn53q?%a@um!|z=fWbuZ{94WhIv0A= zwDkwmq72m_fL1PB>0Rxqyk9u%e#0JRXjb;4e0D=)SnEz=z0KIL^t0gvAu1Ch!rE{ z%$ldm(}w9F4TIdL^sL8wX26&LfqZsQvh z;x&wZJMPwIEbI{J&Y+EKoSw9?ce2{}Y7XKc^pOMDCmqcgyd#f*SbZ^SGHv>{(m_3g z8&$1&wi`ojlEO2~t}ttHQkuDRQ!2~}^!a<6Z8A-$uf)`&Obc4=$OgYcs9)zmlgdX639`&ouRvw|% zn{O8I&tjU?{OMdnT*3<_U3BQ}??J@Nhz?2C!_recF^VJCcYHtOFgP;2I=Y-Rj-zw_ z;YJo#dtaSBXy8$ll$d%fCC0{7BP7|&D~R&X*LTYfD`HpiP3Pl+sii&JJRO?XVxJ#3 zc9DBFuyCPTVdQMt}Uxvd4?nxX@Wcbc^|_d&d}$2 zb%iQyc6C{q=!15)2Gyh5n#=l9Ra==`Ot#o7NoC z_mx0a&mJh&=~>nj-U^kB5_PDjA+H7K)NHz_Y_tTl#7AfGh572qzmn4mSjxW^0~J&` zmhkISpt(WD;^-&V`2D)sE#;$L!*#b3Jp#DWKMnIX|E=x&ncs#v+5Y2yFG8-Pr3 zsI#;h@;Okxy`l*=bUcW|w8whuRurs16eM1+qXw{`8K0Ckl^3q47mFM!OwKxab# z^7u$#WkXSNEC9)h+II%t%GL&4yU?4?&!`=pQ9HViJhQiN6^7dCz_avm9MDDeLJc-V>8>FBAn??*{fjk^H(sQXhY&A0-!ydia zH}N^`jAPOSp^%Q3SmOGYV9JS&)X~>G29KG`;x@i zzh)G7wD*b?)hL5LqvZIUGjiq8GXIRVoyUeP>e;@z4H+GutYj`iN?t>OR6&?WjP=YL zMMC`vYYnvJ_QjB{wPO|mo6{w*79nAwsVm)h4uYthQ=GGwv>l7?r$v*i_hmK(fuUUX zd?x*Y3hN1OxG9Qs5!BB1G47q?2M{T7E$!}w4&ob|x z+t>>K3X`m*CYm{ZggA}fQ&&Gg=UcfiZWS~4$qn;V+wQ7*k$aFs5Wc=BGoLdf?_I%l zHd`4yPU!6E`vXaXKW%(iOlfGF;3V@;-F_ya6{ilOozpBcbyAB3*@vE)2qHmS*%mSM&G;>W= zxK~_Fd`W}4$ocUH-Eb`ZOKM8&OChzg@}vr=_nEd)hWKfF`6*dW6!Mr3`X z$?byMW}=asxN%;NG}-8W;TW}^57;-{gi~NTN)7#po;9?aTBb8OITiWUnAF&VukN3} zv1Oum(j>!*ilf14N-DFg-vMXwW`B*yk`Yo)3N;tBZDYt{qdxJB)8T zzC+o5ZG2*WL$4|bun!gKu7{R=lcM~ugMzW3(FKS0bcn|Rh^ zXK@DMQpFL=!w-OR&CzT?Z!WWQhR==_q`q{tW99DcT}1zbw8waqNF?UvMOiXlZt8I_Dn$0JZ?mIs@jz2(uJETqYbySULWu9ycfrOV4+aK(owi_PX_cU#5^I{~667bA>5Y&h+cB-jCt0Fdl{70`G46ROHTy0X%8{ zW6(u4xbX}4%6BhcJSR~;(X0@t&(Aoz(9aYnwz=eegYUsHrO?&3>Maok&4u;7NeozD z(&*h;uMQ8f%4|#7<6U{E8;?6$l{bF44jvOqh;({n-vFZ|VJ(Sr^Y~(;Cg~n{RF6vd zrs;+YUz%%|;3+J%CiK{3e%2SUHc#tXr*RKe!+VW?X3Rfn=IwK=NoJz2zJQ};MWRLV z#eCl{^|o(CeE--V0$zoN>bknRzHOtt_3$B6FHn7eg8$??(mm43;a@7&oBzjw5P9Scp(3;~!G_+e*PDHZ3GeB=&3Tf3`{ zij>LdS_R;7UT%6sR13%=|Le>5!wGHq_weP)mR|)9C1V-|6N2Nf%II8a&R*MyrN~W5 z_oDmHI!_QK{%t{L@~l$sTfrO2NKh!R~**M{pTctN%&J{pRtXgw$XE1@X@RKZ&Lf zCw}8&!dLviak!hRp1PI5JzY5H$nhk5#XzzcR_P_nD2nmOJ z;GUvrUjX;iGAPl#CgaK=L|)f^8zgtXyhw`8ZVyB$g`Xi3ohyyvfqPnZv-5Nf{4+cQ ze!%N~-{c{bFptttU;9l~_t9$?0y#Y6hsSt$pFPR_Oue=Rf30!)Y1uQgpuKnV_eXnE zQ{A&lp3ncziz~&wEjqlIJFf*sO46>yOzC~sA9~r&n%nQSvMZ13`rE@iYF$FNa*!gA zN)`O*H@Y{B^2{JGP5SNiKb{T0@&4d2|3{PSe|Wen2ha~+>1b=8n*B>{;h$&!@Ong2 z66@?q?6iS>OR zwW&WMX<2E0k8#sm-Xg2sH$NmQDkS&*&CC9;8~CJCSNkI3W?F)Cb|(^7>kdowaQAxg zrHA}y$z;pJLM+4$HHTTuFIrS`w7j5W~5A-@0^j^ zsF>Uf!2$ke;jhE1A16rG*bh)QCgHzeUDTPLgpqa|q^ZywIER4zskRuU@GP|yRgl!6 z`le*t63#)Pe@?mAKp7k=X6%ShL9~N_ZAZq(Gk*i#6`YTwuhYqwzdq&yz@@}XGq?Bx zeJ$qkAIlD=4Mr0+7X-R3ZifS+FaSv&HwVA6nyk2Sv8-GA_SRRojbR;qp8V3eAwBn2 zOq`L79RwzR4lVMys|G6K>q<}macWyDUBqEzaf{VYg-ZBJQ}=+K%?S!cOfD`i&Y;pZ zPSjz%Km<8p1@sjO|E(&2@HX*!vKz=b=1yjhXG69CnFYgH&-lI}RDigIG5&1V#Gnf? zBb{x=$#vDY{mqZ@po2+8$pqto`S5;@$l;0gBz}??iS*N#)MV+MNAuP}sYp!jya-~)Q+nP4l+iDI*C<_es8H7S&WN9v!!7~t?nNtW>mId$4J{5XF676jhyEHV z3?Fdr$hqE3ppSavt7m`$N0B-J1%E%d2ZK?1Cb<_BLao3p{1N}I7(I31)$aZKdLNmI zY;0!BwF>0wMbsHX6dU*A1p0gHJxIMD#4JHd2Be&838a|(tP&mFSNc~W3tovgg2a9$ zbkl0&P~lf!qgT@*n&x-jnHV^!E3`3#*M~6A6?woLRDmiryy%s?UHLsnbwHT+68r6# zFy(HPJ#+p+q+{_e^|Yq!R(>Tt_G_*@Xj#cU+mC(u<^>vQUv$!}V7x?*i)9rn=7DW3 zX+clr*^(`$?)g>jMB4IE@~U_to*qj)SG1k3z7EVH2R1g0!iXy1cc=Ww!*4bm+ngvV zFv&<(ajlYuy!7Nr>CgzVH>`N&tf>Za5OVNxKvb9$Mu12pEOk|LCF{Zba7#UDjUw3h zK%u1GY0Lsb=-J|Yn*6urCakKcUW%4~`=t~L^|ZdhJRSTjh@WaW=NO9dz2j-jW1dr& z{Z{g!vH~fYx20LC%$ScRfK^QF98Gs9Svy~?ghFcc6{Ut^QkItKw76q|yuh|u1Lx1r zSVOT8-14Oq!+Nbu9Z~YHWNyWmL@CscA2KX78iUQAKx-20FZH+DaYZsS6zzDKN1F~j zW%nZtvhjYg?HAZ?Bqg%hNu~z)dMi&=bbzu5`qCA7%9TGmYq>`JVA))5<5M!NtT+fz zBbs$(B49i#Z{sxiTM=S@)-gA)UM@YT@!|!+w6?EEE=wCykByy-dJ%7PmM3b$+by)- zA9p)WW$%g@LnFP4w~ODSwbQ!!EqHL}RrkJ8^SI zBQGy6&Sa~=e|7T}8>z8r&+_0^53Yzb2;+n$DIH6g8D=O7yF zc;&jE&F$}_Ri&WT>>x*$pV6CDzAqtpqfZp(nz7{7o8jfwDVBJEDWu&Arx2Q|Hj&`u z0qLt^@F5*gXA!%GL^|cbr#_Za*VUD%zYx>~)WPDi=lue%Ru3!DKChT;pwqEp#p-4#KhI!Zwqe769 zn9)_EUAm~QMMPm^>J)O>t*T1(LSH&P-HG!pbU%H4=N_<1Vsb`Tt^B3{ZU@E-!0nVL zkAKWVCZV!<#lQ3y`}Cz;H5iscp6B2%7_s!qYbpv?OgLldR$FLqrGdy)0r$RHaz}Gi z5_4{b%i|`7GEVkfxTZhL9KNnS=?a~rWjhlo^0~mUs8!e2{JCnR*j#qNXx@tpKe{9X zvIX@^Ha;CVP+>Fj!v0BXa~n$qZ-e3s!Bj|=Q*}mOaUiPadd89k#6FePy({=o!^bn4 zCN~&1uOm%%n)NK)z14~Q9r3Thg!E!Xx!Y`C9T#y~A;|69oe+>3cZhO2#}B)fmz!{Ekx0WQ&3geeKSg&UjZ!RG4eSy|-p^Cyv9qzm zE`}1Y=!gu{x)MV}+Gt+bIK?^`i~cM__#Dn#{RvNKUxI5<)3iG|K)_bhtI&9|^oJ|C z9~^3q4I8Ux(i^H;ZGKlIZ`E9(cata>9jx%H|J!EzEUnNGHIGA0415ecB4XBbbT@J} zbq=Co4QCHw9jW;6iamrytkd!g)miyQeT3r{<^X4}Ta_JRoZnK%3`3wrYjCXE= z4(RZ(FN`=?Z(hU;;+2C2klE(*69FqP#)s}uP-J@ZwSDW*S$+$q31yKaCDMl`iiv2+ z`Y&CnTg3aToQ+}!&CSWVZ$CCuSo_RKsv0KW9vA+D3t<14eXbMfT=8q2$dg+>2cRo) z!Nbz~lOIfn-Y2rA*{nglP|4ZYcdVw2tR4tKh6YRt|F!O;fkD(>B)4a5F?9jgcGlku zBYNk;%i&jwI+gl<1k#xcd5eyV`&FHmZ7``>2Il95PmkSpLd;gPX=&$g$wfR+x!nf~ zoKM%pkeoYIsQBW=6vet$$tl@8T3W2nOO`@W94^Pha$S4&#Fr>9sA>NlQ4<>kBI*#~7BYXdY>41;qXJ8Sd~ zR+`}^rU{goK?HdtZ<`n@MQ|I3+uhYruLL_Z7IrSzk;D^Zv=})qT~=c6XJjP~K7hIL|4q=!|FH0BHPm;vLm9W2MAGY}W(R$u9P5cAdwA}<1IET<|Bu|Jb&yyr{G z!c}fWd_)XCl-XYz)Ub2QNR*GP0BHKfYSDEbEH}p;7q2-%Ewf|92Lns>0gq|xfzQH( zdYDH8=?y!|HOu*{Ey)pRiLNpSD6QocAT`FHdrJFHXfvr5zbIB^D`MN(zEa^)WiHKo zYJ33SzbpbS^%T^-=aY1CkYsTShD}!dEiKA(`^NGD5{E@g`lhK;#<*y2T1tRN)<@Oi z7nCpSC9V0)h>x_fvFgJ3rflPqs9;hxeqzTjMP^vHKu?#g=SLuUlW};Z4h2g;71ibb zuePGn#C|PB1fqx3utUDK>sBCpk(W1u9bzhv8rgH_uFI!uz_#&Z*++otJ%f@t{;KWY#XWX2v8P=@>&bXhzz)(Kbb@`rH?!a>rQOz>;F26FLN-LF9-W`ugBRJ z)DFm6hN>;iU1Nqx4=5Q-AB*uXc{m$qPT-+gKQ-!GpJ?$EsVe>k!jvfb*bM+I#Y&8@XRO#qZv^>u9%1 zu4~oz^sHl6I2-S{bxh64jBti2YQhwWH7$iZPfAxK* zbCb~ND=2^JnDV-m9g29h-?u`1T5Cs8ta-25p_Dtqq8a^j&RnVtYkC9En+I-ALGl(& zo;O>QC~@3j=^2w%%P~7iZT=RzgS3*CDx)%%PdmxgG3lQ&)kxmS9maz{=Z%tzC!l)R zGUx0uM7ujsHm28SQuHh=GLwCm5rKhjJJxdW{x9c}A=~i&$(>!L&!+k0+LYW zczoq{30HYS#A%M~GVHI!aw{FN$b1N*mNYEU{hUoty=(StwzCdjMXfw`@nDXjpP~CA zRZ|2NEGUbH`+f?BsvkQ{^kc@IV&0y%r~tu4*d0rG5)^su;$PDd${c*%6T3*T98)5> zDsy$SRH9SHRV3ud>Z7+w)2=+KsjmXEO(Kfh4HJVqhUHwlnnpr>OIg>jh(YiRvlM` zYXqnpnm~3fG?KpI-^~_Hp2U5V}3ff7!d}l|G#% zcH!_iZX@#4(5E&0XSqNtBlpC$(*qY9GR8;fH~Q+5-JIM>wo3124v2)VJYALCaeV8t za4iqzg}>>6G?FOOl_2QB-33m){7n*x{~Q{5xpr=KQ&pQ5iyt-HD8ow(-cswj@{#!` zowmI=c_U=*J6aN3h^ojVXg6? zHVeJdZd|mq#s5I1ivQif=7wTyQcO`@pvZ7JAp>G#ii(%zW}C$!A?uB*Q-rEnN43|L zsnwguE9x+*Ycw$*Z$8=ZmEA~R5t&eVLg*WjmK-&1@(6fXl7LG>p|h_B8}pYDu$^v? zu;L^qp9bj(HkH-MFy`Gs`>;4=XKMyJl?ShMNnMC(TqD9}8-0>GMl!2C&TYLi9@)K(MlT17jCp~c3F1sS&4M1|UfJw(fE#5#=!h4& zlL@%XxAPVj7Km`wMDZTnwpnxNdhlKGRxC7;=`3&NtkBV_rL3BpF*^ z>hHCzes+XXZPef}#@vDQj8U?#tVCVp7$4fnI~rJe)Rn*bfCX7zoFgA-acu0FCTM6Y z&miTb)ZH@WK#91G89f$I-&w}hIe*`;GCYqHgvbT(c95Ap?vTd_SLPMv>HvGpxXEat zZm#Q0lJP^sk(y_k35KkB)>d;K(n(t-oSHwRnxk}w;6UZ&^=cv%+(d#C0nuIVR=Bqx zniR=C7vI+B*97S)#3kLp;enQuxX!uwTHXebtBOhJ&R*Z-mBf^VhDEyt)FojhH(fn! zASldW%!i#IKjUN8Xs}hvQcaky2efC*`50>s^;?*N&kdw1G9xhkH77s91I-$l(I4#3 zi>IETas&PoFeX}&I7lCBuP>B^<=WXqaeT?>7w^J4T^83o{!~d2MNnYLv(J~o^t=78@ci=5 z_K;jsdUeK~pa7Dgtj<2F_usBi;xsOakLMA25?t42phz3&LE`?pP|b&9P3~+3DnVAT zBGl&xK;?e@jMi9p8gL4%AikFi+$2mgO8_2$>rZsbp0K zakresF$%qHb@A(wPBwE8~z5wd||e z*kP{>O(2Uwv0Zzzbkeu!X%O`sU~B-6_xYr(*Ei+O8?JtjraLUkLX2|R)9F`H^Hve* ze#(P|MrNd{;0|ckX}gwc90*;feg;EUX4Kgz+!ga#o3I91GY0~Gb2GRYX@ilK;hPtN z=#AvH7f zb08rMgz6szD=j^1*(|HvT=^TMllk*sX^&f5W&q|I)OwaYqh&k$^*&71ZY~h#ikI{# z%FEBM@LhLK@tc~OqI52rm)vpfQxV&rbA#&rTOr0%Z<1UzOb7a3wJB0j9k;q!n!cPd zx(_C--KcRE^f1Y1$mNz6$?>9+)opIXQh=^>yGDZw+*1Gmn;tY;_Yl*|v)>s6Z2roz zVKEeu;W8nr*ljps!JI_Wja1uq>hww1?=71-rJY4P;5k8Iko=hkT27Hg$7x!q=?+(ZLdE?RL0Br>I_T%d?X$^m80mNr&^UD``feE%65@Rt*CneML#U-) z+dQRLmfgu49nw4!LpeR4%rL_PsmAL%U~+w{=lki94m`6&Js^NE3iIs~q;JfD+j}0e z2a7%Y(^(1C-WtvEr9U6d(7}>9wjX0qvJP?n8K4O6+P!BIp<&;tLNc+nErfu@RpnfT zTmjl^iy%7mUt6Z>sFngpD?`aJ?fF|?5pWmg-zWA9WN%i&BTKQX*0%KTSzf!ypq02IA@64pyI4r?u8eTXGNL$^0czvi!?mwn7;9R9 z{>Mux!@|I#GEhFyXQd--N9~n#kZbc z3hlgP##LO7cz@ztf>dD@m6vN-?pFGQR(Wkh2BqXT86~s1EGP-(&@)$)1sE+=3ny7_ z#e;qK3%1|e-%zG1`rT;lav1ej3x}(Z28u2o$CkqpP z3F&Nj!UABLMIfd@hY4;1?#Y^x`J?o#$AYNKncK~*#7RovAbtY)a)6Q&G1YeB-gh;@ zy8eK){HnY-A|!-(5ROU~)t0KeY*){ClsvZBUesY#fzl_LSFS(xcQMqP|DH+b1a=X%Y)5XGdr2P#z1nPA1btdAZTJa)t%lHJgICul=~PhW7DBrr1S+!&9~%bz zi-k-_Tk>GRH$Klmx{9P7abGK9%Wgr(-aYXgwE&lJ`@3;WJ`$7Dlp)f-SzaCOXltG*z>O^lIkkf?x$}7&UBI6;`Pdv zlZUbzBJQ}6M1-E#j&F_#WAb%ynd*6cBTVOo#HFI~4v&+^AYdQDwvw*AoM7C4wo~~P zWsCUJanKIk>>Ig6q|~lhP<9kAvDa(9J~9ZUcbM&E>U3R4-DMmNFW%k0oIxKE0^^JrLfgrf*P%wVee7lhV|GA%^mkemCNYVNVToJckN# z7ep5ZmlQaNc+ob#dI*XmU;L)q_crHW0Mh;2Aqi_O6~!OlJ{8(e`=3$(M|(Cc|6>B- z*Ha&>AN_p;p%3D>JHL5e?2f?)XMRmA1F=!?;?iz{Y=E|;7BZ>?>~a9CjZZ&^{_j9k z+rQJWK#hRO=c4P9BsGIdc`zDmloU`SmDHOz z{}1Lv{TsdN@|$l-ooVuoIWk{Vczg(U^`Y185IX+$-$1e}e|qpN_OhxM6Jgy-t8TH5uQUUII9UK7;Q8&;`m=Pxq#h#A_1_=zmNY_CpNJ@BZ^-B!4Ez2&iDCB z?2;={<)O0uu3+7BS{{_uU0EkIMfba4k`#Jn0P20ftrl*Hz^$Cc|bwe~RLqXk0UaPKde-P=3 zg+o;g!f{MQ(%LOqGeHX1;T~s1zoEZgJ4<|>W$k2(MZ&YgE+Qul(0)V#?`e4Z-5S=g zJt^u0t))!GrRK1JKE|Q1y0_EN1oq&cWU>P@6bgj}s579vZ^x1J{E7Ys0>i&AM7zTDsdC)5vWuy|AR@`eTp)6FTMlRjTl`JL~TA$IRHX3K4YUN?3W|#`bOq`BtkDSXX z(TsF>&r zvp)cKOLIo{Xu&Wwy?SQADVXwHx~E+6X2{+xhrwW^q@@*Q9gVwH;#2jj{n&Hx37h6rWZokKDQS|OwNnfQ^N6Q z6f_aN*-N7}3e?Tv2G#^KMh7k6pmC*@L_LtJ-T@Vrd~t{#U<99634V&l^KQ29|4x|G zbNh@vCx(Q6Mqhy2+oPJA#G1DadzMF^mvhgNB7e|xn_3GACT@g;=OXv>q=nzt$B{h; z)@QRd5ofkH>e@Yiaq;XlHDle&GnqXbps(05+1m+74pj9X!hLPJVY+ly3%Xq~u9gVK z^~rehRsBbqO-)VKr+(wi-0i;cIIUvBVHF9nvDD$Js;b;V^k(4$Ib$P*?7&x0;{C<_ zw-XaN%9YI;ppqDuPdCOjBIyNXWh!6;6L(73_z_5KXabm{qr72K@9k4?A?ba0n(|og zrS&vAs-nBUPQRwG(GZ-Rp%Hq`6*YS)eA(N2^8s~W94kkyRzazcr}*KWpmi`W5l8pi z-`#z~+GOnkZ#lXYxitZw$=To2`>d%mioJQxff!?NYG$et+4&ov_O!k5%4*{H=G!Lz z>M(8eS-E1!&|cl};Ya*Ysrat9l+GO`EpLZ%7MZT8RO4sbi#T6%2M6zi=gG7+giMZz zB{sXiA9!#9jPM_I#_@Uq28iow1|g=zt*qCLsJ;UEj>BCIvrJ;JQ`;bUMuMqp2+1^h zdo@Wqa`g?LmNhF6ixIrYdGB`({Z#X z1BElMtU@oc?dFn6K-qY#%^HqAt5X!sPJX%zX}ERrT-58L01R z3feL(MRxH+9Ppm-?_4G%t*n!D2hP(}E3rw%60scJ*;%d+yEGi`F_9c;h+ilCYWgu{R!$h1Si2N5FE;8uA%fXpGcGE78>houAMEx(&Hgx zVDdygX63#^gTG6~^Y{0nICv^#a)rWn?^Acp1{n-b#&~0fwx1(zE8R818&G+%<5BFM z#;MyPJ0G7B+UW=j508~K)Owm4ttle&@S(S3O@vU%mp9KM-tJ6gx;5+K@Ut&d(o;X` zS$_{d&@F=oRy19itoo+6t-g6}NHelcr!IKL-3_k~gtmJH%tUjeM2$P#X;yVSQLwcZ z$x1?Hk4w1v`Y(4=R3AF5{;@v3Iz`FWi}al}m&yU7@A0n0kGsT??S4wPBLvpN>qpyn3q#${%i|p2{^rubL1_62vOt%@_ z@@0C=I%TQ6@G!1n`IOIkAQHmf0arN>mA%tLcco)9141i zu`x$=GCQ^}B)p5OX$6c4^t^uJm83gn^&fRaJ3LbF0Dlp0M_X)hO)0ro-8`GpA$g)! zPsHB8%cLd3zSpqokWa(Og1Yh=M3l9UiBSyAWwbi)h~`mIQgQo(F2?M-Gn;p0w5m|G zi@Xdp7PF1nU{tFn;0~Brxw>ZB<4!70n+$ml)EA6vpj~8LsTTX3v&_t>JWYQ ze85EdnOtRh&Pm0Aqr1B5C(5~-m7Lf(9=j`CnccIvzp$doU_UO#rfrz)u~;!Y4%`kS zR1d#-@%<>_%wkr(4g$<#Eo$Fpc4?y@lWpiZ{#G8gl~~gK=sCyLE+y4tcxE>Y!_p9C zfYAH$@g~k>ByzcqJPS&=b^$a|6?kwTG#bKI-h)l!?J{KM_H=?Vk$g&MXL|p=d)ce= zB#*hlExMsLpV6kWwMiCpw-pM!CQ5nC68Cq^JY$bCT3wewuCKsRCWH^QirhEo$t2ta z@yB$mzUp2YNb!Q=uCQU_(MMgbT87M~uu#&*eM=lBA$qwYYOU$6Zpiv`u(}FXi{COT z8IGw5Exg+99NnWZR=tSVY-LLzsBPxm4J`@M_K>dO7gIV|O)d0FV;1|xv{V1&r3;?t zMv=p4&Z~zR4VT^H4X^*aJx}Ug`c{{?rB%avCwP9irD^eZNEdH~HWTJ*6(x0RmBiJl zne(EpY@KvtPCE=6KK`qbjK`S%cU(6&f-;O1FM{yA&@&)&M=)KOkYDxmFnT4fosQ9r zUl`qfns(2`4n?H*kf&`~fT2osN&G9xIQ#V98LS_Ni5F6c_rGEkvRUrRw6^h0ODM^q{ zZmL#6$mksMTfV#G>ucr`5`Mj86Rp}l$P`Topt$mTJGL6Pl0+K=R%Xp}j;r9p1*63g zZJN5M*++bVanv!lM*q{>?6dTz`T6qT8bD5;!Z2_GXBAk)Nv)W%uQk~Z-Hg+y<24+G zZLH+=mTiVYwWo>MZ0~^_cr$$!t2R|>3{1gN3)3_bVSl{~C-#9cGLR|Q=Dq?R->e%I z9a>4})fHNF7)N=!Zu96ONLE>u;bK@1Gc7-_Mwv z&pL07wOhM5q=6|_jy&@Y7PKO1LTeS=h^*jFU?4xKExyQbF2vA(p$Ia2PO^^a3!T;U zXaP|7HxJvpySp20&BGC3uLk7NoO(+W61w=+BDoTd0iF<%y5-*X0OsxO4an!|z=?9D z>hG9(qvJbUwkt=k=QfYBjb z6vT z8ydam0%lwf?SeyEO6t_wU(kh-HvPsYSDUp6j~a3FldrQd^60?fK0>{HN;=J=GHUzT zs!?IDY*y0(%b@A1&p{`>2-3<(L2z&=t$Vtyu%N`C$1jpYwzFSFfp%?c)-T7>>RZ{u zeNMB+TMujvl}`yeB@Su;JE-mN)5$8-JFWgpqn4^)PKKf9&+rT3IOCY*6I(k0Wu#db z#wtJ-uKk*l?D49osW}(t-^Xi;cMCM7e!pEC`%X8q_gCPy&uq7IunkYkHAU?F%^bX8 zYDQZ{uG8%g%X-3*3hSEfo5A~&r!|m~HcvqqlviRfmr}^;A@qt0gFWaq3G^3U#Q!@&MLgNIuNo-3i1Rg*9(;de7J^ z;TEPSlT|u%_!uAS%rQO98^JCM*Ee^<1i-If)o;Hv9k(`Gul}1J(7{H$1uTU;Il9)o zrtZ|B3DbzaN{#P;%otpldbNq&C)&8OttF||tcT_dHxgnxQ5~5wFpQ)`Tw!UcJ`7dq zjxeV+`F4G`P4g z@PlooP>7GFv>G*0u*NpGvrnTxFU|{MKCvLwS58zTm?uP|6Le{hs<@L6%_97qHXlSf z&mm;IEK5i-3BGSwz?hXtD0odIKb&7!=>6lw*-cSXQnn3_I@wUb2{GQ=Y~*E3Hgxa* z069NplxKMA*2f8azdjZ~Qb%*U_C%vXSW?6hsOQI?l? zcxY%S?x~uPSWB#ky6M`ZDnh+&!US*eN{yE%MSpUX{;2a^BwNCyWo>z$u{7~Gu-#px zdb-a<>{6Xj;M^`?vntx^`BMc?8zbKpEcyGRd#m)NINS1zZ<{*rWV&B4&Yg{p9bQLP z?BLtrfRwGDWG=tZFKb~-pOLE9rU94l0uWIn{(ADJb33uFY5Cn+BlzPPlHv`c@#n?I zsGDgi@)HwVOy&M@UTw&p{&kz5qOTcq0$Q{f?LeSs!R&ZU=1E1|?!+G)tG-ODe^6Z6 zv0`m<1O{(^A5Z`05L4uty{+^nxt@@hI9sTvLl!SzKy?%AMkZ=e6C8szSy3wK;KSm| z`L)IR_%js!CM(B&0q?`o3aom%IFb+fWP;7n+grme?r>%%co~7(x(>6VaP~kIZgCP7 zjnBmL79m{h#rD#8qo#nRF2E>S7tHLC+js$mk3a2R7LjdeU@Nfrj$Z=)=QBa6~8Y=hGh4sLNg@cbGD8T48FiCJTC&XmP%93>C;2R_N zb=9FI#lu1GAN27I?YY)2rT2>uAUTd>7-GlDo#=gDa#}x5pC9yi+35%QxmQ9`A=3|H zWaKtXBC_cc+15V)N%Kj3mR|qF#6+ptni20+15ZS3|A1y?5Sq)49^@AWXThoO=|omKg$$+krfAbh z9M3tFF`hw+n$-ltZi+-ANyKQG4M!)Zf${O|l9CeoQX44WV%GI0DY7N5DVnz)!_m>! zE+{Wo1v@#J^JTkUBze!1D@`42R}Ow(Z^ZTJ>-}0NZs0LLiv)arudU&NZX@8!tiVYZ zyuFz}UCk{;*^eF4;_0;$PwExfrKA@C=b#)o2LAq}-*V&V(>IALi|4|x4luF}e9YAh z8w9uo3fU9IFQPO9Pe{zn<#jf`HVGcs66s@ti^mJ|c7f7MGqyl5L0CwdNbu{1 z3^nA0%ZIPQk|Wwu)6(*<*tpmQOeXh?WoZ&|-!qyNq>|;6+r@N8y7aEu?)5A#IcDb6 zzKyGjp18*e5vwew@M!tPPiv@1f9k|AA|6ETdzzYnQOj89WFa0>(d1=`!i3(h;UPsa zYKB^M>uv)?|F@*tN?s6}hsm$kI}HZ9i^J_`YS`3~;)HK-7t_K;KAG52nWi*M+i2-rUk zkP!u#T^V(VxlLbu!n?Z1odJg7ft*8@s8d$8zZq~;n^5FA8c&yl)MXYwWCs$uSxJnC-h2nm>p-ku-%K;y2{47!wDez27XXCR^$C+pRhv(+Pk`@OHm%& zCKui15#njuUa9p^8QkzQ)I@tii3O%?qPmbY0?gLFit%9|Cm0OY_OPg@&CkLC-*`e( zfy|)@KCsH8do`oqe}KZQv`Xqwz{N)3pHw572Y8e17GqiceWR)O5FrB$W{f59#JFa- z?t5$aAja-(90=vM&P<(sFhJQ*CesRUl z$}uxp0DSU6-OS;Nj%hb;P?FM@H(LWP?o3^bvpWLAjt}+wM4BKDxe@$ND|ML-P+TuW z(gB0Yl znuUk%+cV#&&z5&8*0itvstH^@{>(59g0U?1L&sxC_<$(0NCEZx@B%Q8tklJQ`DL~8 zaxuIP(kLu+J!Q9~&Xc1cTAanUYtMF1A6=ygN=ej4+S0 zP55Lsd_n4FbdO>(d$I6(6zyA4!Z6oFN8QXP@=&EdyU50_`9s3yIF&t!v(Gto0!U1f z+eDob@c71*r?x&+E7WXvv^|izl$?>gzViXyTq?C6Gt;+stU5dr+4it(SrWbMryQYo z+<4%3&GU%q`U3v;EiJNwu4Mw5lFjG*W(GUG=&N(Uj z)tn!Jefu*x%qYacg9oAbRA^7@vn#EvOmg#4oyjowipJT@X5IvoG1>s~PW(9&V^dIC ze)2=C&aTU;Lekntj!5eHZQj>Ahss^#3V-p!Yy{{F+)1Q)XO}4iU}yrr)5}~Mz;BL0 zt%TBn;{|H;o}5R(uK|~D&;u{83nGTDyekL2T)46qf3AdkC8v2>~V_UTEV@I%Pew(3g0OOC~5QPTATD2}Rvl9Se z9*hSkc!tc8-H~VW6Ur%RxbY^Hy`G-o6B#CJ`s>PM!_2h$UUOM}d3L&g2mdMX%ff+N zWN7$bGc_|~ZR_-OAS#H)ZksEI9U8Bo;teA_9D(Z!fXc@3ZOWi{ap#SJ^Xr-ew<5zv zhogA0uXPunuNc0Zy4tf9Ta(b+BVN&CA4$z0yX7H&I-EzCg3vC1!v zs<_6@ThM14`!vL8lT0IHJylUzwZpC1+Y)Zi+I_YZx)+-V@<0;ylR0L+r<7V3l-P6k z%ENt!)**NY^1GvlH`BO_EWGe=L1Ve50tk3>9{O>Y2|lb$>!Wm&29-sv7$|C?@iVx6 zs$HzA%8676z>qjU$jWb%! zeIV5!D6kfi4tLb{>*m8_4A$D^aMRn2*3qyo3y1I?PSC0oHSKqh(R}T;o#2b!$jx3& z5Gd41D9mD8wn|g%Y-y`#-g~GBqdEmF9-RjjU4p2t-y2!!B5aV_u)x^ZrOdtpLkoer zQVm*k5TYP?hox9k7}dtjL8dbs{}d7q zANZocT^_~oHUn0%|52S&8t^0LzHQa;9G^_2jc2&CS_G>PAmQhBl*1F$)s=fPDi7d{ zx9-?`gt-ifG%@Jb4;rO_Rx_c7Tqj0M+#X-Gx!hPQ55ZUb9-6|;4nd5MBSlZVqyh@U zvdHSDNFM}*>S)<+wM0O;S1j3Ia#dj(LFZ0_^mLq#Y+1MTLUe7+-4~ zvbKJIgkNQO#hcf{w#%+ynQ;dr;UtuQm_dVKvyr%3xZYzU_xB%~7crw5n&qftJQ6j` z86fgVHouNL34oX8GI@m_>11@YVAL?@E{^+)_5<0Eun&}yfm~%suuiOLLC^!TZ{C`f z=alwz)nOu5F!#zq@N&W{>JgoSLs7f&D^L9B|cwSXU& z{nDb`Lgf7pfk4UfAw#rq07N0*KRD6&ZgOaTZfQ#*9vUuU(8O&%qd0`SfrtN<$v^d_ z`J>~9>|Mh>jd-J^SyT(p#lLx_O}=BK%ANf?JnBb)@Xv$11CSyHT`qL036CEb8cJ=5 zS%{VIs1vX@uVRTsAj<;4J6)L^7hvMGZBsoBdEj>-QFi$3b*0U(VmKfl2~t4CD(XGI z_MNp_m%cUCnp;jtgj}eJoCk8YSqq&zNI2&8>t;YM&Wn{=+MXL_%LOKeYSnp;RSetM zrg*M?$aM9IDk6+D;=!f8BauL!Gz*AF&-y6i1dl;D+*BQIf&?L-2KdJit=G)q=;L~N zBBQm@OuWYRur+op0h~B6NXf`7VPQGbU1Xz72xAg&=Kks&7(~4o1>!THObib(%JrRC z`*AJ0?h8IFDjI#dg$;1{?6x!lbN4O?LS0 z0vk#@02qhx*gcMHD^tyAi<{=h1u-y~En~Sj$Bzj~ammESk8n!|X<)elkJkrDs&3#` zH?EG)OR^qJ`GKUctQ(U6z_M_lPnwE_H%Es{QP|JveD zz4bY^Jii(JSZrOgs91?K_-(8B^(c!WGrAEJ`v73m86<9tD=X!o+Gj#LyB`DI<7;ax zD-4t*O{f^j1cob|^SZsDq*_HL=Pp=PM;uz}6s;9@b*=sm7Y>Icv&79XZS#;VcTOMP z)7=p%Nb=$~+`CpzM&F;fX!Iboh`4#W z_|(9K9|lOJ=lGkZ(eHRiv3 zr?^K*Z1*R^&dsxz**Pc=@V5)pIy`>a^dH5~rr!L6{P!Qf-?vJC3gO4`_4&ci$ovcn`bRPaZnEg$M$5W%Fka9kef0U!$p&un3ON3F8*a7 zz+>*riM_7|!|ch-5GDlwW#MPg#`}kPf+G@S9m627puQ11$XKDN0R91|SCL`tb{>AJ| z3biolT$BE-zP|pXjt-(dUS_n;#~yglnh~pW|GadUQPFsRf4_tk_SB8{kH0;(qxk>; zYl=%sOhHpB&>svpfkzcqRHy;A>Qk>NH3&GyW3cGbnNA^LaFWvD z^A9etR>{_XzAX6fvDozJi;V<=A31}Ia}lCC{(0A%m)io{+3 z6a_WCXw%6X?@mAro>Tw=16VHVLpd^89%a-7g+4o+KTY!S1M@}QkAs%|y4ZKJ(h6!m zu*8|NfGP+=G1|C<)aFvw@NpFoetY|==L3ug#CZ^3?62eUaS59kS&)=awkx~f;NSpu z$xqfqgQhTwd%nxi^06~DHI0y|iC9~xt*`f57%VO>D>KKGxwRNQeE2Zqq_-7_iNqGQ zntuTw9a>_dV@0LXzLhvC4}*BZe@MXd3kr@}7nn;sQLqk*VIJAxa=tG+n*S^G z7sJu256-W7n+hVmK|6whD?0?Ren9}5Vc>u5ym%!H17&po9QO+V*OdX+u|(u5i`e;E zoC|k|$7z=!c!#@i=2jRW0}JfB=?hMuJiVQegFN+=0ZM=N=nz*PmiL|EBM4@Ct=THIb zwi-dgf<2N51d*M?oN=OV+JVM+dN20&;})6WKf;1Ql3!6(HJtHMeYZt<4tHFO&F)ZU z_Qo5Q!!T#;?TM??Cae~so;pB}L<8>%7uM#>L$I*X8sOK}jN!I7ZwRKHSa52y4t2Zd zy-~Zgx6fab1ricRi}=!@00MOebdK-#F3d^0uhw)7rU7~kjz=t(>w-pYNKkN%6aBdxM``s{nOB5o-%W+(`~GeRFe@Kabn?2K(TJ-&?sRM&Fw0$}_2tSu{vM`oB3DGd{r=3pY7C*; zE{!sqU}|fX|K*;>+#i}$RXGvQb=pojHB)6RLt)=u24wT`g>%j)+~ymz66}I07f&r*BlUR?456%!^~8* z%XV4lOr)G}Z=2!7Fgbd5=9ZW`AM&iQ@y2PBL}v$w3{|K4na#yYILHAReYhnKM82TV zvT%%YXJ)9>9`zk206;q`PW3ALodZv+HGg;|i^b6KfbYb8&yh6^sbujRsK&}#LwgMk zts1(sG)|#|Uw0ee!{LBYB4_DtZFV$4?;tZ~eN(tbaM>N6z{R8j7AI+YtNDS{u#SL( zNTB!abpny}8#y;!eMEeK$fJPBu;@a1wm?@oz zAo94RL0Dh~adQEP2x_SX)G&$SjZrN@mot;ZW)yQW3P_u|nVDGyVV$z;;K?FkQW4L; zX}$n@B{~irW0Dv(=GWi}sx4#~MuzTFa~^4x2r3&M9_CLC7qXw?)H)u=*mASPbFxmH z<*l#&qTclyX);S~p*>J>Aslww9tC9R@s2y}K2&dalWHXUF4G8bl7?lmtf!?6TWrho z&81xnZm9w;DZ!%$iMMvO10Z0F>gDZroO%y14WSXe^P!@DziC+Xzm!l{0Al0q=hu^X z=&auD86fY#T0_Q`04Xv7F`5@N_2SklU|P8k&Fl~s^AK!r%?}j9H#tnfJzQ%C1^5IQ zk3W9fEi+c{H;W;wE2wz)~;f$g2qvm6eI8+BkP72Z#Gju!yF*8mr zQA#LdqN0Ey>dqS0iCkGdR zggXEohnxr@KMkM~KkB}a#o?z$xuBg9-1)6%A^S733M?)XGRbo+BR zE#NbZb{!h3S1KLla_R((H2@N(1-#*z+ZnCwmtBP@iXgc8(_XG-BSL*?n{`ob?Ma9c zpb2_Qfp)PiZ$No$t7Cgu6)1u-kV%pZYCH+gXeu2*su4HdI|sh}I-I}K&c5%){}DE3 z+AXqQt-Hjw6xts013=>qZ|JF;QHjwXUmAK*H*_?xPnm$q5jC|#?gDT=iGnRA0@N=u zG@M-=KCE0nt8<@Bd(cPt-8j*_1~P?!^JR+)BegXPC&FCQh`i!x9>HD zb@cH<^;|z0X4jU^h=`l^H7pj(IeKl#p*ie^nDnVcc~F|7g9j{>iev3D@Gjo|{+59L z*p38B%c}OYm0k9IFP=gC~#40ozq`_4Pf7 z6?8{f+|t6r!U(kH@&YBWM+uQ&oo--UP9lEpHFCeuPLepkYKBoUK={tW4V$)y?y;Vs9PVBBp94^b~~bT&R!77Xq4fx>yd4ql#wqajho%t>+jPa zbpN`0OT(T2LKgchQcOp?u*BZMD2%)6tc?yfxe!xSrAt=JPHX6viyr@Oq;Tw?R)_y1 zn49X$FK=6pf#4=+GMpaLhz2VG2zkPo5r~JZHK@v0K)@rZ7ksVIudc4H-6h=~50vR_ zwq$Gkn31=Kz_N5OhMf*49z8cRQ^Y~3ptd$W%h4b;=A zS!9UP**p!T$ghPzenTPZ-xR2X61!<-*$La(5D;Ec*nTWiz;RQXp9gI#|2iy-@(Vxt z+CoB>#%DbL`VNX8e(n79>8HMLKMysYNcI6dNl5Dl=Y_*+1j~5XV0D$hkyBjGPu2^`00TkKXPT~ z1_1%X1i$VQQa>H}xcSC( zn>-AxRS%`)}w?<_#=oTQ;!6 zi#OMovrgaHxwd-X@7ra2S>C_c2$ag5oua19NkR><;nGG?r{cur81q#^u60UEN>-OH zC4mb3%8Gxl$w1TWeYrt+5NW=g@SZ~8 zwTt;lFglm4C#s?fHcKVWIp3lzCE=`UlstdX#9ICG)PPqN8 zGC?NlYcIHTV!}3Kb+xn@GU1r!rOS}wh)1S3P24YLhJ zAHI&!{q(L=o(oPc*ln%7je)bzfEl#`rqK#8;Lqd+T9qo{sxLNfQG0rNfR_ijL1vaO zKks0sP<-)NKG-S(;xQ12FMpHb76R_9Yv=FhxBN}&>(5NnhlM_3P!J##7TTu3k6Kw; zUMb3+d49|x|Fe;-G-^NJp&)e(B~7=9?QH+oCzUDmqSU_XOIoPsIYWxbvGu7>PY=F; z!T+ok{O3Pr$NX<&5&w5p1E~Zn^+5_{)0D91(?qOvI1_du{i{zub$xQ;tdGW(pIe;uP#(PpG#_7k8I-%WM>S*|U_Y^U9&#xyMoIWI zU%kERe_LvhR_(j((8|sQj&grfzew*s#e- zja3PT8lHevtQ0U2@&l~ee{s@!xw>~I<) zkUFqvyklL~x1%5@t|rX(?6AN7csYH&WHdYTi&Cpggu{Dn*9xz_!rs{U$xlpYSNCL& zL{K2}Emrm~C3};cG*Ei+OQEL0(&j{wg7psm?}W&R6zhTldsx9PW~yRqByFWmIB0P? zGU!>=+SfR1tB6x|t!eqpDFwG&MYnKpgW{qRIPR8m4Pvo&&{#)VwFjU_`~I4U${oNt z4wHF)Ey7~i%j#sVDwxns^luP6h_YQ(7MikKJB6V-{M5J_}Fyt2Wq+#h*T^x@<=< zMtVQeimeO1Ha@&7bji<_2fJJ(jiSOpIo51>-N-Y{2gUj;oi7R3wNXEJ4iPrN<_1>n z{gh;&t55Ewr4}=W6kz=g{^1crzKnOpf4xkY;rB{AUU>V@&Xve_yh%C?@A`?$1yQ}G z@5nQG6B0pLYlq!Ym{M1%CG-X5Hq8|lkJbO{>}*po6sLMbm)*c?6&KIHgSqNLLlLw( zjt6t42}whY;44_!znAf`>T0a))X??8DIwz? zjUZ4QzS{3gB^owNggQan(|yOEpU@9ox&Z7j$P#Gy43{|rJUK%rz_ooFWEhzoc%GG=y@BLxAP$$Qo(OlZ|q?1pu85-87BG zjT&{`_}i`OOnJA{a?$i|b6N036qivJ?hjAsWpM#eDId-$M33enn;%t7D!g8OEsjfX zE0}HOXtpSAR=Itfj?>p}L5~imq}QoVZuc6uG{z}_99jETLk+1dT2 z(g_F06`Q`s8@C$$=~2dg4YEkeR$1l7fgs){ovEiO>`o7L3|*=?PsBH_#< z$pAiSFR(vHM%OKmqE8t&Ze>gxAzZ?lPm_ZtGg|dyT-oD{sP|o*J>HaFHDi?TdGX>7 zRq?Xr6}NwdH-erE9Z{@gTsPPitMA7ISyX`9;sDa)1+uX+V>rOCbw*8ufShUP_EzP# zVEU)3W^b0hrq_#n%ds}`%uI9>*j#?{Z!jaFq-=s>LO{)^ia39_o4 zE0M3B-6B9Bbs>2O5U{xhHx_JCQfCIp-6SBN`hLcNMT$r6o>5XZO_q<2w4Z6}Dn#%< z#BlrJ>DeE`hEhFsc@GZd)IXFOR?mwY^q5E^oXa5q^s$9At2l3aDJ>2+xtX~uH61|t z;^>W5-Qc;4n0z?SD4Y~InS57dzt_@8l?-p0Ql|{6l_S9R6{aV^`hX7}?sBdZs5`3& ze*LSJKg*kg^)?l}k|~y&JoB!w!Ru!iTz8H$8N4ql$VE*0dS}5hPm})W8uu6EQBhNj ziWA{*oRr)4Lfw(O@^{ZTIy&Oln)@+lGTq)IJ59}+>R$QhChoxmhip{$pUKR`>-fO+ zQrV$&*_4!Ef$aY8{FHCv-ppL8o6wuA>NFkmLg!ASwwf7)^rq5i+c5}u3v4-aNKtiu zQbnCETf5jB-jeO(WMy^1$A?UsXYf=yx{OHas|W8^v`F34f^&#tuG@58=G_6kbDcWW zhNCUdQ5Nk=lX*Ki9k%I~y}FvQM__7LeGQWTWHOq7vPf^&N3=b&NojbUcON^Rtz#~g zDGz~`Q5?552FXbgPwRat$J#rBdK9e!q8)}DVfO}^yqxnM@c?bdK zvJv2IlA5(geRNQ+yKAC{XmM!)^CRnWR4q*jlT{K`u+cZY4vG`I3(s)W^$$y!tiv&o zU>f6*p6e&GPrc0sXnMsj#}6f+Ux$0c4vnGY-nf`)&(cxlmaVx3mONLz0Gr9E^&%*@ zu;5D59URGq1Tl8Z-fJ{dCTD$X1n=ef>bDqfX@FWM)AhJfI^l{rb`0S7EE-G~) zkL>S}Oo{>EbKtWR;;PilMSud1ca9w4l;^4WVNLq)Q1k z5TykOA<|1o_|`M?p5Hs?`~Ust{l4ou*PIzzo@ej1*Sha}uYGTj@4fb^QDtym$Lc&> z>b4Un2g_1_@2~N8>JU&r$32;zO$|I(Z&o9vUJ3U!?jUAVsi3VdoOeh*FZz&$PEVIZ zz8{fKA*4`=;)%ZUHD3eA_v8HBoSem@%7WE~I_cxvv;tAr$Vm(8Mftck!T6gGS!rcu zqR9Bp&}B-InhOF)6|fCB9A)leS9&JYWKUJ+;V9ue%z9M|2vpZ^{lpXJl8N>{KI()rZ`(ic1+R_$52P zC9#u_ys*UO7ObQ|DK6Q6uKtsL*?N2iiyeJYR9LAd!#qTxo_=&fQB1)Vs zME))-{?WkDDsorpwFy?e*{B_b&4W%!zRb=6F9Oy_&5{s$U3k;A1M^XOmU0THlHj!m zLG#1UW!+4vTbaI{^Xo~X&3i`WRhfZ3(UjHCn_FXqjziv9ZRf`a=8~Oxblc;P>`s51 zC(2J^v~uBCH|8x?DcV&gnIGcnmec13x>nb|w8hIVkqblQz|@U^FW2{n;nn@-;cte@h;X%d zx&)ct$3@t{BDqV$$-s>BVOtyg`B{^){T+}{Q1gB+8htK9Q4iPwlTey`Ay;!o_!}oQ z+*2ZJA!3F<(h+Lp)jbIlWXEaJ3SsY3b zwN#PPn>2WYzBou9eW@{GsR8={U{~(Q!o@h`{gT>k^iyQh9w45v}>vhW; zmS<*^C{fN;mTV*}To`k7=uWE@>!9G8sUg-`Euf(->3oK~@7Y1%GVRE=WJmmYN!S8v z#c{ev1S4$>E#qQ-k~B8Uoky=ErwW+iSA zYqmTwb>n!KG**nO0~7r9z{XPHND5*=&|jxvM)dFn#G2$4s(a46uDuOr6=#HJ zw_~iA9!JN-Kr6U{9l6m8!R;HePiX2})!FfCZnrp7)z6hbEWr`k7eWS6&8f~yP#+{D z`j{Z7~fv3tBhB7y({lZjpLuUjA!rR zll8evwY(Vk$CM6lQfF|WhvuX0J8NJ6KupjAuInH_h+t{E^phK;Cw-av*E^K4e#hE` zB1erU5wz&5LYtG_P1D1|hml?JZ{y>GCU| zizCR1L#@H5=la-oOjNZUS3j2$uwApYRY0z^|JF+(Emx|n_r@kE+n6FB)AFo)D}t#` z@yN60PT!yiCq*rMWKG7yiC$K!gn_|n+xh7Cm5Xmt@v6mAxCJ6h`OerO@8CrM@`)wg zc*y`yth~!`+_RGIB*lzch|Z5qOSF(Mg9&N$JB`@e#o0%!(O5p{IMzO6_&rDktH=>OnCqQnZ^imQ|cDi&{Ivi|GYW7aPGP!CTD~utk@|QC} zxOKMI%W3UoT8|WW_MZO{EZ!0jYP34Cr<%RV#4SZ5er3w_0XaP$IMAv&^EUg#hjF*4 z)|FHFhNYx$_c+iy=g<_{FL@Ndy~=WM7>$1K-#TdH*%RyxnVUdWbhqS7Ojyb;q$COk zhIf$eSOu%CE6aLLUOl25+7hPuL%%|boDz_S1=;^e3iU=lG+93HG#IwI#0b- zVVCDYIFHVRt@l7Ep+c{oOj(D4H?8qq8qSLg+gNl{OTKy?BR*)gO2K}1U}vQZXFA+@G}*rj%Y`p@Hn%b(oJrlJ zMQ~PE=SFesyJ&8T27Bu#=ejm}3MoA^s{Sh$nNxzah)w`!iYctsF_mI_2NPFH@^e~v z+xw608%;Q~%|Dx@j^ZQguqMDPme$k*Eqx;oXk}ld<_J|tw)#d z;)BLB#AL7^UbiKyTy!SQF}$qz+lPJLa?~iDsvOxU+-BB=-;+ZL1>0Mwd5|eV>%N_B zO`LDx;e*wITtgkzjAn5A&SL5?p&6~_ z;elj9qI+VjUhpJAg_O$R+09uQmD?CfvBsBX{Gxl+45jH8L{5*A4e_g|)Y{r`)(&VZ z*|VD&ofCQm35i&TUs{<-3To=LrDvl=oubZ5C;mfJDKW;b~pWz3QwSj{7Jmu|yKC{cV3I zZ(?AqTgxI*Q)I2+2Cvod0!Km2X0=1qdBHOctH`O^}e~dKXIOyy| zDG60O%wVD3W{E^Z%*hzd7l60wlyp7kQi0h;IY5=#-Q|4Ci^P?|I@UVohYG-4E}-v1 z-igYF4y?6WN6#i{T+R5O3#y03x8bs6U2W}Q*4k`tVFxr=S>M}^6w#c@RA)QJMHm|y zrRB}ZZKsI-hY-D6ie6sc(eV9Cj|E;7c;tLpFeLa30xoT`{62Qn2aS27Wy*$4y&33+ zE@OTNJ-%pBe?R~JT;ckcKp&tGoNjMFn|!5ObkG3zo3Cp5LIut8oU@;Ji#B#xgkR}O zUD{c{tp(T43DCLisSnEUF5a`z=4_?RcjC7D9wwid6!rg}U5*t3!jQ>ee4FT@)0Ke; z%izo{{_p|&KhP|F5MU@W7jy>TM3iXtny)o^74Y;{a~!ip4u_?q5aJ9SIi<>I?>|~l z2t7z-;^a}DeY~2f74vO9$$?+WYvp3N(<{9fs^X4*E{E~X(2WG4{D@d{-p>z}OiUQz zve)|U*I$ng7P(?F!Qbkj0&#+8El<%iTqHbje&}o<@>CYblhSO!*FQVk>A7&VQa{p3 zV~ktL<#`c}X@j=8Qz!&z|NWOAyNwRM{Pr-w0mz)-FlJu$IzF~7Kf^X zxn}}}slA8Jh`AQe!JY%M40i?(n{=E#b7rEu^jbQRDA!M2G|DuyFz+em^J5XU!~Hv% z^dMDpizsQf7ph>h?W|c{0d~Ry2JE3l%6yqCJWD0*dT$7fR=oyp<6Y@Sn}X2v-qc}1 zCzlSqu`5l9ZVND>&Y zZJLk3NG48a(j!9pmFn1MN`9rgnMGEO7kPC~aj`CNeEE%ZRX0bw>t4~B*1oyVKw<=k z``kwo?VNpVm(J&YB}p8`cLt3=KsH`Nh<9Dxet@SlL+(SS9V#H@dQ z<_e-qds(sTp+(5iyp|R*-yUvGycbjO%`2+3om{;kFsKeJsqLd4DfF*WvGV*X3J2@^ zB8#33nhL-Z>X{7JwYJArm2(Gdlw6&;S|H<(OmY~x@uyrb-(q#1JQ>>CXO!VvxELLK zROt@=*^~pTg<%S z5|TwzlArBrX1{lB%Up{{X@v0T+ImyfMe5^+I`H0%qt7Bl=)y9Wl6;Ns(# zP~1_@&K4JjyS+Tue8(bpY=m~)p1wc(Lby*_LcxnrS-tif3T$hpP0w$bG9FA9r@XOI z=LcSwmQi&Az$Tn_o%kO4r8f7vw=2(D@i+aRr^3pMqmt@}b0a|S7_Dt7b?tvJ2cly7 z$xvOEd%pW;kRFis%uS;h2go&&Rzwlt*fHusO)r)Uv)hpUuW~C_i3NGWS0UGY_i4|` zb#kJQZ(EmJD=31Bhucin#I=FPLWd&?EVG(|xa~9xullN?4X+Uy)t(;}(8NL#PI)@N@t;0DJAoDEHeHdxrP&mn^Sw>E}0!@pKlrpv9VFIY+?s-J>`*8sS$ z&s%qI@a)nh!Uo^$@>*MooTmEzT5;IuHpgd7jRmjO9i{h^*kd2FZl=oIdUqeaOvL0n z<<2g4?dOP3rgKYgC~7!eo2akb!1->N+F)(!0+;VWsiR)4${ z8yc2S>(DpQV7sg)zCmb?*prDC=c7@;1qN;e;&PisYu#AjBoy|zO4FNZp)tL=47 z!Cj(S&lr-~F*3srRC0qiD!kxNN=RV@(E-=r=^rvwY3HE9nb(Y%5~&ZgAN859Kv*QQ z0TG)=iDkvQc8q1pXHKR|*Nvc{);9$!cdg7_d@|aUqT$PYU)&T}x4P@o{wAXmh^vVl zZ7~{j(NzVpk0|==non(VS6v)fNFnu!plkK-1~OJz=Kb~J>KpV>>2-4i=0gxsHU=7z zWlF8Rb)~@S;#s7(kLEMi35#j6qe?_!l(hMxQ4!-~j*wkAdQ@P6W=iCt~%mMl^^CYFz2Cnp^T1M-0>xAe`8pBEXkvhSIj#P1tc zd=p`?ueh^^K8yXTZ`fp0dg`Fo8~wW$ksEf8;!ZN`2A&cuF4hT1coj4LK-76^&@{y; zI&K0iekZ;`GdfW7gMwy*EAHFlyTpRr&=NU5ZGj&iV5%N#=pb$HEw6r;^B;flCSEpM z3J7>7f|EM-i%sz>s76vHt$hs&yI|KnR?6*0;EsT~n7Iy>k;*+yN?qbaG0OH&xryb3 ztx4uyE4^tuf=%@v!ax%2VzffQ$uM8MkC(fxFZD|91Wy}ZBv5f$X}`46?eClqSV8vq z&xIN+He>8)RUlVY>f0L86xKtm42b)Ps;?|G@+yDjfaAr1=&9JgpskToS)YLg31c1& zR^>dj{F2m`KcpnG_e5B)2~(<0kW`A~X>G@2{iEo>!rmcGq{j%d@(|)`7|zUiG9mCS zy?>~oeLYpeehM_DQvW7S(9)FHwtAqikf3q!Hf}4XdEd`3cU`|<)FQNMrT?qhQOkQ0 zL(->Ba^K#GS=GFnuk2Jz7Uzz1;ELpGq zxU$3c0ZImC?x)uA?Oc3y@O&F3&_Qj@n~E0em^w{$iEMD{(Ls~CK8NIMH>pVC+J1*9@%tGKwvwiJ-sRVa+=l(X zyTrtr-73G1|5GCCg@v`Tg~Oz=o;Yq)DJ}npAA^WNHgAs=s7|OcwTuG2#ZPa3LzZs9_o?FyH84MjiIE6kh-!W>4tbffpcF@F zlw%)%4u$)lUVtLA_*J7R)vWMm*0jyb;q6lONm|u$V|k}W&Q)w_l^&Q?jy1CmrM8HR z7dtJD_6*gml?4T*>7M=QwLKs;J0NpoTOlWEs$c*!<9{q}z{tqO_}2YGzTJDGExwW7 zpA^USN53CQ$i5o&D;uAb9j88OJvFuqLrst{qvwS?69?g;Beiq_)kxQK??gBo&v|UH z;(P0{X+kxXxdqG~gTU}K=hjh-#P;rf30xdA&yzvPNO;uO<6WC-Y--!J%vF9S)5v>$ z@rO?_g9S;(1)a9AFA=Q$Tu&vl7)^>4^>*feV-k75Ys|&1a(vZ^Y8v@%<)q?=LG_bc z=IP~nO{biU-uoCQ6gF%2ueubtm!IP8tPHW7jT>4O;oIeZfhu9_=~=Q+0Zpsk1OMvz zfQcQo&!O-3(>8Dl?=Ia>7B6|AMA~O~T@^=iYS9fm+;b9j-c_WRs8f+=Vo^Ene?m?K zgFnh^jR~ohbU$Yv+X8l#9g@v1`ox#c2{aVZ9DVw3AICD>^nQkVG69qR&+PWywCm5eew}iHj~qp|M?2YvC>mN(ihFp5M&HgkXyb?E zd{t7sZr9}OJH28)#OQv1gtoGZAHk=+lK%!|sJPb!#bfqlf2Ww$@xt=5ilSPEa>C71 zX%x{iLa}P!qbNszaj9bQn%gfw@I?#9o-Gu2pIOWPbf>4Bo!uCEz)HJTubux%^q{V2 zww+;9RdQ94j-0!IB%I$@s=jf3uu1cpaR3@-Fg)3(hJ-f$&ij2~q2}~@frg_}GQsz@ zk}!K=esuD2y2!`bnXci$<2a_ut0|w~8;Y#E8pov-PR)*@`=dA3=1Wwi#!2@Qaksk) zd5oetE?hIClvM8pIV<@m6IxHh!eT_@Z=7oQ^r_dwIj6~<#L;Uz^6%A}bvDjeTzvk! zV*Cv?K3|40ULZzZ`+5DZT0-5m@h3jg>0h5NwMZKm_Z!l%&!h3NxtDO512dy-uBLt; zFIf$zx?FS}t}{Y)d)Hc=zVJ!)rQgSQeSCw3F(>$xa@_4F<4>Y=w08X^!nb>da7fUO zI5^34Hc;GX@MI{@?p5Jp4A$Hz+U)zCp_2GCtuOLG*;nb*l?nHN7-fnXx!>$(MUmlR zp^n!@Q7MHH^T&rcZ(FN8Zqa2rt@?)#oqnO5Wb(h}`de)(_g5xIiHlCYQg=#N@Oq2B z$5WAauGKG}9r(UhYkN@^@=m;>J<)me`gzw8jjU5q5se3(L{LL>23JWXgo@J4W3~4* zDla=b5Xb*~o8u~rFH;=tDo@-)I$K&-JEUOZ74>U!yX2S1C^KX0YsN{PSR-FIfmzNd zixs~-?K)y?IktEI?)A6>6m(p}?B3%n$f`|6CBuKPj)h&=uDn^b_P7HtFx(Mn_{6c# z@MBBuj&~dJ(vmA`yEa))e$2Zh+7DYgd~ntH_E7LZF|Msje@5x;%~}~&+(N&vzUjl? zY|JxTT+n->WWD7}FP%-4|ML1(mJ9>hxh#U0m-nVx@z|7VGtW{b=%M>hm|vCul9%~- zW|UuvJ|xsGmxtc3>Su_qWq;C_``LR=8@u>?<^8kZMwQt;8`&6IMkAGf%plsmJbHsC z@ugEu1|va1=7&*ybkJ14c*l5wYi3x>I8qjjURw3$YP;8*i4k zP2lW87g!;-ut{zsRoc4SOP%WU&xbUP83ffpag~}`p37Sb7h_`5hY3)`Lv}PY%a=#ipM8?y%!ZaS z=Jigi6Jd@yHX9kKn;)%emp@myJ=<4UIPTy{7QJv?fy*toRq4v9foF~xPZhlIg@qA^^lN8k z<;^$84~6meUhC4i;zgHZl(D`mo=j=ae;sphm@BC(8|(kfZRnCT$L)T|fWN`9T%BNL zIpZ~-Fz*T5Sfw&aivz?m_;4i;c|D}KF0FCt&vA_GXx!N$FY7nGT;7Hxi^O9L{& z3b$e5mzcWF_A452jT}y8qj;T;3S@l?e(NoB77Y_(G-FC=ZaP%ra@brCS5r-rZ%Q$E z+K_R1Bw;2&s68eMlSdwo%Izhz)a)TgM%wh{a#`oc4CA9?&}j$HYOExF6SOTIB)Vw4 zJ#Ssykg-&0A1b%Ed%|NR1}bUbksf%A!ZwwB`D(Q-`}z!ac_D%DMGxb0@oideS0{! zuPMFa?6{v(c!+XIDpFrLX}|2+wLUxb-j#eIuWnVi^<3YXNlSumCN0~4{8v>Ew6yDB zp!v#=Y%kZ&DP-Q4Oa#BAlGeVEVGaOk3980eWiwjr;{Y0DIxy*lV$9j}^7inVxQV44 zp0BxT$qBQYYF#ZY5;En3+KR7&tldM7WoCx-Xs`Uh?tL9{-%U8cxN@AJ+u2W5f8MjP z|F#Q?kCGpM=#sjR(r}ifmAS`L9SFPgQn3{UzGcVq6i=hfS=f>S`p6YEH8m%F^-G;2 z{nS@(9k^9Ka+3Cwml5Ei+>{DaH!~!3wv2T>VboH9)>YL{oNSGACg&L25xBUx`u7M2 z-Rp7$M_@Ud#$U#npo$FB8M&?|)y5W4Cg_VbI(}kuzj&&5OmW-MSsJa*RgV9zAD5CV z^8Rdr2r{<3V|>59@L-Ax<~F$>S$!obA}$q6w^sga;rB@~`1o~4nDFRj--zkcC~@)f z+2H|E*TKY`%jesVn&#xp*P~BO2f0PM@phYVQF_UKA=F~8cB^8H8IO3i8wIO{q`Z8M zq1od7zmxK6P6XG@7xm3ud{gt`uuf&_llki6=SswVJ#AO3rG`wNlM8rLIC*08bJ?%T z4?T0_2Wd3ql%}lO$eV?a%2^t%`nv-3&-*lHDldP}AGwg_939|$_l^q2=ngqSu-Uw1 z{x2=b@O_!Il6@Np` z48Sf(sd_l*>7)$ksqy?kZFcayK!5Hxc`Vu}TQ$a?E61jJQ-rTqPRnq9?suGelXF5c zCT*==^)Kr*JIY^v&?)!WVP$Tt|xIg{z<38!NU3%=2!VS2a|*x{-wVYMr%+nH=YU3kn~K@FIUz!%`&OTOMO_Wv6}0NZd{8Vm5L% z6^n)$&y<67wfhA7vJFz+%x#@u(-YYNbE`sCOI53l>+0K{Cd{)D3XP>ha{=_Fk$^>o z+6$0M4nXbpskRCXPwH6`ZWJdKnToK822Wz&1k5~mu!$=rojxO%X)sJCeDbQ@YW5lN zwc#Oknn4asIovTFWxOXk3NyDrUt5xPSedBi_hx;`y>R+eOV;L`7i3WN#&o!_`-q*m z4nTwtesg*2R*`1|_4t|XMAby+uAzq|gXtP#CCj66f!=`fuT3t%bDuR0)=wPMMQh=!}Xn;is{=`I~9L;u#p9>UfbUrHZ`upR{ z;^*R~=Qf@VTg0zkC)DqWS?K=pNAh@1W56nA*z4Rz&7VI6ar2sBOcJd!WfvuWIkX3! z2~cmz(z9shH|Hax=k(wF{s39gH|*bE?I(&~(fENIzIZIxigz$nh}3EbdG~5)e_To- zidS*epPkzZ?`CVN3hx~4Q}@NyVs#;suXn$`^=*$ZlOUfE`#HP}wvA_`PDjlk>PrBU z*EZ~*%XsdC41?v*)TW=SUHyKm0ke0Hc8BAZ^hPC@`|+&DD?i3W8czFo+!qb)U5cw5 z5Pwb%_Kz7U0A6MYDW{{FZI34A=e6d% z^|S(<0GNVg&@Y?4*A#GB==UZ({ndah_YSup5DMzVt@xh0kk1GevXUc7-j-HXt++^BZEm?e4V_;Qv z;^Z-l81*A^4fdrHa;dK=w|%Ok4fU69JL##*;%!T{9XffeFT7(;1SDOIGluJo_wle^ z7?&}#=X?N;%&pvW({bnLE;ePvs2#g*5KwM5GdRU}_a=kYiQ}ZgL3YRG>8{z)+UgT0 zPT0yPdT*_JxDJ&y@8!}qxOcAz+z8tFe*V`P92kkLK*UY#67kWKC-f?MK@S=ed@`{; z#F}Hs?w^#gj6us(lg^u^B_4TS64@*nE$)h?I1pVE%Vh5flDzKX>(g+Rc`x! zL$!2B_hqPNB7ECQVOLyyR@P||n1+!m?;Z>H+Vmw_r-YQ0Zc~IX+Q+B-%9Sg<6&^M# z^CPTh1+SA5uvfa?Fen7&^x?IY#!D{rBVEH@5-4{_n3K|6Z~6>%Wh5{{8K*-v9P# z`{y_O1pjRn^v~CZ{z~|FirPaUPG1_LOm%z;*36J=Q&m3YGd)W_#^~AI&fjh3AuJUu`&P&mGt6 z)jDgUYtCbr_DdGs{_pqvU;p^J?=sBleTn;(p9+|3Q?vJ+A_K~DGVO13oVvd+Zt}e} zyhV=BJIuIfey>ZbrNE_c2mB5F5FZJ-y?REM*f)0dDq}vL&9`a@y)7=a7wu*rDE?pT z_O*$X_0K2aYR#K49I6KwtWj;1Hy`=^SFlUVlD+@ax&A-TW*PEdK9_%g{kzh?4K4rq z(VG9)70Ad}3;)YB^6#H}NB_U#&vg`L@Dyzk6P*J7r?vf`VSr17Cc=g z?u<*q+`j$h@R1`Yk^cgFG{XaBRa2s(qMz+cQFtZac}W~@TgmOv{pZ;&Avsc_Vqy|v zVw(7)f`a))MMdz9zgHo;e0kX`JtIR4|KY<2_?}hM*+ojj<}K&k!bc%S@FTrx<4q9~ z3JPd^Z;73D=;OzI9?y4J78DG;UW~(pII0{xaDe>RA(0kAcfcu1*r^wy2#9j}^7?Xq z8P^Vd1$aPiVPR<$eC5Hl2q7!`Bmgqvs;XA_2^uXE6#W=p2XH#NwkPPxLBXTPk7rTY z^S<~rfU-^?2Q*ehsII;OuNF}hm@whs5n8p&Wx=ZD6~@b}42+|4Tk`Ca6IJ|6_U+$) z5=9MR<)07{p;uhJG~&UwHaFMTf0=N>@$IWu$9L`7(|;$IVr-{w%mYqi>F^XI_Et%a1#z8or*JV1qT;F*TIsj_~jOf z!n<%B$D49uM_jIieAZSYzx(ls;Gm!j?xQN8y+`x950=<99;^g+B7t9bewB%fiLnz9 z`Qe8jE(EQAmoXN%Z+rCyfFeJROW$PJb zM92e#sk;0{!+S(viwg@QANlSbOhJ<%0t~s29yQvZ|IZoyZ5?nsNz)Ya{{xv=A-}IX zQQ@-=5h{y+ox1VrHJsqI_S)o@Fu4ndi12At&MJv}cZ}~mB^&v4e43P1m63ARiy@+2 z>oGPRv%ToI1rfyV{OPzlYfkp$sZ&l{>(KP*d;BL$V_#f|qC0J!X+t!Z3tV+MYh7b{ z?0GuHBPcl7du_y*o}Ed+H`~e(NW+ZHVJasB42ysP3jC6c#{RgYz(qA+S^w6p*P_`K6{dT*guM6( zNlA0Z3}Vw@OT3z$oSf|XDEeeJraokLpg0xIzUJgxkT{*j>en{v*sB)#ro~s(IqNon z)Y13hDG=t60GI8;fB(Hidmq55QEhycH{E2aa(<+`AC-82=#G5i3WvpXhQ9p9DQ+(J=!L!XL`VZ1&pIHaVtVM%A-urtsfOn~$lJK}G&VFif+LZ6@tsg` zSj-tY=HAIgWWu4zo zkZQm*(A8K`2E0PP&1e5%4U|m$4Nx40Y6D4N24617;TbIIbu!YN8@m;PSP-$Q(V`xI-98P{xU0OqY> zG&t`l)~q^b!t?Cev!lQMsy~CZjoHw_keBY^MZS+YlCQe2$r_boz9hCX`wLTGop^M4 z)L4a;*u;SExM-8y^#o zF&=P{=jP!t%&vSaX;sx*QT;?Tj89IBOMR;dSf&IDvQ*cH(ETe7JeccvlYH}Z7y+k= z&yn06rAo915(#~7q}+;%if*b%ja>cgoc77iMY|;QkNW6>byYnG9Vjtp%p{Momr}Mt zJ@}}icIguY4cP2yUB9jmNh&BP$ct=@p6O6#_9pv|&h(j;c+D6DgZm>s4S8Cy|LF#o zxHk~zE%v3^fot=K1~o)-FNB-h=8Z2JM9-W!afMmGU8m`)7_wC{8oXx37%0|&*>M^yNuRG~szKUZc-sR9 zfE~f%ZF8YXI3^)M9LPJQvasXluW+e+zt1P;Yz=6@rq8@lZ*|eU;tjBP|!55~zp#_)jlDR4?53P`kC*ip=5*URke?2NaHv7r>urjg#(w z@Z%mMef{6m)z!fXQddMXyjOLNlDfG<=O1?)tubTPuEA+@IFs2JIB@}Pz;0-0K;biP z#J_betTmCfZ_|f?!$(D(RLp_iyfxTah9t)?cpO&ECU|X@Irf}NPfv%mmWc@?G zr1roZU2Av;NiWwp*8~>0`03N<2+yG;e|&tv*wWJS_U9gcOV&@U6?!JzMdi3K)?i+C zH?o7EnhQn83J%~x_Dr~m&bMtdJX61whQj zniN{+*VL$lhKBwf&L6qdE$tPJ84vTX+p%`l4o1wjP^r}Xl$kr$K?_&M=l?t+rrUd# zL>ZH>NlW_!36f{epPxh()^n-~s%FJe1`v%f0GS~AoB_PW;c#aA@)J+#B&0bPR5rS* zN!Kppp}Ug@6|VMMRC5~0b{23@UEjl_*qr2+50T*v&dc~TsOPh=8jJ!0s?J9s4~+~O zoP#)~lXUT>!OCXU{ULor)>4ZL4et<~SHOB0FYDk0_+<0@N3NK-xJ;;_r)6Xe@Z%?5 zp45&-%BfPoa+c(==dOrZLR8iZ#Ya57zzS(o$GGoOPzlQ#w2K^i)@(0WTnk5|Va{6VVB(k$H*jQv(Bo z7aqb;+hLnumA%|E+XHt%V;*J$&V#1j1bB+KZ{J?jOYGFRu$Q5qyOU044>me|rKiU}$NXWT9VK!bmgeRzI08q!{c$&(fXjyI4A`8>B!iC{Ut)?;C3YEV z4FXC|qE_hOx(0%s>u|Z_>fE4`=fq#4+2EbFiQ8sw^InZin)9hXCT*RUt{sP<^c-{{ z0d7;{(@9n$no|{azLqIie{=)VU1NlBArxr|&~%<3JKOyum&(27nL5_Ia_#pI`%8uy zcmeevpkRAVd_KfpDa4VxQZ+}e@Ic%mGb=hX(Hv!7<5zrW?xg^?QcBPwip`>K_oYUt z<;=~w*bG2Xlk=W6I%{6`nW6m!v%QHPcRGQB!8d{Q2Itu`2L?>r395<1A9q~hUWP=9 zoob6T^3bou(mDW%#~_F^Iyx;cPcrq#QMoKiAx0e)o?DmPw6lMB(6S9IOjqFZtii^) z5!>9{8~~uT)$3?AlEdK1yrSsDKuB zKcRtM1OSA#C7OrPK<`aQmOQ|*xVhtnPSvV||5!KOQv?I-STz8(Bw9;#Yd54??(8 zrLxpRv(UYsUEWp&JYi(-aZOE4{+&fgDTM5FVe{#q4<8!q>%Rt|>%2BUf+XIX6PNKa zva(@oGw{&h9ZRBYWzzxHr&(E<~r4g2k3F^4f z<6@voBcE3sro7z=j}G;u;M1o+NETbPMi; z1vxV_gTPuOoWV}Hu!AXjFMaR+{j&2?5{lxK*wHw7r{2$}Z%s^W@_Kp_(AeE6M~)m> z`79D~yz)3y)Q$D^X;|~-75Co2&9vDO>Ks#`)8c;aF>MAkV%>foRCKAh{ul5E8J1 z3MPgfKEYwHFi6zC?sV<2+hV#&U%+EG7y22e5qtzVKkPOVYf*Y?+0u3EAM&%(6lmx{ z?DDB76nK>aL<08G4Q%lOtZGv56#Rmm|Dr9xkv2xq2$VWxrB&9tQE}U~t4wMk)FkwJ z$d3C8Rts?)px*Sg`t91AW}c8P-O!VozjF6c@p={EWQ33FIJ|ob$Ma1|B7k zu}9~_oElyxyE2B{TK?GtqKmRyiUB#RoGeThH)DSsSsB5{KWVTD2|dy8l}qH z8R0hk3U0kmghR3bqvV3pj1<6y^g}zoRzex#L(dRY1N$m|SOd$^YuqD160#uS;04gX zDd9d1F??WTuX}F2y0<$fcdT}8R95M;h=|Av7?2|+4OvoMj+O)-Oi6e39!seY?!L)HML5?ckI z;oYgamIcF&PlM?@{`=(1m%r97wn&&)dZq(`a;C^n!{ut^d40dx?92VPZp+F!?#BsrKJ(Yz=@@|wYfLnJ#M!^d-Ex_lXa|J6(F0QHKd(%)+PVLU` z|J-G#mZHvHjzZ`Gs2R;}BuD{f+-{kr_U+x^R3rz`FV*S6#9sYvn)-IO$*@#o)ZaIS z@7NI+1<1=0cybk}Cnr%LNc65RjLU^=`H6gmyCKxWgw^ZJ*)IwAR6AoJ;lpdqz}Ud9 zRPCfsTq+15yuMoEu00t#P>Z^I^wjhFtpnThyN4l+?c@_r8gHvmz~b2p_Rf&{y$LKm z2WWeAwLtc4aM5J8R{d)d>!y`iz6l}=tQQs)eL3z6ue!Lh5+j=WEISu~CvQYDw;WO| z09G4Az&&{IAOQTBi5}zEf|uGAuD#p<($NKC!3#$#YNjtW7!76Z3)K4p8X>SF|L|I7 zN{BehiCR~S4F7V2b~jQ6p_0uORL|p$*mY8`<$HTMH8R7M6K2A>^o!u!k_}itO?kdT z1I+lJ9O4TCE)!OC3sUF>hYo>!%Sr6dY3NU-~G$+TU(4aQqXdjCX&O37kbGM6mq`v zmZYL-q@X}N^q($U17^b4lmMp7+7{(5U29ZaAqXbdJ&k%XM5mahrQBx#clc<&n&AT3 z5E;&pB9JiK%_St+?C}KKzduD^u4Cy7UWDpZe9HyougAaej)4@BQ%*g@W_tsYLRzGk zVPlfd_bc${0N|X_NlAI2NtwZ%%H|9uw%Z4@SNi4T>stt^zOE13?PYVi>R0+K0;byBtnNdAV31N=y8 zg-N9|GteIBGeY^u~x%7{S5mUjYdy z65whYKJ{p*L9Uk36Lfkmzy)W(VW6>WF1AX0 zkB2FkWFM&Tgf~8GS@Fen8w<6}#F#L2p<%7Fs!@EYv#^R z9L*QU-vB%UFKsm5)-vnn5h8+ohKvQQnw|nT&iZ$?;#^2Q)b(In56&h{lh&(*I{{3LJ7>8rSS7X;3yBe zSO65VlPEA*?|t<15f$rlY~aD4f4&K}%3+sAL2`#8E*8~n#JD1ql?1a%2k@sLrQ~74 z7c0<20*VebKu!wOO(@IF-Mg7}y55W+ABLr4KPWU%O@v!t$95 z7mPr9CPTZOM6-w6A_(Kv6I(egE9+h0@RhphVq_Fe@SoyEpf6-06G)CZM1hMk2D--C zqZVX#crL^NQurD-#-XzD{{9u>n+~b^{Id|G6D0-5sVtsb^s@K97IX{P>OexL}_Y-^?_QWJ33lI>_4Imgu)&s`G z^zkmp1&XM;_*n!9Qb%X9awce~AYPG#E1~ykQdjuMk#V0yIt++N7KP-FAxS*8xpU{m z>yo9ue!%m;Xz-V-oY>m|JM{Nk=+ydpxS*-pxA0oHfa6cQKsfJB)#M6& z^yu`(i>5GG*T{kW7R$yC+kwDT$4$^6(AgEdu7?%U$`GZ3M88l09Prw8Gfzs0BR~*0 zbf8wa@I75fpGrV7AkaK0k>Y9@sBVy9&{LHfPY&`%>^Z<^l))g++;T^*wCKo1ava*4 zwYdq3(@nRJiE_>v;eyJ1>YTB$u^a)Tx}*Kdzy0yYAJLWjc%B*EE{Y7*d`nVTyQhTZE&7|ee( zHd-j3Tz<`eAVV%-++DkO=RkD0b;jSw*w<-CE(7JA7uitg&D0YX$+En;eF==gC^`I^ zSFfIdPuROpF*A4GzXDKRRjt&`n>U@1cbYUJa+RMjp5e)B4(V+{z!Nt=zXS@A-@;xm zb|fo@)%B0o2J$yVS@tXZ_S-wx;N(K*nFTHBPF{o9iDO?bB(}rqJJSUq-2gzZ%F0YAU(}YccnI-%O&U32Cg~5vfG6Gg*2o_?8{#V zrT`a0zns{6*1^th253DbQn#jv=gEo7yZgtR^2|z)f(y*fA9rU#C?iN@SWrY?wSbu` z*0kDPQ%pS{f5VNH3_&?wT>1>_|IxBDE-)~Jtg49v;jofD^7oj|Z3a{11gth$_K++Q zsRL4a-iOH@_en2bRK7zL7`2Tw&U%wNh^)M%XZLEwTgmV`2x4hyYHGbx9IYJgob}1r z);4XJT7cdOGh=+Q%|BEdx_$t?y`UwdKS$F*)8sz*;|`-XqT!Ig$7dM5lZtL);}rF^ z=`IZ*u1a3hFX5*tQli-%jAO~9oT#+#-@nV;HtBcjC;-*XS;fbCgPv0(jI%E_+vcp* z6Fn!jpxhKtHcY&3?BBOf96Ki-tX$lUCOruaJp+@<&~&te`jyd!1z$|NDU3NJmIV#T zvuE?QT37!7$!p=FlvKyXYy)!?>M6L%O0Ba3zx`Oz zNg#QkKzA)pwyG+H5CCqJI&}6S7$GGEGk=j=kXAbhJ!^&lW04(Nh;tZF{-zq(?{tLw zXEsNeAvBXmzZ#F5vp4V1-iwcgv32j>&9dmy?3Xlwkg|}^t4T6(9DRlH?cq!eP= z9dKT56F%Xv(QbW-z2eo!;Q|;yzONx}5q=B`r&T3pbbNdqp{l7iX|N>*q&^wZBta$N z<$ft)P?h>|Wruh1ZQXRPKQtcy;-S2w3YHK1>hKRcP9t(1Btj882M0P}1aV2p3s(wY zBlbcgotzs72m?|dA{?g9mJ}AcSCSN#qv;V(7DILzd;K0pc9Ihc47fTA;f`z{qQZsG zL3%X-T?uyD0ebp$Ia=XNjeAF1%BV-;%Gx3slIlby)GcAbAwhhGJWC5)!V zSs#DCx~GbOt1`VLDkAdHZ_b?2XKXC~4MkWxW3;A{l*!2bU)qgn4?7FG2Yp#>mRbPu z0DYcAR8zQB=~-A98DMT1h?=Ny<*F)^gI-qDSFc{lgeD|eGB;^CIVq{#Im57Bb-|t4 zX=UuA>^q4PcGgLb$i6!W>U$4BcjB%0KQuHp@^N2g_*5f82f&;&zyJPTVwbAE9PBk# zK?(E*0-=ouJ4`W}tSXb+9m$`zaddpavFodj9+5GC33%B-@QY6X<-4`swal91Ar1EPh<$YcWEV; z?J^;Q*WzI?hhwrj z7OZf7F}`%6{(WSEXRSFAKvn=ezJw~5WhErU>4mdra+fy3V3$dFdtH+a*Ap2*3m&5W zfVhjOofOP=&r-s*jhO+JBfXP+OEk@{u6C?O9!25g;xw<2R9Wc+jTs$!3|6;HN_ux zSlog~Z{NPHrK=k&3ZG~KT-`UnoNR0bwL5N%!S=VpstOxg@A|T}6$E-fv~ryo!2LXs z6m$UOBl;JVBSeEoL{xm4%b?5%{E0~u<4|8D2>^peSiqe-{||X@9*f2Ej~5JJ8?kBo5<_ucgS=+}59BennP_M0hD6=??%cXXa{KM3TvbOH({Z+ha*yR(znbF^I(L60tT2vX3u*j!Gj0K zs=>7~NW+a~u5 zOn1*NNx5`ioqpss)m)mqa-2jwG3T=nr|FN$w3L)c`1|``K0?pJ!b@>`Q`T@=x>HqB zZD;Wgo#e6w8nM$SZB#rLr;bnwsY#N za-Hiv=~I)OSs|%?v+3x|#YZ-xqN4OKE?-EJI=nhGIB1-fn0?mWT?~qIrmzM zrQGM(BT4$=UL3jg8r5mcMf~jJYT%Dsmn;K*1T6q28C6{*kHe`}~!GvZ9%d ztReA^j*h>E5y4Zel)RHdz_Il7^~pX+uWFAKJ3@y-9(O(vv?>yl57o?Y$&On4u^xAM zGP8m8NNutX-sd-f4zn8ntxTA#12!j4hsl$mDG1yzPYujW&^W{!U5}&sjbEC*tRWa-rc6Dxp|vl z`ONK^MO^&5QBj*@JD<;gzLdOm2PNho1ppZ!-Kq;c3BC6cFq5c9kHUh3x0HivU}0m` zUVMg8aDhObd7{tp?50MUai&4-epHk%j=-&(epXjk#|m3fqqut7epXd$-+X2j&PAr9 z<`k%x0tp(pM3vM@UfRga!SHqGzqJ6-{r&yyu`cvjsQ4wFmuFl-jSKJP+TdZf#PH6*|S$VeckjSaJ)v&zG?nlR9Aez8^nom>C0?P;_z` zyQ&m^2~SDQhM-ZIKS*wKG-4%ABV@po{UIh9?bJ0neg6D5k}PM`8|>+N&s_R)Z_=F; zh_US-2UQRi6BBgj4z(RLaa?rjoh#*)zc$6Uv0(@Eg;Ik{RFnbP5pMtuyRr{qu$vH! z7R?FbJ4QxESY|&7R*}kmm>O{^(6X|!lCs*J52?iagN-4>-ITboB!m?m^xUGJdVH|I ze=ndL+FNzD9`PC$(rMjK|17Gw)j2)Y2mu_CV_5p4{hre13Be>}dTVB(=ke)Ke~t`f8-@eexPdeaO2JW_bacCR-Nwxw!J9Ij zaOaN~cg#Dw?H}xZ@a`eb$7NSKvl#ZWu|*{&9y#C9nFnrBo6Eu<+qWW>hd0n=MwAN} zNg``!#}81L45L22e*0!VGhAK6`X+jaMNC+@2Dteh@xg24NL1`8y?O}M9o18f!`rS~ zT)7egBH+}4UDbVktnBRUN@vgd;-zF|N#|8m)OBg%3xKGw%GVb9?lz6}l)3TUT$|U`)6?7H_P({17BO3Sry>&AO|T4gbabHA zq{MiGP{5-jfO>;|`;` z!t}LGii$-(&4;3t3e4Y8H{*H(>QUp_y@i@u4mf<*i`LfGCA6>c{MqAcH)wT}u?EA! z!zcUyS%yF`S(rKIuY(yr_TnNS|J_w<3#_-iwk84{h@t)VdzvxES8OYH$+c@Es zDDJOxpawcxA)o|b$Hqnga$rh01-`H7?H_mtKkzDDp09DM7?;B#Bnn4cTK(?b=36$O zn*aQ9A-%zkXnWJX@&s_xwXta30M80!$6APu@YUp;=bBb&c9$N6Df;y7|-J2w4T31?1YpEb8RV3gAf#KRNDF3p0K zrp6oH(AL&{?e7F=oEkg>w6e2twS4*Ix3Qlv;1a}&JF-7|^vKlSJ{(8R*RNkmYF0K$ z5C!|TejjbYX9wu~4(L`ms$0lr&9H^^0NLw$0qndMWR-t&LwM)Zv8T&YX~_^?RxEU4 z1Ujk^a?s;J8kuh))GDy)Zyve-nPYW{^MM zQ{e0I!xIEyQ8>~G&GGE-3{k*S$nsfq`}>B5EySn65QPsp7e#PZ0Q-KNle2AVYD%xf zi35aQ56=oWr{^QBsbgewRJ^+1Mn}_r>o|G?b2Niuw?@tD+|yl9tr5@cpy%Wfv*Yuu zX*Sq>--6=B>Y{qC7lsA4n~|{=?}e^o>BqC=51E>WNVh^lw(8{Q`4Z2_WRs6MB=SXkl@5T=If{~-BT7l=@`wF)17-86Ozy$#H?TJGcC}!B{P!HumrYgM zQY*=@XU}7FaMu8hKfgX}?f23mkpF)yN^TC0O%S1dhipOU2)1^d@SU+b2Iw8$p(qn_ z=$F8^vuW{gcdx_o{2cdz``7ETX~OEJp-ssh?@y6cIKn9;FV@Cbbg{q@1q|+gmRzE*w|R_l^yfXU%xhG z+zx7KZWclV)0`yDib=k=N=uKEhCz$Sx!Zg9k!vmH0j|;-{d*gC5f|1U>N202myKSC6Ieh*4aScsPGaDOflz!nOS}5v1O($HZLL-_phsebb`!d? z(htWq?xQxr2dRDgmIAZNC8z&_V`yk@_QzN`C=+`)RKp+3%rmMtmN|bQ> z_Y75eFi#pdpv)(J*_43qz~+03e@`uTaeO5eqXXL)XOA1oFPqM1+E$rr&ZV*3E0eis zV32lw_FMR$8^^e~$WbujtAE(?MaOocQs8mDIxZRUd3AIsahh|`xX7dM#D2nwdYCh6 z3to0dzx0IjftV)e$*v<{sAO?~_x7>~2nck(Din^}2E7bUDB`Ql+}oP6{0O7mL$Jrc zyxdO4&CSg+IrjDIo8DgiE&6#^ye9r)Se=lt@a@;Hy>ib4@$mB2pq5v|d(+U+5ZCHK z5KEAxmm5CQ&!0bS25ufxeBJSYWs7yh6A&b;^k=i4+4Gi99rukZ4I z`Bz~Ub=$jbL%DL=PsN5x5dM(b=r*M$%&hCje{rS%Xq@m zg-+e6p*ZZoeu6Br-J;#P(Ur;IVrPkQK>0S^k8LCRbx&8+8q>L2Dygq5XuCRH-&HwP zVak6r*Zq1I^W!u0|7{sIq&Td;+?;u8g+$s#LldlWe*Zlw{SljUrQ7cOacKw*je4=T zgNK3I_0fiY_@vR<9koSaO(YUm$k7AlTNOB+Ef^OoHRQGi7}A!?aZ^}&EY9S+vk`CB zk=9xEKkWkl{EPbiva4e+b~@SE+0ulRzT;waq9$>M&>i@;N9a}2X3~?Xq0ke$0=lnN ztxuJqnzFH@JPbI;Cx6b@%UL*(7IE)j6J!l z_01Oz7rNy5?iBm4Ut>504l*A9`;?M5I{jte=3wRbr_aXasJ|Neq#>+bud5^AIPn-T z6kVqQx^~FG z|GGTtMobeP64Ff6^iN1LdX{zCn)|Ysd*%;bQ3kYRn5?nia~!IJ7R@sEF;<_v`+0uRXx=xV+G8KQhe!c%}b z;2=X$ulvL=vc1wVVSM5*wyA4z3g1c)cff*jmFo<7$_(xWVyYL znFx^If;@|B|9+B2=1ZN9Ny2otebD&E4JoMq3qbbzJ;=<8=F{cGpZNVd@|!_BfkDa2 zzOi7CI=kKDWIj!)VFZeHGr*SNmHF|Q2+jo2To0P8#O@0BUo3c;oqPB8Z#n2Cq%HmJ zOoepkID~I!fG$Ao(Dmtb`wOC@MlpNtsr$ahT6|hE@NaL>0SQ4=MPQTy0h?T1I3uDbiC()+t*RF1!T0JvOXW9BP1kN1 znjJ8Ew3wEHt8BYycaJIQe3btfmR_cF5qa= zkFLk6D`CN}!*i>3o%zmq>|qn3->NuwC19&x@2QVl=Iv&EFZV08QIUG|;~wiCVytL# zIO($edVtmU?^ZkbX5)i&O5(3k5wCXP664Y2%q6db>>zveDAg0(B8> zSO|7)_gHJM<>2O~1bF$qGrQY+AU}0dMNf~3)W0}-`TPVOCE>rkx}J8ec}K#;#Pjpq z@(KzRFsPY1I1Exe6$yhlm=bjylb9V7u+Ys&=|Vke3iN1ZVZmYI3msj%g&o>y;8awo zqTiYy-A&y&O9NyUQV2?*I4Xv6oSa$PUyUooyGnNy6c&z7J8^P8KC_cNdh*Awtpo98 zTP*iydzjQbUE;r1{PNw~@!m9VQxB609q-c>Q@+$%0szwitqxC4(r9XSusjog3uW;37i^r~S+Cc>kEGDL|N2}w?%j9E z;!^^AC$R|$L`OyWdC<=kxcd?SjI8ZiH$O%EHPg_Pu5=lr##T2yS=7k{uQbQ5kQqQc zG(#5vXv`4mC+GKgOr7`a-t7;oRc%KHJ-i)TVZc*UQ@aJ->edq;Q*S|V0fwXves?}k zUSV#(g_r6Rm2Q!6AceCY61X*7!9y;rap&_czvK|)v%C|}n6)|1aKruUo!*!VnK5;q z2X}P~HyX3}E_n~M9;w3}h>cU4xgsm*dS!HrCcU;=!Sg7J#PXldFMA4>Na_u{J8W%L z9J2Yaj(z|6!6jajX*H8cxp?LYPj?sJP``s1urNIEk#>~oy2U)15AhQ=AK89N?dcvK z&H34Iyi=&(g7Rg+Gi4FO(x`yG(sz^tRPAX>-1j>(rD4K!>#Z~t=zhIc=8!#62Gu|< z{ROGiqtd**=WJQ%q$RR!uYxXcQ*CQ%lDDz3$z4os?P~84FsTfC@j@63)oY!OX{rFZ z_LNsel7YPrZhe_eG83K~8rc~c8S@L4EIFEH8$DlUAe6n_k>sieui;cyg^v(P&adr5?Vf+kj+UC%d-S)s>y8xDqy+kt36Q zRmI*B3YNj^MaQj;SXQJy>0&%anFen(rMZKY=_*fsl{Z!;b0TR(4E6`}O@HavPWMcjB}>Offd+a=F+ z%^G3HJn79V*49hc^mkAss=kT3`o5u&&sTw8j%tS&McDUXojkE3-b=&D?ZM|7PHhM{ zT>Bm8UNaZ_cJEK=!>6(E9z1L^v*tWSb-^o)`2%I5!SPQeMsCa}V?VN;+!tCq#HgvR zX1K|KPc!W2WI#K4FK2$iHUrwa{hU)`yq44@5_;wzuMU16_^fT~#X*-TaZ_gVm0}uo zLvFv2=S*x;KZO>4xL>7E$_RQ<{|vO~*gSk7Cm*m|5xALaXvNV?Ec*(Y`Cin_SlU z%H~#u0so?>Ta)J8w1t+o4l6(E-aRr59w#thf|;B*DR0 zA*+CbNm{;gka-3b7K#9`@`FW{01UxokN`LZL83m2&5?(P=hprE^np9}MZmXonc^#; z)SrVDtk5YbnwxW43Nr&TATY}FkTa#Jkl%thEcNBf-6lS3qHuF(9=(uQ@e-m9&u9Cj zJ$K{dy(7+k;CbO=aKHotXajvjs|WjAT{-l!relrKOvf(oB=BWGlA|Ct32>~pNYgvW zxXktNKk=yNPG!|G&!f;|Vq zPC-RQye}w5Xk+T(t=<%+q?LX3BFtAif#(K+i{H(_Q2puCZU|9{pVaZrRt5HUbN%n7 zy|`w~%*^0`{eU?VTM3bDus!)NaK!5O@3+DT{0||95Q4PUZWC-pFuu>g+Hr+KZO@)P z=D4qb;Fk!0Fx&|hi|h~&5U798=g*r+0>6l_5-lFbJ zSlDo#zrY$@kI#vt&F2lyFg#Jp6?tAM4sN9~ZqLLJuTX&V3)8rPP^Du3jXmj8+3Kkl zGy8P?JnmLIeBw;Z11oEoP!*{xXKjC8MQsX3gNpD9 z=6aXIj1G9P4iCV{)Kp&aU^$-T8cEzeJkDA3$HCvqqTttgt#4=;hSw#?5Ty$jf|L&2 zPDo&dsUi%*>RQ07q=L)sobbS#jno8uM?hTHQOir0EPxIRiHo0sgU2av!liQZ;{yB1 zn|t9_k>l?BJz7srs@z!jl8}(l@@g&v+Ghr5JwdfN3}{r?^@DWX#w0|7hj90+Om|RC zIR?eFms%g4GBe|VpV=4kS~IwGV&VJ!kf*hPs=*wGp^}o)t++U52vS3Pj>AOUCA*Ha-igfLzg+;DY02IKr4Sk}Klh**t#ABN`?WT-~N+XK<( zoy;*;Khg+a*`id{}E zt=Y{!2;js7FD?Kc?eD!se1v^kbYo+EdSmCFJ%Lpl>#VpEcDHx!qEojokbV|)(Lzda z4bShKOh+(OJ4JkN^jtUKo~NvA_cBqG;0gV=sr2*j1q@lq&s7bIi8$ z+%y{OeYNvP5~eLOLHb|YMjl;Z7|${9&e3Yr@_|}QhV452kBb2f%}46`H)egGw^s!D z(m5ALdA{Cx{!lj-tTl)}iYNuA#T7n=?D z@<&B!`uhl^b7;hei`Tn#QqSd{Gpaj6W#M$>AY+^RqUng}wno^?7XLla6?>)%|zeZ(@`bNCUi(b?junx;eMFd)<+=_bh)Bsf~4RKyL4jrDM+Js}yd&YwSDfOM0+*h$d!L99~^t_3iJFR|Wnj9}(7x<7I# zXrk`lCl?nNe`(W64fc>nQ1A@I>vtbMq=Z;O>i1jvg5qMTlt%8uAl!cb3R-P>Fybnz>+AFK-;a*ojGq`DHl?7XG)FcBai~F`G=sK(6eREM>}=a`LB~~`8pOd3 zW@QH36U`VVKu{Xr{A&g4%P4jf-^j=v$c7@id&HpZ28VnNHmdA_S7l)!Y2QH#KLev% z4QNo<; z%;4XxM!81ZPrJc#W?X&9c9FnS8eiXRZSCe$>Ol0u zmEI@N#i2sr>FMd&5AX`X1!r))!e*H-68nM|5-GS4*kS}t6oY8l{7ElE83n)K2qN?? zkZ&9`WF_6bckebBE24=8$Ld#Ab<)n>o{oh@e{vG_+g3(FV+G)7W$qP=HMV$VhyIdH z;D51OhfC_{=>_ASys52~-=YC1pzh1NP@)_GC;ix}>7kN}3i0jf*x4iSZ&xTfFIig? z02-|LOHlf>r^-`-)gjLqax>{JGfXbiypP+p7k3x@Ju%^DCo5~H<}+0@m{AE*@&o)~ z;Z~C_m84;4ItaGAIuG;`N)c`s7nkAb=}7f7#Z(a8a5}$1(dKXJR0MDjs*jhKQ&-+~ zfQ!RFa};J(dTL$-5`{IH=}fzWP0}CFO)bbzyjQ25aW~C=2sLA+y~JRFA>K1=@9|yK z0c1Eht5Nh4_kh5C($mw4MFJg#KMKPi<*y)079vhx~`70y}g|{hgG4xfVuG6_3KxD)iyR#<2m$22@R3|Q3QA;j>~3h z5r*hm=&(k9{0M6b1_cw%9YHz=^3oGT|_IeFg1`Z zqIMj02R^LR)vNLd6xqa-P8`);zslQlwE1>Fefq^=)h+jLgtTY1+lT#c9s8&cirCZB z4d_N1rMQHCYZ#%@M;1hcTOFefILO7%Ex$!efJdOd`hx<|mVSv| zcPc1ly!)Z@DI3|2I@7igRu<`Yp>8vJe`DMen^s}#yjyQ>>McejUNwDNeUh*r;7G~=e6_GDq zXmOSiqaV+=(lHPZVHbyM2^@GmA?bsNXlsYbwUN!}@V4T%)e@o;*&-Mu_G23(WFAo8 z`HywR%~URZp;=m4fp|sf+O-WFz{Akn(+8fxZY~D(Bpi4YImQ(%cnx~t`>Ky55NICu z2IXGpix)3!f;f?So~RZ`z@(7F5?Up}<{ewN`T_>Uj&hj)f`Ur+oPPxI(>pjR z3Si(g8-#T4D1d0_hWDeZhlig66@&B4@F|Jo$45}OcWse^|4|rnkzm9z7;&lnE$TLw zhX86X+qCy0Ik9V`=0uCg>LdgP0_su z1-3kAl-7yn^0JmSRN}vpl0nTDO`3s#@(WTc-oP)By1@h+UWIGx{OE4O9HxPcOj*l_@S){jcOWk>Uir1$V za?XNRuN2XL5qoer?FveGsGH{|yLa5;_4@^f6vRgbaPNmVKZ5|6jF9A_AWDNjNlwRb z-tC3Y#!XZzHTC0zjwNNri?RcgE=H58_C#k5sdx959>Zb>Hp1^>*ZXoSq8Kt4|B_8@ zey!smLWpH>f5Q+`G&({6#e_-`ap9wQ(@x{s&dj_4oxZ|LkzL2}-wqLX2G?$Ko0hwa zi(G=(qOslJ%PaIa>xk`^|KbaU401#~)Zn(>0{XuS1O^AxzaG@wzr%hzj*;EoG>iZU z(k&eGWEn%mK{pA>C2r^!^vP&fyGw$!J(|mMj9%}-5r=Z{rQ)|fLd^@<29(SWqG!E< z)JBrlrfPA=K?R8Ao}(U3?WgBH{{}8}s7=zHZxXNsY#F4ivdlb2_{!?QviOS?{E?o< z!tSZ^IZ0qAxS*+t>eCx2g6kTi`3TG<+&fr-6P>Q==sMwNAjH%9_1-A19!Xu_McijN zv5rj*z;RgzQ-3f~sS~bm-ES-L6VBJJN$jQ$s4LP=UNACpgv%imJ^Pg#gNXe+0t-$E zc9SjkzRQImc5db83qs_}@p27nIpv4^ryvm}!a=q%3oG<=L47BLM<2FrN>ql`SjYsJ z1W;-(WY2{1WnKu`U6YSK760p;LPjd-R%mEw>t9t>RX}#AZv6lqFY<^hD10jEN$RN0 zdY%*$!7i;oEfSuEoV!S9#btS;Ik~wN`G!pfVhHR0NbgaFDrxCQZ|kzkVj1cEmiCbs zeKRPY4}2cY@K#art_Y+l-zz=&JD$1QPX@oBKJM^jfMz}Hfwg=lh2q@r+jTv;8J2% z^X4YqjnX`Do+h$|M3NdP3h27NZ^hMsX=3qnQ(DrSTX|C%cMpS**_uodXx8{KZD}c} zaB1w?UQh_zUnKXFX)Yp45#pQ+O=Ewbqd2-F(#~Z1X`Ju_YJZ%>Guq9z@NAkSp z=2Pr67p~061hXGRvr_||K1$2{qZP>K0u*!_2oyAAn=+sPqN2hcNvNz@nmhn>Ap7nO z)a@4zQ07?6qW9KZ+jxfoS3P&NoHZ|Rk4f|Pi zrVES}q+65SMTP9&kq5&_bazBNAG2C^-$PUaSa2`%PP(n-WQql5t*BeH$X_1jow56kcRmp2E;llHQ7@qozz0-Yvmvc|j*-MmZb z-ZvFu_Q)+`iMvJAx4(A<_X3Gk*V3YZ-!PZzBG6$!eCaMpgc6XaP+RBqx014!$MGoQ zB3W8zEnh{|tfr;qe<x#RZfFFLrrN<*@jVTGr*t&#kP=-*`= zzgDp67v27N=t9yqS<$^YWk=L}tbv@O(oa(C^BHSo0OtCpsYw}2n2_=xg;}1o$Zp-G zEuTjNdbW&*pPz!1I3z;qbYv6}5y7FEn6?*;qMz@t7QLbH;271nbj9!ejhm7Lx`I_3s+WAT z#?t6tq^gk(lqcvGc6#*|6|~2v(;5oIym!mHI;JSrwd%Y%skIBt)rH)ghVBiThxU^W zyegI|{? z3Ru?{4Q5N1&5ey?o$R&-9=~SOXcYwVOFZlj$7RW064bTL9s3m@SKVG`$aSr(viW@2 z%yOvFQ3ul#{)$6#U&HMPs=4#YiIR9%DxXIsn=Zsy$Ih{Y@5}s34c8xcWh^Bkk4(+AwvM%9lQLIZeFX<8K*g;1M4{9N(1k`cp!jK{9 zAG9&i`WW~XK>&1gXkIGlN9=*yRGQ5P%9Lea!;bP^cMa&KIgcN|$oB>sfI#`3^wPIJ z)yC?kJ7{ieKmP06w{#JUGk_pS8DuV-w0BxSHbJD` zj3mLjRh0H5S(LN>DaDPjL{gAgs=GVeyBENH*|v0eTp(BxVWaVSw7urf^(?MuYEhFw zw{+$Ihu@50`<-QNjNXzlM+w;OgKcp@fr~=7@`4QL1 z3B`gbI|7{Q*C4qQZs%7EAzCM+66jn2)VcD-gPEbl`Hs<5-z+uKE(a=bMVM zPkDDzQh-A&ny?6u;TFF#$Ub+Zak zJ%3&STmZl?Q(N0?H&y6}O)V_^u)_N*ycnTaCd^}qIdw+Vmel+w%^D&#WphfLZ#u_( zAxF24TYXL_1WhP>`UeJzgjdP4auoxZ zI664cA_tG)^;kOiOiapJ3CsQ6xH!V%B5~q`ZeJ@|*422J1dpnC+q?hxczRkAAP=~P zjuXvJ@&uRT)@DN^^%ERx^(H9r>70SNy1e!60o`=>GRvS zmkJOtzT8^k%Rfz*wKGk+GC|XKIJ$FkmiZ8M)x=FH!Q61O+CVcn*_TjA&MZ&n+s+xl zj!zGp0{!yRwgJZrI|SO=Elh2uQ?42p>f{0lu&tPUwfFbQ+$-s{3k~7r<^_L5iw2F` zO*o-G_eveLkU*XF-Z$)mcP?%u7N(fDNaMpim2>jAZkEuGc7Ae49)yUCv8KHq+ow)&@&7bV;dvb|^CyyU9P zR2kdBXm8NdReqGsE+I4GbxKKj*W~Vp8LhrXg@F}6T#GaIn(2y|9-vDLf4$v7yU}oa z#_h$8vb%SxTA!Kz+4+kqPa!f5@)1+Q)UkEzDbxqyO=KS$59r^|V(z@;m_~q;*#gP78e|!6du0NWEi;j%LUyJI%8{lc4rvxq7QwiS7gIL zG&25yft(=f2rRBEmlZh>w{RbSw5+PfX=Ey(mM0jSsI%%rb7<|Mb=VJC7uYb06zUrY zg9}jL^i59Q2QS2q2e3FGS*Ss&FW;m}pRFoStjuMhIg9Y8Agd4>KYHZvJ!(xkHm^2= zO{@lu`kVvbi4(7Nta94CQzxWT1s3xg=LTxCx=ziDxpnH!yYo`sJ~8pb@~5JkT8Mr%u^Xyn!|p)PO^B+Yl8ye` z3v{(%%M?1S{(eK?TLf~^qc^{zY!pLKUqt5XKxAIo*Wr}cTzfLs+=lL!8TOTFvUWy` z^YJNXm%AM|0hF*gW$lYUjFos%I;7%_Z~GAVc-r%$8!fm;5Cr~VD{m@hVH{Ss5OM^E z0e0>vvI?>BegX6V;GfZ0F>`N*q1(!QX7cumSEKkxWTAUk5SugUX+8f!a zHQw@1;A~;%g+Ld9C#O4i?+sg4k`xibaA9^WH3QJqO)I@;JoT60jb6@>*l} zb_d#Ja{2zfwzMoq{U0=w-6;9N-)Q9`HET)Ziqm?brPL;CH#9 z*Nwum)n9JQCleqiHLEEcEaGKtPs@Qq0Z z1)ZmSra7?Y_EdO@*VNWJBL*J8*9eda3AlR^kroC)NB2@qE$lpCpZrh~ciWUjM>7zO zNX|>dFDZI@O4dcN(a18)`~`NmpO=>!(-Gd_Fdg~+JwtrdQXbhML~8;Mip0%TiPg2W zqsS*oY+6Rh)#j5r>C^qJ`bN_x^QmeXm6{VYa=D%tkZ}9q^GJ59%=OW_?VzOT!9Wp> zK@g&=L&lXT_5ADf$cW>cq@vb?Mv zGs%8=xh$u3uU2&BpRTbRFy(;vwzWzjlqHDEfNhng9C3-4`(7PEdrAotG9h(=M?1eh z3W%ma7u@8s1v9>>LpeX1=nDq57>4r zy7SphF)fvP!;AKn_p|#1V9e#u&zJ7do}MU-=!NBWuFHAYm~yP_RiT@-gM5d$r<{E6 zV%aOBvWNLU^tR6n>uC}Tb?%zF50wVhx)x>=1Vd~BW=d|pT$J=?ca2P8u?TF4^t|x>b@+n_2av8$$8en zMUye}Y!QL_lKRPgyk#6*62p71{y$DjGP&oKC<@8m)CsqvRcTJT2tY2m~zkYf|=Fvy;)b`?n zzp}?F2i@pQT7OY#j(W*g=^11VlKrtC4fefxg!SoOH|JqjGN`?nehn$|kvrauG7Ees zDz2^F_ITq3wXRz+ZCpq;R}A0&J)v_qD|dx3wJkb^V=dnGd@VaJTr@IfzWvgPtCrs$ z?q9XxUS7U@=~CADR5eb1#pv)nk4wKs;%$||zAXLSO?ne7V=O7+PX6X|>^4vW`=!L_ zy^}L4?T};ucn&jnY9XQ`y6`UY-&yi2S%rpO2d`RL!0qSl3f+xv%si`wuH=R1*9K4+GXcj}R{hLLxD`1ru@ zdTuO)L`HTK(Oxhl68V;=vnsT{nw>stUl0Us$#v<7;c=M4UW z_8u1>Jlhu(7zi0prh$0hJ~v(K8-ml99)2;*JGqMQ}&G-o^K@zDurbhf}qSVD3 z!ly<&#+8RMV4PeQN*dL7Es_@eg~&rhbLC&@BT<&(W_o(1O_PpKBUT6CPcQ{klH)oQ1ysQPI$ zHuh{ZKhH`!P1c<-`O3~FX3ysQI2otaM+>J9z8`p3t$(!iVZwcu&g`da_4kWTmJJu} zG}2$zzQ|vlJJHxNaJG1Hi$?y!x@6qltn1la_7AV@(VMw7))Pnb&Y|{^k5%^dI&Ow? zotK)Sk9WLTU@vOp6Q<@nQ-5Gjg+$VY7L7jvIp?M=8oN)-zxkTX;4YNHTA%+~uW?L@DZjAkbH=D|-Vbf^zgS{cCC8gSU*$jhdtCTaL0*vJ&}UUH zs+ar=L(<;yXYX|dY1{9jayr6OuKo#7HK$40=$9{d`ju=xJ_!Mk$UskT;XUk~iBoS9 z3X1$c2QuY|U`>P#AtG56dH_suXkUhcS(zByI==xB`ub^eB$0s6QvZn%aL3yw`oGbR zUa&6wY+Z^7fC*6Yx)7SFf~Yc|kCcN{^KM#N8j*jR{^MQ_gEh{yTr`tekZN>M-$yBL z16L<;3$c@*eHD_l(1mlU$YDUA2%HlR8^533}s(azG0Q4?I{eUCyVr;1zJL5X!9JhwQ=?>K8$k%Y@Y|!J=!EC}@5;tsi?>blPpgt5t+cyl*KK|@z0+P* zy>Ou$%ngQ5e$;gk7-KS2 zjkvaK_wMNAAz&>NWo~qAtlk$szR*c|ga;7g7KnJUgoJF+0}WU_eW+ z_TZ>)uLR#&6y>MWi)=d2X`C|maHd`~DtT0~?Cju>M>H-3xX8}_%8@d=dFdt;otzza zSZU66l(|($PBeL*Z_Ji#qanSSe+oe>#+-mN-NoR zK;=VhDA3jPB6WEF%p!)I#I(5lvnDwx{cJ?-buxV%HpNtRYu%@~w)u+M%brml_+JdQ$tW&DO{DMX%`Z=->BDR9@PC$+kGk_;OM2-g!koNm0T0 zy9NwN<4hUF?NsUYzm53{WNu~wlS7MjyyAjG)`N|?^?c<6%A5ao zYd9EJRxbUJeZI9_}gTyd{X&rSF6?c7D0EObwkA{tLDFZ za;cB!Io^~xaKAkTgX}Fk#G7or^{N^DYYzOlH)k_0xI_2MX@x_F1&&wLtdQH>uCb}b zparpxt1d3bFwx`q3C1wr&!0Cld^IvObcJ)i$xh4`$}O=;v^K=Z5Pb-!txR-{=%CUf z(j=jI)wHaFL+N*l z2yq5?m^*HeiU>3n#WZ!SR9+W;#M=@99!SP|-2eWYmGpGJmWd3K+K}I8Y)4jb0AX~! z-|9&kr%Xf=S|)HhyY(NQ{>^*-&gx{Wdd~)ijo2;69>5rnGkE6j*{!Hlcy1or8VU8z zfvq=iyH3C2GP-#~AR9Sz$4{KdhGJN(gN=<%6tr&~^2-t4e!A-flJ1D`Nl0UQ&x^B! zmmv!#Iw>g+`k+$~Kx~>=lOyu9dPWUPB8g0z2ESMMN{JHAa!?U> zO>bJ5s0aP2j?M0Q_voFl=>TjXP}&$+^7E)*BsD_K5j>O1x%De@{T`*Q9P zBZ;K6IeIGr6)+HSXrJpHlf93$C=nVIZ|FzzADqb$zJZv_9l8nZD5lYqhIR&zt_Ah%Ux#wbf#w7 zzw31m_kL-;vekZoFY+R&Ewe~fpo|{$kHt`tf zE)ICO>Zz5#>X9(@qvQO%_dxW$hq)@REnc3KyvUZ&sV>VF*);u@wyZew*@uQ}-m|kD zakH~yqdy*h@1a?~(ziAI`;eTi+=Yqr=J7g#3famuCpZ6%+0c%c?p@|9hR}Hc={{{7~zUQf7lsr2)zDl-C+N zTFx?mzJ5pLTz3Td@5aWX+1gx=+pC^lkFvM49>0RJL%IJnXc zXP4wVLzTAdet3SbV(bPjlX5)vYZ+NjL{M|sTYF_KR9n7i`iWN>i1uZZA z4zWY7EHCmqFJm#d zT)kT8;DwMDsW7qeG&VG-DJcaL8G>N( z5*o|2Gda8S|4d*sAcQmj%)x*`6MawyQ5o*q^_ZyA@X7Clh4EiKeaFC|^fa-HLRo>i zU6)jN4G0$tvNVb8Q`Bkt1*X0Z<-Zk0kwbhx zDjO+PIw(nc%dZy_zM19uCZE~dC$krLGiIbQcm#y5DoVpHn_-RWNlLt}jS9=Ut>_Hy zhYjizV#XL|wB`~+_b^XT!^PzVq5Q>%B}Vv(MYlCQ&KX~eo@gR8FG$cK#`h&Ob_ayq z!Jqz!ZqE&lmnIB(!$*im0CbpQ8Zq*9WRwA6in_YG#A(N!1XP2MhervNt!nIJI_ zV;n5BIhs&65p+B;QU*g~v~Vjvfh;FxAwV14h2aRq49uaygYJgz^0IiL0Pq;{M;SC`r<0)!+cX;)@3{ta<%CD)554he(4g3-o z1|pCirW;QTcgbl&ufL{W;aLP3OFAU2^N7&K15T_hB8HckOJ%)+>5A=`jZ}o$e?%rK z8rWo{AY&@85b>O%*XsaxZr@cp+j^o1${P@C%EX`ugU0#uVMH9h z?H^bC4ly>;2CgShU`6vE4edn1SWvHk}#=s-7sX9jC4y5dkIn09E0QrS5gU|_akHz z#Oy=jQWD_(e2^0AT}ITqqS|Zab1rSi?hq&h#(~)Yqleh21IjWhp`Jb7um3ri3cil> ziO)Z7X5Jh!{r7ljqe?}_>c*PV(4*+g{!gJVR;P_!9c;4B`y8%wk^bYFnQIU~lzD$V zf|t`h=*1siT|08pxvK-*yviCe58aBa9CHq2%8T^fd2gSv)L?qo<rQa4qj>S>Gx*}s}7Z+L#C^sf4m5mBdfy!3ST^n>Waw6l&fgYuK^ zk3OM1=Ue@Mn0wE#sIqlywA41IZWRL(S_PGCqkv>H7D;jrDw2Z;6i7C-k)W0Y$tbx< zk~3%

@W4fPgI-1eB=6JEpt$Id^-$A2&Srd#-=l*0QKtYpyxpcZ~6l@kRFrXKw1V zCiJK?E5#b`M;>)>I>6F$DzZiGLPY&Hw}Spo6Ssk2!-VWV=CYkRsf{Ch?lgTz%g)+b zbZ4ZWdBUsXB;Wd=a=aOjZ0D1()@E%1v4l!N*)KOw>1}pX3v({-U$~mu-T%dW`HN-y z|7Ces?_&u|+7_N60neP?9QP zQiutW$Ru`7252C%J&>Ur*z8+k-O{;GbxK2_?1rj2-D2kkw!_gt##$A9e0?=kRBBn2 zJ}*1#4ZrRt$mVEJRuW%n!Z@QRBPdck?8Q*RCy{Y8aH+(aw`r0*RAi0f6v-v3QtI+M z&pl@*>hKZl4689-PmHf7p(wP%CNH|0L^zP=M@TY0P@^O}b|9D_T&TAAs3&=MIpIu1 z!3*ugN#1&`9C%t;5+w%=`Qw!%tdw+sktdKOx~fNi9EXl0OAr}PB<~Eqd{k`rQ!IBf z$g$vnX9qhc@ZpO*Qc@rE;xgf@NOG)*QUtuVu(luv_9V=_5ufc6l&thMGcDL!MLfRQ zyMjI)>wX*hhsjMyF3r{JX3|L>2RZn_*ppN_E-G}84LD1fM2-(%S`>wKU~|)Pv>D;> z_AY2MuK&J|3L9V*gtU@$P8ck2D>%x*#zr!n3yO-i>9ady?u?}eAMQJotDFpo&j={l?yjSN(Xiic;E+lLvsY19 zH?{H&h-WwKQ4@r{#Yfab%m;u%I0?jIH0=#k3m6>LhN*lcf(t#-pIM4FU;5kZydNA6WhHtXPHD`bf_@H4YSwCQBf&ea% z^V<`SbxjrTg40Y;M!ek@Wr1yyM2s1^4~q;HuUOC8AE<3q2SvaB1x_^BB+(CRdSB96 zo4Mw)g*b2q*0{%_T`71!l3%{#pqT|OBsm6YM$pcZe7*PK#{pOf&L0MFgo&V63%_Ox zcg;e{OmbaIu;xTfo?|f>lkNe7ZzL|z8l?tFeobj;Z*M2ZH_64$)Vj#H&3DNNX!DPB zOUSk+p!v1L(bUu&-i&x55{89n*byuLUnweEef#p8G$zOEE2SIu`y-XkHm}_*RnbU| zWh{B1RN7u()tKeunMl8ES+4~DeeCp;fr;B!Q@9W4ROk&de935Cjb5RT9wp*i zCgWd>P33wfSD{Sq864E(s{4*jMqWut6NkA?$9dK8im5P6(I9pt8H1|;!L^bqw{plP zeLRW zDE3-&C`zvghH+Ub3Q)}pu1H*jvodxk{l!S^Hce0yPZCZ7d2YO!C}|^s-@)L8RNzdE z{WT6*>FI@{9p6K6Jd4_B#reHJIdI7k>&nyc-6+J%1BVDM^Lvfs3&~@?qi2w$0t1yp z@Ugaziy8A>9!FJF)IbS1sneR(DX-~{hrvDx+8YECzG-ha#6}@9RwP0(*tossl0ed6 zU!1pR{JD!v&-8J(yoIJxI@i9=`cX;Efae$L1=eok+cV|+*IsG9C}qROuThKjAyLf( z{lSh*o5mMbm-|$P7vVWHyslw=gG`Y7i<>j^b*jPz`TegK-!Wgs$mPuDc(;nAg?DpN z>!a6~1?IoI_H=;GwJqVUY&ss~UY8_)x$jZ!;R>?J?SJS8(nAcEt5S8vm)BUHqIu`O z|E}3?URXStTdbFp8xrI-lkHskCETNEMe+-zA02x+s~%V^SuFpFMK9 zk6%t{u$b?AxO6bzxXyFw{+&oSMqja2vgYi8E!6WoSiFXxq$p2UUVpA~{x3ru-a=sk z8f9Ld%yi?$%-OGBzNnzAtzb6>?O7>O62HGPqihqe+dOZ2CRa|NrsW+woFS&lYC&rl z#=!xNIw8OG9Q(1Rn;f$lxw`G1Emc*ijW5f~cvEfRH-mKQ7p8geLp4{ooL1xJo>{SC zMUePwEYtc=v&mx|Wn+xH3%YM0-8_2qD1A+JPbRkiIKSmL0Kq>7x|WC{j#@s%gln z|NA4UsbvXToKd{Jss6OuinHEayfLTphhFcMuX-cUEFlvqsJTUnxoRvuZsm%g(ZKXc z58g#9YkU%0QhX556DOml%YI7Quhs6+pGg-@B(jh<-Mx2D8=ySIzl{(noUeI|n>mC5 zgIY}JF;G_W;v?h4Bw;l8n|%;?TUnf}s>KLAzS5Y4*1taA$2Ap|H4T4fxzi4xOCJ;H z9o(?;$oi8{gsuKuc)mVa@=xAv{e6#*$le=7oD#*r1nvLCsP|$~;R}lW@=G1ddK!>j zBR$g}V`|j#{Q1$m4!2}GoXU)~gAy8%Wk0Sdg>t3Br|hyG;nDP_UJY(oeq_De6XAa@ z&p-cZzUmu(XxOLy@uPr#yy6+{+6mMDe1+9h4~5bvoA$8m;7lu?`+(2+jP~dMcu`_^ z_AkRSo1d%=dCO#9b7kn)I~D)=HjM{bTy$;*lPSg~utB zov#Ns{MS$a=Ql^Hj{kIl@E1jURCoOJ!Yl0${(0>G`!Al2{P$O4y4=At^E-ul;;6>I zUvbujix=zeKYl%x+!XlF!uqd2f6xB&eWp-8`~UQn@M`D(vGD#ce$=Ns@9kCMrfzjK z5|MN0*^-;{beKD7SS#VItAbZxxl_)58|!mzKF6b$SPB08>72V-p2TtS$nHxB-BaMO zrcLkt6#ZL1GmtA}yh@X!f%)WV>J3|=4W26!3;z3J{Og;&S9%uR#!c<@^&NV0EbUeJ zKF3oxV`bZn=3z4ZCqDKxoweOD%0q%CNQ-dGS;~A}=EKD!DVF?tFTef;)ktyemI7UR ztmuNFM!MG7JCzOQS3)Zv7yfid8u_a@yfo-eRxKNa%`fOAmp5tnjTD?ojq)f|taM)Y zc^6e;`{J#!cLhy%Ux;Y#Tohbm*Vva?S%){f^V2Q5Vkqu*IdSsgndA|r5|$#b2tf|% zC)r(fO!go{*F%=PHCqK(4)jksXuhHy66ecTr#~U zMJBEFt+;y>{#QTZNZ^-&#*jbXZE8$r(dp&t7+Q@huj|WX|F6aL&u^}T-umg&{l8g2 z6w3d3t^fOH{cl;{j)@}_UOowlLh=Ov=dZL!IDEBSR+&0f?c+7(Tgm#Le@)4c+@37? z)1Of&A{+lde%k&wU93LvIRE+Otl}Nrr}sP0OBhNyYgpE)GTHsH?ritg^a^Y_(C_@+ zY0zL~a;KpU0>gsh6EBw5 zC&kHXxa`;5DEDQ|d7W?7@6h_%yyKJIX6a-Y`Otju0gV(LIkzO*`le&K-lo9@BAau+XB>j!!i zXm+EKYR%Ns(k4o3&dyE`uD{KA&CR1gKZ=on4GvEBbT0P0i^o?dnadkQ;zt;WT>SH= z9})I`a)^t%*JYYD#AZf&#l!20c6Rgy8+YoH%^OeC*_4z;gpYntU$-KLP0^qH`K5kb z6U}isiT}8p&sZG4zE`Ev>*_Md&g-kZJn;HjY@Ut-=4*q*jAWDC_r_4`qyE`@)1vCq z=;y2B2frkZSG=oE{vs-zHSYAS(e+ihQjW<5ymNlg$y29z$pq1hL^a4Xz-z0(J})Fb zmUdS=nT7QOCY~YiU1&PI{hYig5jC;^JX^wbC7Cnk9DW^N}?$QL* z;ox}betLqBglKvU2*D`}t&Fj8ff??(Z2s?CMOJ^&sJxk@U@$e&qQQRHOL?KxZm{t~ zx?6v{o(wb%l9`FUr_MCN|2f(MfrJdPVFKRsC<(LEgL!HSz z>Amm^1(tacdxRe`O1g0BLfRe&O2J#075fKAwJ6ZA&<%sx!$YpVo9^alK9T=Ra znCzR$pRoE0tA-J_Wq5wwr$2?oSh)fwQzf_Q=sM2(w-|usy)MI&WbS zDzAa7`uZ&?)0JuJYwp}`cqG{t$fqj4hfmu$RXWkwrTk6!MIPr6Fw|~iksGYkI+L%Z z^0siwZJvzkS*}^cI_o|dvsx@T|MS(ZzKQP@^MlOlvUhhX2<{({ZIfg98Fksk9M$l_kteGF!Ej7iK#b?Sh91G=zaj05$Yv>pD)RQL;SicwA^( zul3uWnM+9Y z^z?0$O0fKppJDdy(YX?tWt22K-@YrUpGG2JRHhGjSq+F~vd{qvg&f_@2i7)ms+oA# z$nWFjl%W}M3UmmdXI**GHcnq+Wkq?zN!*n_^{i~rF{SPHI-NS#Uq_AcAmmAjJj7Z29;?)&eG!NVB_xXJAh0hA} zY+7Gfn}XJt(7K)O`iILHTWOk7^0i_sBPs-l`lK^$*3^z+{4jxm@9aL|nio8Q!wc9cnz5d;B<;OFG_O@SCQ zO9p-h46t3Wt%x;1v{ykStExG)aS4QxO8F08m#;P8fSH^d;$>yaFr)sZEJ;!qhZB+>QvX{c!dQef9oHS%T6Nb zq!?W;0oWNr`zaI^?r#CJvNtrZ@x8z*&Diu*+CcDiqc7VlZu9r1#zQZZc{+DPQBiPn z+BQw1BTblfJw3KH$KX(ki@M*=RwH`0hqY7OwAlQtw1lUqQq{7OL-Q>%g$ZX4imd-a z2OtZGXDEKd60-NXeQDCFsH$vE;hg6EgFCB!Rv_RJJ*oXx4a4$E!boXBNbEHe3grfx z{R((Xx3SdIJ!}BG`N{Yt`EIym$c##VKL9pS!gIzc zWLi}xHHHC4T{&a6R}*aFkJedz9!)yhzSHt--YL`8Q&y+^y}k`Ua%Q`ox3_x6tuWC&%&jop zc&)2@Kq@OUzC9u5)3k+1;?Uze-b4IyE7c3mhnG!7 zm7BAj#{cl+G>fu|-s!xR%WQhM{>byxx$eIQ6Yt+XEbT0(Ur@AV@xX6Ksj@Y*O)h;uh}In^2!hz4?j3ExfDEpe_Qx(y8I02Gs{2X_}38p;bE0NUyk z_;OiEPeOx(6M(H-0~VF=n#;%YqEX~*n`7IiMUrx>9_^(PmI)%YiRUXh2{tJ@F7MXk zNo}YJ7mp#=2>J;L?}cK3k&V#Ntml+509(V?@bz6~WdocOv)v}G2&!)*T8WDQ`hpPZ zwy$5-vxz&LATF;M(wu+~9ic4gYc}N)Q3MWQUHEEY0juC707VrGM>h>%tMpjdVg`S6 z;qk#3ED5Ft|D+Cz0zt}cv&jLK@-Frgc1jpcyimHK16c!Nf9s=(PBJ(e^S@00e7^rDPy3!9WYn;3n zwmnOj4zP;Z85H>EaS=fSi6AG+6wD}{Av_hl{L=8UB)AH=LBvnPq*E1qEuo;Ug@DiL z)63O3%MiSJl&m9+BWrYjBRUL7_X3HC7XhplOr|E36HO>&;-O<`<##7K7ZAu8k!U81 z1d_tXFC7b0V7)+AArBYV3Aj=M=&ZwfoJ5Q;bjPpETE^JYk8wxb!=95~Ja!l12ZU8i z0$(CJ4*QZM-034^c}99p>Ds=3dKBU!CTv7a4{Sf=(0!U(4~n^GXoxTAbJr*1Hkf`T zks$>|p~_An&_Rd{)$;NxMX|GIkEHGMg};aTxFsnJg*5k-m%)i#&ks(6|hCmU%zu z(S|w*vPEUgM1lcR#px%407Z7G%POG28(_CVLs_U7EQ^PiaF!T}!5B1A{ILFU{!dI? zlkZMwD@t2X@%MY z9!*c+hNH4!gLemOmW%9$jT?dV+C6Ygmg;gpnbw8FGM+HeI5>tt{5QcqG#U)9CoG=m z6tQPFSJjyM1wS?UMI=eH$^RnL7Ou?-5J9_TJpz z<<|W`?ylcgm>8-e8@Eb&jk}cfvz&5h1_U2=s;2H$k~i4v{KAbrWV(}YI}7DVq5tN< zGp~&stsRdC28ASZ*v>N<5Ap=#`}(InGeS%FkL~*;X!Xu8ZlArOVohD;;%e2of^|6; zKP9&nu6%28$fBn1MCxkkq=;M9gY*0B=*_0|Ko@rTTJy@?8s(KI?`^a+S5gx^<2yN& zU)fo%gsF$_zk3sd)>~Ir#&rMLS^0IG_wxQ+k=@E-*-86A;9S@N8usWyPkQ{gw*H>; z+|&}uUlQ$xD`itinQ(($u{L-9604`Vr1&FV?d?)E;pxWC5kc4ACdx!C?dd#Bo;=Y=Hn zt|Lb=N?{`HMk8YdmCzmU;7Uj*e2MZ9^F}1n7e|*m_8a07hU29(^orKjo|1SLqXhV$ zOrUsALJ#TI|M(W%7sXQzi?oQ42edTf7Khtu@~%+oqbuU3qLNp^yh|fo)jZ)SJTsiv zd6$b9Q{+ZC!nL8GTbNAue*1QyW>f%ejwUu3k;pN&i%HS)HuybBSjB#P944C@D9}@> z-Vme18k^|8iFl1H9yFg!Ou^!y7M1?q{gB9-lLg|ZZvyv7a3Q~(@i0&u>k z$VL`sf3ndne|3x$*G~QSaqrE??>1&G%wsyC8%9c)hOx%hUD)L>c{iKHOp~t*hag_3 zVmtyc7>UCwP(o}k6u(WkcH=`gM1$7}M~a8{5y;;x^c zW|8wSX}F+t>W7D&I(T_xK-g}&7B_b9JJ2N@|KY$rmdz{>rai>q9a&s>USd&>Ku%gBtG4U{fj|b+A6p=ZEUZurT}mi5{HhRw$~- z<-_gZZt2rqmZlUbpvTa9xL5w3c&d-wy)7ZeeK$E6vS+XOS1%sh%4@sq84C@X#+tcH z>Gi^nB6b$;?Hye;^$Ra%MVn>K=F^}UCqPloYF_aNAH$+H@+=tKTtT}SyI2&PIr_9i zY4ZEsRr74l@@vJ|njTI&@n70`3;8^^d=~Bp-+I__xj4b2WFh6IX5{vj?X{<6a>8@^ zbm*bWFApTSD|DFat}7}?I=1_K4$U~_Q%#(8?Rvk)f`X{Q%fTg9`nv4mG$VRrhHiwg zKaX&)r#cRPus=qIbqZj`(q4OFE4eQBvw`&v4eT?rIl!-tdBOP&EkV~{|M z+c4Hqf=7uJ5y`X}>FEzK05Lx>etpDee4O2ih$~Y>!}L?;V1@leKC6N{-7%Ts~a7<+V8PV!gbWj_KvU zSYKe}e7VudLZ18I&h*M*lsn+j`ym&HJOFC^mY1D~Whxn~ z;0uM#F*>aB^WMJusPM~d#)h8?K#?df#Xi_yr*%M6NJQ{Mxovh0q`)b6!P7be1%DFc z+EyqV-SE#z1sL?rr63&L4Idnch}6H}oCLW8=uzOX(~6&$RQ{>{QKh32U$HXTr`-@M zY{O9aVE8 zI!})v?l~l9kcO@XGDKeVC@{bHEB@{%S$aetPntRz+ zmTi=ZhL+M68^t^3B}_evAg?-X;UKxUkYqx3pBY)iB5tJiw$H>BC;|*0lW|pvY}~-m z&_`OVLPBsWrUBJa&*zMu?pd5AeIjDIh_=y(i#H)Ij-0&6A8ncsn!da(QlI=ChIl4m zw4~R(L)?J~Z{kU{9UJ?mt*xl>kFr?NZGBK|ku49P30d(XRug?~Aw;)`BHtK_wWjE! z*NGm7%vocTeaHnYtWu(y7=@DlCWv2mH&t}r6p$s^kueV@g8tT8pR`-nsK_d+t8=Lz z11n^Eh0v3u92jgb$`c9Er*n9HJ2%wVssPYX3Dc|iMV6Lb(Xi-HF*&edSelQLg#;|E z=a9;8G|>sqoFH%+9+wthkskKWN_Y0)1-7*WtVXNLIDSiZR5!3sVgLsgSq|j0!|{|1 ze@Rc&9*^S)zUxc&-wUL9<@!E5yG^na%^HT&AOOqM;pg_MSx(UqdhKYC%oudFbRCJv zgL)m`Rvo)B&J`c7xpWLl(4ETJU36;Le^lmg`*mu!sqfxHo2V=}+3PNPkw`}wYW*W_~t<^=h{p8WcoFe(r-%c)HeYKXZ^74@UDz2-4P6&r|a$Y*M_uxZC z`s%A+++;YUE_Zi0j!O4c7xYzsm@SBED{;L2H30xw`G^1?*d*SGmay z%g1YI9(At=a3>K0peZ#BPdEgTgDLJPv0y=xj49+nY)gfoGb>ZP?_m}1efVS0Xn}p} z)~1j1%bt}ml9OpDoprB&jSYPkizTGMa6Rdvj-v(uL4%nd-bloL2*m?k0Xj4-o35;*N2PqbqoN;Hv3Oa@oN z#>hPiyc$`Dt^>=_x(cgZpXP=e~}Y1?bGg1;y2rF?7r zTuqX{iFR4L^beC#)15iXa!X1|*jLny!1)+BfC_G;&9wmTx2USYHwI12R`I)3R#$5w zO0vDL;r-Wk=6L?Ztj=Nhq=fx$nl#Y&wlKVUoQp!~1K6{h>hO(Sk@4OCGccToZ@a&w z{z|!Wa9NjlwN^rxR}vrGq4!gphP1Z=%_e~3_H|7!myHxQUpZ*}t*48{vyEMJQNpi4 zgTCcMQC@p-f7{4?m(#bolG>{BTC3Jd3&nGXbvbvO>abYx@tuRRnMUp}kyE~_RB1W7 zblcxA)w~Ja+^}$bxpMQRFFKDa_>|UI52e@sZd~-8z4cp?QuMtsp9va@o+@i}#PFGjfA>+rJ_o^$k75k=@SGl`31qh^Dv~E_`EdbwDqkc=&%Xvpc z`T8M-3%nt1|5`FRz}gx+OgTIo&ic*)es(Ndwj^d|s%dI!Htn1V@;M1KjaN`m3;Xl6 zYoD`Pq%KD`hwrFr)3*^+UClGAA2Vqp{xh#Tqyn(7^~e#!Huk!Nq8m?f|zW^@tLyYH>;H*%vZXUF zefZYS5OqW_S6H;R9RGNYWX;!|r^sM2Y9D=Lsy71*P8x9=Om~ zFhky#W7%*@Gbb_^4;gI5Zj;d#te)0ibVM~U@PH-C&GhXf{iv&J0p2TRww&ozci*u! ziLKlz6|oA4jUOJx zFd2b+L)5bl>u1A;02_)5lHC89$&Q6`WFQm@&t7Z@n6$-#~VGf&yzM%m}ag=FkPQ{v<&G~2^;_W`9i)WjuSaTxp27k@3QXg#$Y4* zH3fhPIYt*RHJ7Xi|Ng`-oGU7Kn5}y4Aa{8ecXZLN9icw*eB5u(-M@T1g?jk+EM1IpUH6aNpApiW ztgzFSb$#oj@VKJ%!E}nO&_3%WwXE#2UIt{i99?VzCdS<=lKhq87j2A zC@NXqXxxVR1p)yeK~X<}{1eb^&d)0;dPb*j&$}FRDg9KV8r_xDCcw{+bNcHSKe3Kl z7=tDemVf|9umC%RI@i$QEjMYv8s2dx;CR8jgbKzwNxeThQCuuVt%r0!2br-6LseB( zG>P=$Vgu~Wv|O=6*}Y2+$?5JS6QIB>sPJreZV@|^Y62k0@MB0!Ce5#hG*yPV6<{66 z1Tx*~TD&YN*L5>v-|AZLbWoNI%o-0(o_7H9fEq$xQLz#5EEn?^t=BJKzOgujv?why z?ug-o?x7*;sx%LfzVcSB3wF)bUtdvu3jJ?k7-Z<{*`yc$%uIC*%&<)=$jy#6DrTiQ zOun~$x8UF`CGR&XHqt$q|0pOZ9-aCi+?I1gIv&+r1he-KK9h2_0*`bvE;*UR!WwT) zDf(l+p(TTPf8pV7dfl0U+c-l9}X0`Uj-Msf5l{hb7 za>2si7CZf?ERVMh+d&LN4hH^@Tm9HO4cXT!Yr6B>47z5@j7XhXO1Z)sM2Wt;rf>QT z|8w}mrj_JuqS(*;5!q!!lNbpud;-*u7#6`@0ntPkJSlB-gO6w#a)W5)So`c=uHL1- zG97mM#=6oMMP%A8ZbzjFv9ENES(h=upUDjK>}dXLd{-GV#% zG@Gs!t~0ZIGgFd1t`!COjO-IhQ6Bv2mUmuEF0pSH-;ro@XLPVlMB@)>_RdESxXzsE z6I-3S>pZPJM(n*^&F)G2s~*L^gSD^E?0o3oKUaE-_Vwecyygt?KUaLWa#H;BRQU;u z#m64f(ib0!j#g{UJXlH_weilXWjSX%ANasi%~E%tNUTe_TjjQ3P2PQF8Y`|hX4rOl zCu(YhPR!?qY7eGS4@ZlvUdguYP)Lr~>@GtQMp4&yie3c#&&a4C!HWPyIWaZ0iBbZy z9i+>Lgx+La!c2SFtuw(yoPq{V;_{bh7^hAGY|!f?E)BR_O)1W#Zh!%s9)m$q-XkPb zzR^&8jjxZte-jLLlAuzVM{FYaf@bIke@tQl(RIU&+mPqSzwrtr5=9znoi}d~z!1x4 z;iAI&4R3S4zTecXQXD$LR}0@pIVaG@U_K%@&Fwr9t7Ub|lGgG!$>o2l<%&7()J zw%@2#zy2-~6M3mR8OJbyO&Eqo^w!`&3GWFzkhrZvMh1N|0<3PzjtKyuF$8!T#~e=C zKr%^9TKV`eJ31HHkqOF%-nUwI(ZjYS^CTMVyvm@~NArf-vPssZSx4#!r-c2JR#;k? zDJB-k9j0tsJ=l7GzUT90o3~yK+p9B==^yGI_qlUN6%*N{7oVH+AV=Z9$kf6?M)K#S zaqWL_96IG`E2HUYVlsTGZmcZp)+VdzlAA%YfypLbaPczqWM@7uwM=m6dvPR3Q(K!1 z!I7~{Fhte|(=*`xRxTh{d8kLK6kRiSWUBD#3ELafJVS@j0jJNkNsYs`^y95eIhdaVl< z8;7N`sk-|P>KDoj@H%{ATB#4&`Y${%bi&GCK0T29B_p^^;9(KX$Nyrdb0K3@wq9R% z-iMD@Libro-+7_YM3t)4)cL!2o6zCsOFGy^hdQW!zn>{n|`cDGrmI7!;ha?7o}w^c+!#r1O80o#sQ9;C#?Y&F%0YfeYKXPXn`)y`3GXuUSK8V*|a z3-7YN`|xTaN-%W9Gt*^gP{+%r_887c zg){3ms(izM2*gF$*eYsjTpkJ3(|H=}zJcwpAxJNQowF~0J&y%w_1B-PooRB!na-_4%|?2o)_e_vLuex-IJquC&%Vh87XP3~a6nz%M8Wxv9XVO1X%o1-42u zA4$C4;M8vDKAh9^ySU59XsdxV2R{wI<@sqPQ+jz#&o%usVoDFwomW8w58yOL+ zZv7}oHd|J|e_6b}_VB{=FQIghZUwI%2_+kK5MOIkH zz=i4KUENqwqTaLk$`*%+H5-hb1;^Eg$JAbw&#C9B>gZUA2})RnB@a7`Bwsu}^A#sA z;ylk*RoK=Ad@Xt0cS$bPEi&bd0w?TTvQGtx#hIE(Y}osBu3BQ!&kDT*sclY~x6apB z3Kl7PFV1#Og5MZ?AjeUMV+Upu2^cSIEnZ&FKFw-Bb>Q-4i~hAjVwUW$R&KNy_3pT& z?pJNFq~jFw4wrVkZ`~pFd9%*;bsS~$qlXJlI_@o@RC6bYv5)R} zB6p&yDyZ?r@(q1qRlROeQ-iEqxz5BKZ7EmK(9p9KTRd?t#D81R+w#i9FV4B?uSc4A zPS^dtYp_H7go{#tLMD947CpkyeAuO$nAk4%JQ{H|jfe~{%IL_9>k%=QDJk*w>*%<> zaBj`mbp3OalX@&ss^%@9>g7GZw|i0RSzbh#zjSyN`e!KTH8H<|B>nO!=WiEhM3ylN zBFZ*!@YP2umY>OAYT?Ph?JjUFyXlx&P|(iX=vV-Pm@mhs`Nqv;QG?TS;sGX=HQ5h; z(uBPRgFjJd!MM)JEhR7Fa+%?JTs!{~9`S*Q3FX{*H zYH4a>=V%ESLKi_su!+?4;K2sVsf|7$1S(u5il~@SP6a%C*fo)3pEIp*qEmekBF>Dp z=V6zGlFH&sp@DQlK^vGEE-H9}2G~u&0UbmV8w^HJ$PqaR%AWu(!^?l)Xfh3R^d9Xj z>$KCmbSVQ{{oa4sU{EKg6{J5WGV!7HGVU+a6 zO#X3G)41G=ooVo*;yrMn*38I6R1TI1a06hp`Vp!o}5G z{tBsKryb@B(8pmWd@baD=q?f}5v12*r+2*E11-_ef-KD-_cWE75!O`etS~ZE9wgda z-P(XBU{~MQ!b4M119yX@1Su4YRDhb~ljA_WwQ(IxK^!^F(G?{W;aOOLS-O^f#UkTD zRIm`J?#Hwzd^ei9mo^(X`YDOKv|B&Z{p+lXiqpNl^Wz)urFcuGp1yoK;PrF~)l=g2 zn-})VH`gz<*wxp4yCKgy@vmd^PG58$d{Xy+UuBE}JiaVbS$1DbP1cvMqE;ssl^JQG z);;m-ioWxSn!d3KI<@{Ye@xwXyGZ+^VulBz9}3^wIym1`)~REy$nIArJ*lc!mmMY} zy}LCryI6iePI>U5h#K}E5}*bKBoRX&t|TkoA05cbY!CS&xXxs zS4H>eX0C_ZdYfW8oO8)II%ia<%}7x6E=&#*3Ku{a5&TvO6D2KruXMQGww6q_u!CgC z!TyWU^?JJ^0;qF#sa0(pZ7*`MMo6Pw`pPQ}TrdHwl?iWb2I+gme+a_w&|p*3)0Mdo6tLbM7?h>gpoSg)ohmDE|u~P=mmM)Tq=u zk?;)w5=CXKK3jy0U$_Voq11bUJojlkVzRP0(_EI)FgR<#mJxo7sF()_t-`=}RH>sY z=4x4<4yx1|27s^{$#IM)}h6NqtEC1=?i}g;fzjwNs@)-XZai?m+)wE|vi| zM@zAqx(t0IBRlD>{N;AXr?m~q^QQ#pk&8!Myu~a89SN)m-lxd~$*5~-HO1~+M$S3} zjD1Xr&S@<5@(!GSuQ;1UEwU!!IP=e}_6}`7KWS?j$zjC0MaCd_x$*m{6ao%rMT&<>gDS&oy?KXwSWFwYfiLNgZuvzIVa>1{(^1t|w&KyES7i!4J?3{E;9||5P6zqW+17uR_k-qTn~@llw;wF zX&VCe1!{)|L~2IIW=n-IstV5@*(ZH~C;q4{!*=pwOMnpjCLW=h!mddncGjetPg9oa zW52a~YI-mK?ylcA{8sAmw#A}X1DPf!Mg7;71EG1X`-MIwBb=MAVrKFb{<4L#D?Q zF!+RMqdV1|+%|wxs)^WB!FGViv=PNyQB}pvG_4GXib@B2tA#&lqJag|2SGdY$w!D( z%GfNF5dPzQ)QRkAEy9arIGWH?=p|!-K9Zu87rCEcF5$Z_jDu4-BZKCxU5I#6Vh2T9 zEh0@yD_d|QWHIY=))SXmqMd{BAum6F zBMMLQh=U9zwj;cJd|7WjK7Dq~FnCFeh0q11yc(|E0`^2JK>9#do6u7Q0?oikw9XHg ze?Ub*S%`!Zqy_nU#NJYR>b=Qb2-h3)9ra9*VMq8}!m$&!1-4qG4o8s;hPM{dEDcrF zbI8#q!AwLZo2r|23eARdU&YOli^K^`mFPb~dZ(bv;Kdt(%MV6S6MAGbfo5b!5uTZ- z2+=VU2T$TjhZ>3Ornz?Q43ITN;cpv5h(8Q&0PA7<=t-74LBGFVvTQ{^TvUjBh>)Q5 z^=h6tIe_?NiaYNtEE|;I*x7KAOor#@AI9t4AtQtnTO)Mn6D{UZ1HeHWk;!YjdCNdo zR}2)UWIYlE6cX2y@I%GEu_T}`pnpEtEUz>>2hcu|U<1U86JGN)T>rK}%d`boUOAIe z?jhggs}&zKExuqhxXIQtqV?zEF}ylc-eX7a=WLMr4nbuX*+cBU0+Z{1p-{BVQYZPuOfA0G?4Vl-?~LjcQ&itKrQLS6Q=)knb%~de+qa-yGnI2np+#I& z>D|Y+)a`ouoaWpAYvR{F7iO!#$_d>MLc(s_4~@(TuHT>$6uWkXQcqng}!_fSNp@GdK*=ARcM^C5G&mkcy|cC^~LEtfPJ8F_)qJ^W|jhg)qwh za;gF~TsTp$F!^TBz5Ry{Wmns}ySWXL&75S<0e6P5`ng29_u>NavlCh@7X08t~m0_pvT(Gw2503ab~ zH(?hj1>@@7S?O zVGRg+LBq&sKif6}dc{_Oy}60`JMpBoc((`lgy(d0OMsdClgp?;m+NzGBg~ zfTWe|^eHWB*RNeWgxMRSRv~zKj?z{lI5P71dXiWt(kJeD&&8--tpHG}%=yylbDtQ} zZ%e-ShLQaUo|P=W{(4qBzF?*=iOugjdOuoj%LC}IlW_vh01Ev9pC;V8abo~JSdBzP zqrQM^6kJwThRhrWK{5#bisqIGvaOrC)tBi)6PvQJ;N`1VJc1+vkXDZfPeQ7r+pZD( zlJnTa3*6uj4?5g@;sl3x;zfH&+MODyabIG=g*~v%#soMMw3m5g#SkIyQ{|1TR@IWt z64yyLYx=Z4oKUbwV!oRjaazupEM^DTxX%x>- zrf22tmv%{iXEmq)>yl?Xt{3o(>d>Cqh$a^n>WRs!Ka}zQ+ef>=akA=3biRS>a?`P| z!VJ&bQ68+n@#`7rC56wa?N}$WW?ca_ABu=U_W5^k_=)&wCf$e+**B*I4C z;4PgnuK^Pl_|YkgnmkR$5`*ROE)c$rZB4JC{YI!!)iQg??6S@NqQy@2ePW29L|f||Y;M#n zefm@dk5*Gx*G2EyF!D$cTUP>Pv>7CZoddhI3G?-&=b-4BwS z^hU2wnL`VMx?mq#eoSIFeg7^N#|esw2Pi7=?&Pd9MG~cAJyJ$d2M459!>#5a%39n_ z-rs*e0_II=X8lTvg}86u;jlx~^YyQdBwYfra-+XC`S09A9kc6Oa9@E@c2?Tk1Y-u* z(9=yEuBUBHZuS>1&Sq^$*G--0e5ZX+azrCIIbCyXXF9Ko!nJDeVS(jN15ctx3Xh)x z4iPG8ybrVAxn*-v`a_xzg88VdoOvCVA!jx%@KDDlr(E>nd0tNxpBi2!$uxc%)b*+y zjO&V?;9imAsj-=NH&N@^UvN4cE-RRQcfZd_)k$-3UQUp zWRB%>iz;~X8^8)cq2Ox`9~X6Twk>cB1U8S+vj>i%F=I)`mU;|UMH)nbFkSwQ$@x3} zbyAFEt0Oj$>k>C-lDjNDqTii8u>a5-?Z-zwsK3-Yz}dFY=~B3B``H7B*Wa~hi1({p zvYAr59p!I?gm`KGudJ+k7o%0lfCv<8Zh4#Gbc9)CrhXds{6Z0n!aZr(F)|>}QBK>{ zOALM*9UXOuK5Np}fKw00&-1^FZ~o#TG8NwRYh+}ka^Bw?*0*$4BW>+<*}i=YdVIvd4NSs^Lo0u<>zg{{>4`_jeahhq0$7mv%M6 z^qvfufyIhf3^{+WNdtrmJ|q1?LkFf-iQ)#QenzE#DGcX}#&Se1_&UX{_iq%5Y-$Sd zV%xH%yWTlexU?u)D2m!gMdinuCb{&;(6h__SyabPA+U&7f(&G9TeH{qCsw){r>Cy; zs=d0oEEoNC_HM8aKW6Zcs8y|xhn#6YB-Vr?g(7u77AYR+ew#kO$>UgOZjCc+g ztq|xMvTc;}=IB%uvEtacI3#DQ_98pfQ5E$c$29H(f#R3C}+t zin47>5Q|0mV?PPK6Ufq?-lI~$GCn@l*j;Jpt(n9HlDGw#k!k#ys5A_X4Z#hX^g!tSSfF+VBx=9GYH4-XKc6pDU6U3##om_WDd)mywXqr) zq*%nQ(y)8wQS4V}=j5cI9n)gCwJk0#8UMikH5$fxFyfu{OiJ}CWKU=-XfHWzP0}2Z zs!Q}Am6h;E4eWYXb@<-D?lQ$fuw~yytMb32G&Q_39=M*PpE3z#AE})_wJ-O?r>t?UjviRI%vUteu`wd#A z^7zEY`w8AxCNGYPJ{GO~cH;(>F7JN=gLZA+^}|-(P_1^EIRmjVc5DNEIF)1*?f(HzJRUEpEAp`jeh>XANJ;J zLo-D?d2(%Y_e4fEv)<(C3-?Xe=obuG7IuldQxn6 z_?!FIqMC0t)OHU{=SpsFe_Y0uRH5Ojd_hw*ELqc(5isH2#{Rg5lDh5Z>yT%;^PrC5 z#e6DVBP2>l-EwH1j7S*c09V(GrZ@ch%DE)J!(n1aG;Q}!Yxtv<(bcPilH*>q z;xD^RQw>ue&U&k=y6GusSEep4lH3dEA< z|BqMW|DA`WCMfOyXzxAaqCC5PQPfzX0Zi;55+hhpBqBvnv0xhzL8^3(Aaww#f&!K( zQ6nk}NJn}dRGM@niVD&@LlKcW6s0Q7^Itr9-Zzi$m-FeIy?=ZAB{5-!nft!4>so95 z+g>#c!&0$k|MSnq%Js0cij05fl`N<7#j?KqKmRwHnit{U-fa-*|Hszzzu|JG3rM5= z|M1=RsN(xJ<@?m-E&OJ1yVpD3cP|!URPma~c!NZGqH`6n>La_3B zMdO*6Q$;=Hxp`qbhqX?q9Jt~WjzzfWe=NedEh4HtuLOIZJx{`hTO74fRO6soEd45d z>ukpE=@$LLg+C-XWhkg+IId|<$f;*5%ZutBGw-*G?C95QIVQh!$+rClheBj$7UA`8 zHnxkpQ{$}@vQLff3ccwX5aYGBUiD|o9FSWpU@pZC{`i28mliyZ%A^ zwdwGE-{^E9GwV@D0nuH(DZ5Y zKsOm18DE}&at8#t2w-2nQEhL%AZbO44$wvXsLgUv86Uul*}nI|(4yP@_k)654-MC1 z%#4&2=#CSQ&nT3~tU9%Yb;8xy7cwV`{hr$zAmY!mJFd=5w9^u8GnzL_*+VbuB}A{2 zk;!0ic5D6ZQq_MZV;)+`@(PVh{7WMv6)I%zuBv@rp{d9Yk~ywp7u2WsI?D2tS$t%l zXBjqXPUEUR|E`?KH{*Fu?lqUfuZrq>CqKXbT--HlRJ!73@ z88r(j6A|gWl#(Yq-HWUJi~Y8ag@c)qSRWWWkS<_*SYuXTIB*(drrQd)YXfs z7d(rd{`_i>Ih0#*appO^FK9l9PF@4N0>#R+XPhycmqZ@Mc5xdXlU&lqld2i`hFN_x z7-nJT`!f!oN&b>zS?UJ{k5Z7V2GEJ$uJ}s&9VOHJ=5uYg&cxLF#X1HkJLSo!A?Hz% zgjtyN>12vH>g3Dpl$O>aQ6FGBb5b7>)+0o}1YYuo?$x-mMzy(~b*H+2b;Be{nbIuq zp4R9Z>kzLw@q z9lYtTpy3_cQSit&+T&=HxyDz=kR4^Eipf^Hl-G?rJ<%S`iysroi_x3POw|Yt;cS{* zGA2-Yd0Cc&P*Pp%1w-p_7GJ%-`%1Rrq40^*L%z(TwO-tk+D}+(s+F7!C7+qqTc@un zD~MR55az`ZEWscFNF!jb+8BLH>X6%X%P#c#i8S41*v&~1Tm=|oR`%;z0Prn>{M zp!Ac)ToN^qw8UY&k4(ARGvmN&j3oFZF=h0LeXs=J#^1gb`u;pA_qUI%yljD4818Ef z#`=H`F$PD3D;P@3-xmj2a)ko#JHS(3zlkEpAPogmn zCX)|h?+KCkd~o=~Pn)>jy_LcwjvSa!g`+E10qJkXbc(bqymxkJgdv6$OT7U$wFLtJjL!Brgv^nw=8p&#BhA}RJKu^6z7Q5T_5Yh zvWDO1xU}75x-dHq-soA{7}1w_qqGbVsdzx-k5l>f-FJ@Qf_nKzA9voMm^$UVTJ)=o ze#_*?_)()ZwaIE8z|OmZ3l!oK#JeY$9#s!-g~T1L*2$ZCWF^?5C1=pjp2sDj@wYBf znhB+nsQNlCCFCTBlNOv%7X8pc@{+(LAn5o$A3R|Vh#>~+^Fv#k+JJqiaM1Nvi}lj& zI*)nZzi*1hFWMmsTr|R)>>JqSfgtVDw*T5w>F4kLvgb#R8$gDZ&h2_ow_9tlbz=prLFU_e`Vc@4rA za+!!1*gXpl=llp|?4;&=uFz%gb+CLydsfvF((zJ|%QV>=pf$*yJZF+t|m z$$MjDn>l@r6+ij}nyPA09+*)ZgoW#s=Gb(^SiG%A7DRqG9#0x>6tN!}aZIg4l|~v|=7Pvk6tpu%5##*@$wZ{d z_{fRCoF9UN7xvdHGRJuzO{^%BjEjt)&()b=CmwF=9Lc!-_577d*WDw7IV&294Tn$1 z)nND6-O7nvG`~9Apxv;gw<^hFaO7j6d{tubmS=*j#>Bn}JNvJ5Qrlt3yojxY4V<0)2Et>POmJ!*=PX;^kfQa;?Q#DK4XpqNpkMm35*20{ zJj}`AF2QR(kKL`yZiG}iG#xBA=kH}lFm)3cG2g#kvt3BlJIXwM!7d*? z0+v5)1jFE?fO$v}Y%mCM1!XjWKql4&aHGl02z=LWz~ZE+huxGU&<)xfi-?avFrAgGH%oyhe7&g!OrU7jn8NI_z)K*>ARt?aG}IZqL@4rc@C447J- z4${=o0i!@-w)ds&;cX`Tl{Dfmvx11hd?+u zTty(0>}6CVAf^aJjm42~5&&t-4oCzwl5$4<|4j-9U|4DRbzCbz9C{>5)!C}7tW3`I zaIbn&vKg!bVE3ee!fpl{SRLyqhW?mOZN*7RBR9v>odiK+@>m?SQ;R$)BS01-W*RK( z!%-uF!@3znOnUeMzO{e!_5=@^EH=oF zL1sxNF|d5M$GK;Ln~E6^kMG%3PwqZt2W_yM$k_o^1z;f}DuJ8;+kXEh7vj(hZ`i=W z{VxZVa+m^w@W{lmSeh_6asUc2K17omd4%hbGCB;1EO-f{%!vJWyIF z+ae}3bT7E_gJWa00#1z&vHCfJUq5?LLNg(b02uHrmjNV$KGoFE2!ovOwm67L?#wN~glzE_O1AUBBcbaUc;{GP6OT#6V(>1Y8Ajpgbl& z9l}ckq?b~0NtRr20D~7$b-J}7`L@8f&;^cF2pRdAAV4X0J-n-kpbq)JKALgzZNOfR zBA0kXRV)Fb>rxQ_at=c>>2nT<9X-3E+{U{%xQ=&6gKJ2#1;W{A)jG17Gy3Ir|8T*b zJAI`;j8)(c()hd!L`gNg7qj3pyar~Lw`;Mb6o>dh;Fkae6`O%q0S*!AunV?i-s*Pp zcG$&q^4xOZz2$704cw0A))I&Yq_yNl06F<@k#CPsHkwCAU_2p#DnVeSUN!ASD1`njkGVO=1@?K)o`KMPr$}go~?W3t>o-ucj(8S%*`O0C3DANO*zKZDb-2q&oU^WM9;Z}kje!B*V7l+p zs+_D!aqY7fBSjMfK?ORqxFYN%;HlY=03yYQ0nXDe8x|H3ZTE(PTd9g&?}6*!gsVCq zobt1hO*RAe`PZpj^p|)quBBcgc88Ye4PHCvfO5Yr|-xz&l%s~1GRgfJ`^^TVc z_#KVAZI0cAtghU(mKQZ)xvbdPmTdx{Z9LA;G*z>84EMd=yZD4Pe~{UV_t8LNr&6{n zYI)jB3aQ#$Oh-?^pTo_-aKDUIrN^ik3GZ`%TfJOhP1u8Aft1tko>IMq6{#z#^Nzam ztQM_me!Jub53go=iR7hvec5^D1DBS_+N7xH=U?{E=H?RZM1@vGPc}&GqWp&f)QQ1j~JL=*m3WJ9}6O#*$o#5APWED0#F=gaWN%+;>O5L;Xq0^&_nyF ziav~p-DC*@4+jdVB`Yj=q7v7Oyo)HQtQ%)ft+20N7!FZ094#WEqSbVxO`4=F>rRTQ z>FAI_2H0}-vUyl-V8D`DA@aSZhokp&W4)VS%USSD18^4=^`yMPj!Zi{oneRqA$ub- zas)_APQD8lE+j@15IV|I!k3MUiBW-6mS9qtT9EA$@M3TEd#8Stlmvn56j@{~1HuN+ zw&S4R>0~)3%8hreBfkIo&_0UFgaaZS;{jHg4Di{&2CINmSTt-(dI(oqC5?0@bsXJ; zgSJ^|lwpMTC;N)ZZhU5>992V0+&9}Bwzly&Fz~)d+^2^^+WR02ehnj;jrbU_epAEc zC2J-)pwzD~`-~<_6)Iqu43Li*jLJ@Q5syD`gyb8@Z#BiJSXkqr#6bSSJtGCdF@Lhxyz2rE?9W^&b$TRKNS9M!Q!7U-7z>Lp0}r9mAD_{$n(A51>d&YwZ_WtOXJRv z^Va=2NfWuYPEI69>wO-F-5EPi$kJ7-v@MR*LzZxTLvR@>7ZE~DP!veaMBCO(IPnlg z7I6&IS`@u-$%a9)iGea73m(>Yw}|>hEj%`V_%!;EvRShCvzjj%u3;Pyj{o2QOAR=Z z=;FrDm{CJY|7mUBwUoyXr(&h3b0<$3AYiyN$8e)aDohEaf7{OBa;Gb~Lmmz>oGEZR z^zhfHu_uBiH3j&s!;lii;$R@-0}!1%?fJnssKh+r{+&A~$Ji^DFK-ZOoCJ@UXJ0!} zDE<8W(mu8!18)Q!5eLNzEdh$9gIbM*bYvh&hZJsRgOoc?N^x=V`$)DW>xYF9bc5vz zKNT3i#-fY?=}nI~neZN4CMZaDZc}Kx$wUeli=w6AMZ%UFA{ig7e3mU=9)%1#O5;U7 zG|`W0k_?mJ${2&g+iS~|)Vg)@@Sq}V3Bb*L@25yP3)U!J*Mo{@XWPITNX3VYqKdFGOI;8AKNr|t_C+ZxD0ra>Tkw0$*cb|Ln5?yqz|LOIU?u+qtwL$qkDxn z6JmhZLvk4XpVQNfS+FYQh`E2ci2%lUoN%PK0x1G+LAR-=#i}#K6vwf3h>{KI>7w*5 z93=4PBO+CIcQ>dQGtLZ75m8Y+Uy)M;M(V@(q+A_hwt?DDtWv5ID8LuDv1u1&C87xV z1=SgO%%bY3Bx^SaBA~GEK~t8zd+A#3(Gcq7{}pYU2z^Tzx(Wh?nY>a}Go&Jp;aB<= zR=Ho!kbODKqQ-&OQW&iTXl7~r4xM2*%YCGWFT826rrnk{UrY-~??7Iq;C6BVM1$>` z(Ko<_BtddF0;!_{Y#O5ZkM!27tzEm;YYTf4mfz7Rd%!~Kh6dRO3^d#}NtpZ4b4Qvc z@K2V)NgQP?r1pj={E5i|g6Bi5Dux%H<=*MsJACPavoX{mV;0A44w=UnYxjD&j50ysLEmVdMQi%+Ysf`fMqJ;L^k(75|a-d3k z7FazyCPEjE_ByT<6hC>V;l(S9(q3(GH8Xy$l6Xb&mVf0r>Y=9_!c9)jEzL%91@cuO0?2VZAt>8TCqo(1$Q)%%#%^EH<$3IM{ zGfQ7rd%ONpwORJWbZ)RoaK@TJ6=IC0| z3L}8H`;sdPr1tfi`x2$FPM)NmLcAThQG6Uk0)#>=;aKPy$p+mrpLrajUc4^l$>TG7LSD zB+h+2iPGT3TGK#GAh8@bgU=6Tm*c*6%;XsrINVv}rg8bEWG51`GZ37L)7H|dToQhk z>+i+Zob(eSFI}>CM1=To$k)kNES)a$GD8x27YgyzzI(!o!tXGSAp)sm2r61jYRPHS z8v)T#UNzryPwE$J+9U826+uS@8kgqYi|v=P(09*JOF@$r=!muE=dTP2B+d$q)u>Pg z<&nKrRZ$fw1Z1sDL2Qouj5(i1p?0Z68Gk10h$w@+mq{!|Dbo1WM2Gxf&;LZTDeUB3j)%sSnX4RU-LsZ_t{Ac*>_R=oOTXQWT|1k6eHhO0zzFrzYccIh1BpWZ@hm%eUEYNOM4*7}T>6;j{1g6sE!{Hm&}+9LTZIils15 zV0{qZAJ#x8;4hq>n178W_U1_~-@jK|f2qxj-l<8!o zjoV6m7#sTdk>tkYUq-t;tuX!bsGJ-IKQJ)QX_%c(2ha4UFP$MA(D_s2_il$eWC|{y z)hGe&u}xFiN$mw0KjMs^YUOo*#9nTpd&UHvQWUOh90kq7Car1O2x^TPDKj!HI5<-8 zB5Qs|df`5K9Hc<1WtqG8e0(;Cr1t2Sw=f)EMU&GsN+K$No1{d{=rV-=)nECnlvWZKK0z(d@NRwG8M~e7$jNtlpLAZ^=A(q^JtfYS0}kc;;Nd_ zmf*2Bu5<_;o!N^&e&qRUczlQ29#-Fp=CUDSi?4>*mT82M=DPtXVocH>Ic!Wd2h{Vg5A81%!w zmK3!Hoi1i?-4?)jYh-xSwpN_?!4WS+sGDG8$#`G8(SM<$_juh*Njx;MZ*}l3!`gZr0(lf;$`dim7 z*=NkPBdM`;*Y|uPTV5+OFHbS|or-6!at2RO<$~T$jg>GHNRFKtR5z9ru2BFn0Ck>ff>RZcSBEth6C z2qo9|st8xse?(UklaO!}W4W|b3AX{cYPZkxL%o*yaR^1oJ$pVz(Jo_ZZRR5Y8S2dupxJlN>&?oPc3 zwsV4Nn0kPBP(NEv{Q}qWolgDgFzt zK&Q49tsPn2X8md|@16%+Qic~wzV@^3b0u&Jq*YL2#Zlj{}t9)zmUojW*%S=g+T=#ARHIe&l*L zc4f5@J$_|dI+!NC@p^8UOUEpA^S$$`fDQ+mTe zOWK#M+{iF@=k)Qk>5TSQ-oM#qYjCY$QOK;lYN26+G8IX7F+NsrE1KoM^ei{d@OvV< zPOB+QC+_gX&x$HLwwG#_pF1BVEU}uM;mw@Zcr)MI$2;1pPjtxot7unaxcs9q9ceA| zGr?A0`$S7(^E50Rt0zrPPnLORq7Y>&6qWnzewDh8^ZOIqh4;PHLfgNes1EZ>@6V1( zW(lZ_DZS2oaP$o0iN;M9uksb+hQS-jyo-}2Mjj~?-r}o~-ajoDeWeN7CcZk+qx@-t z<=3Dga#Ij1II|kHxvX`RUjA>2WizJYLLp?N**?ihhc@5B$I?ZwP=o>n%iG zjhFE6bu9gzl-fWppzC4L1>$eL$S+ktc)*9v=22R!{Iws-;oNJXRlWlSEku_Xk7G~} z)Vu!$m4Tg8Y;TFO$eQ$kUuj(%EL+wB$J76M6J3Ovfsq#8vq z^6?s)eh0gO&fxPUqXPwN+|6g;9Nni+Gcl#Ymbz)fhUnu=dkuF0>W>9V$)D2B4$tmJ z2%w&b7hU-ymARqBAh!Mv(*heLNlNrn`%%@B4iEmRX>M9MhDW03^wLKbqDUdLlO;OU z$u37)a2HCJ>o`WaTs<4_&$cg?S{bB%y$d}#Dcdoj%9{TG(0P#NQLDGPv1vU*NH-v2 zHT>=%mc4i=i8971pKaH!MyX!Q@mukT%Gvla{bozGjIIaH2J!|+e3rE|6PpJ$k5CSw zqlU$+CXJk1$o%~cG#;c$$TyKrahGMMp{`l)zzN z(u#oPRPZ4pD%l4dFc45Zc`_8|p)tP?nj;_$2M-@+#|dgVL5Wo7X{cEcB&lzoXuSX0PZ-o-huZYZFV9<n)*Af9gMS zLVfD5bpHh2mztWIQeA-pTsG5>_Pn~cz@iy>0bD#s`u;d&@!bcrT)Dq)7fDxLO zmI-})D?3MgJ!1l_e4JDsRi2$C5VovrZDx%#`&RB>rye-j+&N}7QEl93VSa^exDGu& zv!prn`IBpVenxQ6A(f1~qeh*aeCyS`D$32x%6+=hT6xEOLTwvzcRAc#sA}aF%hS1h zvm7f3xbCv*%#1XXj_%QxX3xjF*J%}B*j*hP)V|(kz;mtm)2vOBL%&;P6p9xo<;@M^ z?zieGUwdNnPh;`f6++g^`Q4#*zAClFw@o1wMSRLC=93H&US1@w@ zdu%0#Q^Y@U?K6Hi+Yz4JB>$Na7>9(o7nliGPgHkmN^XA7h&B}NvkdgEw`A3JMn^|e zpo)NOU~_FS#5;hucv_9QluEVl6niIqwp;!ob~*=Z%4D90xK5`${ou{zs7rlc-^IAP+J5X}E;Xpb2l9^S6$X!&|u(J?KIOMxLuF5zEHuLCAQoP2;ls>Wk=nYgPNO7*r_8{B+Tr&+ zRFbU%>(x6WT3WiouUu75*JxpZ(jEfWo9a`U1*800vCJ&nGXdK^~zPZ}*ZCYA?&&Sz-a*wnbJA|aL4x69zXr**Ao zxUNy0?Upo~*zZ^UdL;4M4|k1nJeitS3Qs(lC&YO7>^Z3X^zfQ$&zA)iKN(MsE%H-P z^pD7S_VV{o+jXmyGz!IRv)`B{4zrWxAMM)R$lTY;T;;RJ*5#nC6>GR_aYFm|KA|?+ z8OP_}Ue*(b4yl!<4I zk)D-deXE?!SG`LdO$^8~a?`S4i|l3U&NZ#NGph4so8tBr(cSLxP8Rs7-$0muvCY}+An86mTG=Ysibs5b|B4f4}4 zgZuzVizpDL>Ms`nnT9;dgWyaowX2Ey+CV9z^cPG+9W^eJLI>On-7+c^fKT7UBF}T1 zvfS4OC;gr3IjJRI(af@E$D-O!3r+s(lao?hN=&|3wvppacrq?@R#qstd8&VpKAO==hgZ1tExmrUN2udExAt1O>WH%o^H~rUx>1WsMFWGTH;myw5W*QZ< zcH7U>Xc5#h&nv4GQX{#0PekZrZrr7f`R116Mq zDpkX7j?JgXnp%l(bTS@w#MhClKV~%StJ%Qf%`s{u8wX0Z^3bZRHR9%hJ>OGH)(fOf3o4hgE0%%nY@gbGvparB(OgKAK)z(K}If~JNxe#)oZBTL;1W;f%%#Otr02O-j++(LtpT1N<^ z(M#~Sl2i>5LV7jVuEiv}S6f=2t|1H*v9H9o$ZBQvOQ(un*^G7+n?gKh#*XeGlA~jb z0QBLvry3V6$44Vl4W&I{#r4)yX7q%N9A}H~#K>hGCJR(q0su1;*0(rl#4*v1KUC{D zi80E9raXSx9DA23La%Xs6YW+-TpO^CtSnMv%cXbNhA`yE&oW>2UJDk}s4dGo4F7rA zyL`C@aTbMrv$-z%Cs-@6^IDuAJag&Snz&#Cd2_F-Z6CVt@3%o(I@U0nZ(sW{pIY<& zI;Z_?aohHRwo~yX{O>v=Uq9lC>`#7cJte1A(xPHG_4Ke)UgrJ~G36w?%!Q}D|IE_} z9v!s2up&DuFH)y`#b&3tlbu=}o66MsttuK4J=6`3gW^7Ga{7eWQrw2J)(G+kjxxTeYwJroRH8I8(NI;#-s0Yc5#6ZahgGXWM%a&*ytyqX3jUGTq*&_SN78n!t$Bf7ReD6X+Pj92b-{LIeAnvb1n8+C9jF zUpjFMuw1L)N04fzKOt{J^e7$yFD!3#!Ck*L^Kr$OWM*Sr$J2%})-b$1x^d8A~Gupy+`R zFRx$F!(^$rq_+gWRaSO#3kE}qU!Q3Ng*#7vAhXiMT)w!aQ!gel)4X_8%H9=I1#@z8 z1@bFzn)Pt1pr~lj{~2uLqVpJVK&+I?*bin3Hj*GsXS3b`ip616P^uOU=;4x#iX<%y zz1l>lUsdYc68r9ogI*~REl0N{7M%V&(P6Ff;yhArp2U*#Yr zfMD78_HE@LZT`L!HeRe(N?zyOZpwBHfBqW5D z*&{;a0K)mf1`wJVj|F&QY5o}yFgt8#aJ9QzD>J}l6Qb0gZM@axax*ifXPr~JqPWz8 z(Cd0$=U4My$(lWtVbm5Kd|SU>Uw9YZoHVIP@7~Hsn*1ei9=G_C^c(P+Z+g11yS{U&!Jt6KzO16c!W0LNCebwEUFg`- zY57zG0|o>WMBv2346}ag4jO&j5 z__^Ph2m^kE&7^(t4ID{9u8Gbi!9wk%Hn9{&p3?2pb zi9=NW;(!N5Mh71=-=q}OOjH3WBOcdm(hL&W&Lh(@Gr^=FLkW5WoI-n^3Fv49ky%v>f=Z%E-yxEvfNoxDJ_Wf*tl`y5nL-w)l&jY zP`@9uwhAELn@xUd6o0!J9;vWK@7!(HAA-JC!VJ!ii-WI~HWF zA*(Tu00z!x@PK`A)?2!BbOaY`!x5$_w;0?eYjUw`7;Ew zKNKyjj1K=pIpSX~Ffo6sI*b>AMwEofBilJn13s1Dv5SG+iiu^^bsgkE^HK>A#F>b^ zmBBjW`s-J~urjf@yO~I_Oc*!s?$DI6ubUXMgKg%_b6v9pbTah3?#uPf zp}%;qmK9<&NPPKGcsg&BQcZJIM{9qqLF*g`CEtLh4GI0yb#pGpOH7(i9sEt@c8!kT zxxHWg^A4U)`okyhw#Vq1kczkubNHH*65SfT5|dr8iHL96``0Boow4}#y|wY-uEH&A z1TLqDcZVL;(8wH#JH|7Vm7)DSA7GohS%PX(7vE4iZ$-r|ZJoTnN0|rG?&sZ(R_wHn z$qm{s*?+^-HC;~4J>*{4gFp6C)4RMl+gL(l(|~&HPmZfK4EFiyNDS4ilODAlmkGHL zB4TLWsb5)Csqda!sajo<|BhucuqM08+HN?y&16a64fw8VUsmXJ+_ci*0KsZduuUow+I@$ zRNhp*{_`-0p-^o83p;afJYs0AP56WHaQkhiaf~88$jn^iEpfnP z(8L1;wj$9UL6`4AB}9{TG|WN_Exof>iNZWJ6!KLa$1!ZNAgzeTgGlyI*nar{n89Sx zGGsRjBCO#aq6PpPaaAz|O zb1>FQIaAD+h(u26ndQssv6^nK5c5IkW&YfwZ&V|{5DkB@y-47438i^rejvI)C+8PC z=0qDvt|XSIC38g*3WBEyZ)9Q=Q$}bvSd3&SOZ+j4n8L7W9N#A)4;E-M|3Xw1^imkw zlczULHqbFQj(*|ZJv|9lj}|OeVftrwepw5=Q2`u9V&Cc}4h6X@g78PgPfQwUtc_nI zy0WXa_4t64RMZ|Bi#CiR>3b261Qz13@vFv1pzpr>^Sdh)HAj|~Enla#sHnn)3mko% zS(V0(bokA{C_rh|$!)YfUa8$O3B4EDKf)lh;g%gJnS~*#A+1c4N&jvJcjJ7oVmAV5{fLi9|VOOm(+LyCaD5|a^Qjy51Wcx@lxWo*D z72J$rC(0g&d~Rt8kunnvw$w@PS-eO!oUsZ7(UANb4|}dI2Q3nHq(~EpXlajJ_^(XG5e=GkminKZW;}RIzX3$Nv%mBC*$7wSSGvD+fc9k zHYUp!yU$2>TzC@)A930m9KcZ8EGw%6%)v2JY{wGLrvczH6b7+1Z_*a##57_fxEYeA znM0YAY%Xg^RqKc(#;0g;Ex=5m1WR(<0XAQ^=Hms7;Xp90sVe@CD{vMDI;JHf@PE?N z;zuMiNuR*H!CElGw|BJWy$80Rx?g;py7q~m)vgPFHqba8Tljpo#?)xkaW(B&kwuG) zru$qRj88rM;aKxI$5^xeO4a<|3QWIV-`(K0W1n$B^5)kNvt<}vDRjEs71uba%4~Mk z6BKLQ%2;U89iP{@EE?SY;Wi&j4L*LuTSal!M`JXjSF79Y5j%KwZrv?T^V$=N(%Nx7 z!<^MU_S0@bx@JvDJ~y&+WE-@0^*66QVr8Xz^|8X^PSfdYnNCL1sCpv?qMn@5N4BO_qHyYvVwrQlX~2JCckPHD}rWOWJ*{FBxoeWCSVK>+f}V z`RNsi&Ex`1o_&bBqOfZ(Ql=5*ZyZ+{XV@97Rmr(b`-ARYTfD_78H~1PlDjddX?r9x z76n4neAr*sA&xv*p&=OiGeldB$-a{+{u=9cgre$jV|ey;J$Xi+~(G($Y)q}U_g@G(DGqEgx18GGcSKXEbrgn-|qst<_sAN zgy~A`Q78FpvHk6y=uOV-jtbx#o*L2k#J>6tR#}>)y#bS*ndCN%01t$fwk__rdOc1u zCS1}Wxj(8OxNXPcCzTDI8Q3t_GH(3w$IK&z5*_;dy0oLJeN$0uG1vD7Ly++G%F0i( z-Y0*VBCa12#}L<8)hhWwvop-S#vY$d1eX(=A7!*ds&*XvavM%lkP20Z(vLGH)osd! z{S>b09Nf@!_JD4*I|eMNuoMQYi&RBJI*Y(~Vy>;};Y|T2L=|&3nmyu@5jqOpi4qwN zqeh+)0>)L+Ey38Iwq;s8?2j0cS|Bro=TtqgC=T9>ZYxQgk33OdO~E1(zr9!hU4OyD zpFWXb4J;}gq5ElQ4OM)h zNJ`aX3DeGz=si=6hYxS%)i}tdE#l(pnJGEwQ^4m}KVCEONsiw` zsLWj8c|deLsk4h_agF>ny?TYeooimow%Temk*utKSzY77hPXR+2D}nS)m0E5wQB-xF-a&5H& z^NSGdg9opob?TkX#P0ytLKU5e!1IMD{0iT^xr@>aYfHdjGdGtBfD8?;#+;dGp#AL-tZT7PD=506Hlrgvh!=gIu z;35ylny6f+rKNiu3;ZB38ZbpyMRlw{R~zIDNJr<+n^*JcdlOANe%n;=hkNiPz|uGl zjuQWfK+U_8=--=6=6&}a8sM-J=Ua!uX$l0O=H0uKuxSje9XiPw(?Yrd_OD|Tt_~(T zhM4W(9b%JjIG!Fa2ISLQ)9qJNUOyc0FKh>9w8MY0n=%l!UcScyS_y{_uYbhI90qbp z%|*SKPG3zF4C+2{W~v`A(Dim?(6E{$PuRDbyK|v|ID(1@%33|G6A-V`XrHJnbbM3} zJYHjn3}6;0Ue(%>*_Z@QjOoH95M+&6o$B!SA$G4c2w1YLZS02Sb-DSXHTIbGv7Iw1Y=321`z2}`k z^qwo8kDQQbF0@GU5^|pFQMLQjx{Osn@JX2jEAR-az7GjjQ3-MDnX2uyH+^Z__r>y> z?6K^_eFcAN^z3QYv{DV5mpvr*CEX%AWFTPUmD{(sPMo_2%|Lm_is_yTM~x5d3SNg2 zAP6>_4)~lagk+i2+9wID8yWl77W29FjU4#2jag!lG+B{tS0)mh@Z46}^8K?7fu4J6 zU87nyCvAG9sFigJu8<<#rOF~Zq>kkTJN7POx45Y}2dI@W&L{N1=_<;$(oRu`VK~+2 zl981qJ)T=7tb4p(U|5o5^k6t*noChICUa*+ror7k?cZ58~Qt00vv@NS&sY zm6fCS!gw;{PHf|PwhYs9b8bh-bO!&tlqkh)AZd)rWH5FuoB+p60$EYuZc3Yej{F%l zG5P1ds$Ldj4vJKc`~}vIY1k}p6pA>t!o7!GP%s+Z)3Y$b<=nYIha=i?EmFhhCnm35 zi1P3_e9!78_tf-uQC-YeOFyr=)h)em-##$9ZMAoD-lJ0kURrI@V27b+(eyxT>#4DH z2Up+vRX`uXvZ<9(q9c{1zZnvt_)w-d3@Tum3W(&b)mIvYkmWtU)Z0_LDO1v`=ZBZI zW1mH|MLt)JXqP4ZAR z-MX)y+r9khgSlVQE2@L6)dw%7%G%gkt4Ys)cJPB2@85=y@7}-f>q`XdP#N4Sh<0kA zY5ss`5bY+Nf^bWqc2hq!1m&zbF%K{Uqrw`c2)t)$2t!a8wi|oUzNA}KXZ_0+=vjut zM)wfUWoyiP&Tu__y;%L)l~p%YQ$@aA2q4 zsNn9m*vV7pyP3Dpdx>Ec@r$M*_TmuF9_R07FhWUYg`E+dQWYfGhqIi?Jsrx09vZ+r z*mim;BoVmV2z*jUmW2!Wk9>L#YyS1IxVC>I2B3r19$;QIjC_xU9e35()cO_ z$0OA(0b{2gur+BIprUez!b#D2%N!km3c-DfW7q)s-i&8a-8R7V8__e+fC@XV|H(~T zc_7>2ld+9J8|t6=Zv)G?ZJMi6Idw@54#Qd+eo9JBtGQNex?E^ewqgAN*Wb4GFWmRz z!{VhsHYCIb;M3WZ09@+^jf076Z9_!e$k+fbyU^@zL1BUiZDz70>wLZIs{?xh+E9$Ei`g{{sWj&?txN3#jLDd;h}OLeOU0x^LVj zpPqc6w0_mio9&e%N3S%0Rp~cqhEpV%t12zIgO7oBd9Rj9a2=XKiMl<3s{EtLWBCC&kEVhKg& z`i>@D+n>F>`HdIlGh=_Jo-K^HxERy-K7o5`j8nIsXI`F!B=4w3lwEUF%OZNWrd8uV z*nIlso5#z>@8gfPieB(~^F44?FZsVx3zwnFUN)#CeoPo>t~HtV}W8XcWQ>Mm!mDHpE~KN=|<_ZD`x2R-u+f+bfYqkLlT z@0qFn8yIkh%rc!*bjAgxl)LsP+I>>cx;8{+0VaKvR3aRjYlTwH%5)69Fq0ov^`8oY}mSvWv!y2r+g*-{VyJI z%p%XiUAgib6g)XbZ$8=8RYa9&(S9?=|DVK6Px}{|kT8|NH6wmw9OZU*C#p_nl5jzg4e#dG>Q&X}!)L;Y)6QzPe=5 z%U^yjxX64xzpg{B_a6U`!#tP0z5n=GO8m0pTGMBXjSjqK{QQ&2>!okxl0^%)|G8kf zT}{E2UCKj_7Kw{Kf7&ne@E=ygD#!l01n)2T=i+Ps{U3F~-v4u6X7xzLxxMlV!z=a8 zxXM3ldoS)Uoj&I+^rg4!uM89J4x|gcNw?N{=lsJ@BGO9t>^6sd;D~u{V7NU^ z^WVu^EAE^j^FsE&Uv={KdiSpZy1c>duQ>4xuYufMcax)iDkX~b>;iHJCT`3zInx$Z zX=Z?+hMwYAU%rg_djIna%+lLoC#048b(e=PkI}9*8{Pz8X&+RPsrU4r$W^X&=+4}l zE+|(zWw`!}Nn2im^|WCQ&wu~!x^VgVqsGo=?zyt=yL`oh6xeBIY$>J6w z1|5sW8|dolt~&V-%iLe1qs)NXRHQKr+CCi%&9-@HJLs6uI5u@GW{c*$|9ba}FSkv| zI7{&5jNBaDb=Ow>WK7_PppDuQKm6BEaNRU&I!B2H zjjpNo_{Z6K(_;7`?|;9ZOHOY8KT6@yz<(A#8#ny3f-3y}AI0uP+y7%;)@adv`t4Jn TU2IRfY>b1)4zTv0y!`(FEoG&K literal 0 HcmV?d00001 diff --git a/assets/shared-identity.png b/assets/shared-identity.png new file mode 100644 index 0000000000000000000000000000000000000000..043157be3a8d8559ef9409cb63ff13ed8cdb6412 GIT binary patch literal 73288 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 VD_X)81=F9Hne5&!F#hiNzW{5lym$Zr literal 0 HcmV?d00001 diff --git a/dist/index.cjs.js b/dist/index.cjs.js new file mode 100644 index 0000000..ffa1741 --- /dev/null +++ b/dist/index.cjs.js @@ -0,0 +1,594 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var express = require('express'); +var bcrypt = _interopDefault(require('bcryptjs')); +var qs = _interopDefault(require('querystring')); +var uuid = _interopDefault(require('uuid')); +var async = _interopDefault(require('async')); +var crypto = require('crypto'); +var oauth = require('oauth'); +var cookieParser = _interopDefault(require('cookie')); +var fetch$1 = _interopDefault(require('isomorphic-fetch')); + +var authMethodsConfig = { + citizen: { + low: ['iam-aprofiel-userpass', 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], + substantial: ['fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], + high: ['fas-citizen-eid'] + }, + enterprise: { + substantial: ['fas-enterprise-bmid', 'fas-enterprise-otp', 'fas-enterprise-totp', 'fas-enterprise-eid'], + high: ['fas-enterprise-eid'] + } +}; + +const ALGORITHM = 'aes-128-ctr'; +function logoutEncrypt(text, password) { + const hash = crypto.createHash('sha1'); + hash.update(password); + const key = hash.digest().slice(0, 16); + const ivBuffer = Buffer.alloc(16); + const cipher = crypto.createCipheriv(ALGORITHM, key, ivBuffer); + let crypted = cipher.update(text, 'utf8', 'hex'); + crypted += cipher.final('hex'); + return crypted; +} +function getHost(req) { + return `${req.protocol}://${req.get('host')}`; +} +function runHooks(configuredHook, req, res, next) { + if (!configuredHook || !Array.isArray(configuredHook)) { + return next(); + } + + const hooks = configuredHook.map(hook => cb => hook(req, res, cb)); + async.series(hooks, next); +} +function parseBody(response) { + const contentType = response.headers.get('content-type'); + + if (!contentType) { + return Promise.resolve(); + } + + if (contentType.includes('json')) { + return response.json(); + } + + if (contentType.includes('text')) { + return response.text(); + } + + if (contentType.includes('form-data') >= 0) { + return response.formData(); + } + + return response; +} + +const tokenStore = {}; +const ACCESS_TOKEN_PATH = '/oauth2/token'; +const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin + +function createUserToken(results, refreshToken) { + return { + accessToken: results.access_token, + refreshToken, + expiresIn: new Date(new Date().getTime() + results.expires_in * 1000 - EXPIRY_MARGIN), + isRefreshing: false + }; +} + +function getNewAccessToken(clientId, clientSecret, url) { + const oauth2 = new oauth.OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken('', { + grant_type: 'client_credentials' + }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + return resolve({ + accessToken, + expiry: Date.now() + results.expires_in * 1000 - EXPIRY_MARGIN + }); + }); + }); +} + +function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url) { + const oauth2 = new oauth.OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken(code, { + grant_type: 'authorization_code' + }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + const userToken = createUserToken(results, refreshToken); + return resolve(userToken); + }); + }); +} +function refreshToken(token) { + const oauth2 = new oauth.OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken(token.refreshToken, { + 'grant_type': 'refresh_token' + }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + const userToken = creatUserToken(results, refreshToken); + return resolve(userToken); + }); + }); +} +async function getAccessToken(clientId, clientSecret, url) { + if (tokenStore.token && tokenStore.token.expiry > Date.now()) { + return tokenStore.token.accessToken; + } + + tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); + return tokenStore.token.accessToken; +} + +function createService(config) { + const { + clientId, + clientSecret, + url + } = config; + + async function requestUserWithToken(token) { + const response = await fetch(`${url}/me`, { + headers: { + Authorization: `bearer ${token}` + } + }); + return parseBody(response); + } + + async function loginUser(code) { + const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); + const user = await requestUserWithToken(userToken.accessToken); + return { + user, + userToken + }; + } + + function refresh(token) { + return refreshToken(token); + } + + return { + loginUser, + requestUserWithToken, + refresh + }; +} + +const EXPIRY_MARGIN$1 = 5 * 60 * 1000; +function createController(config) { + const { + clientId, + clientSecret, + oauthHost, + defaultScopes = 'username', + scopeGroups = {}, + refresh = false, + hooks = {}, + basePath = '/auth', + errorRedirect = '/', + key: objectKey = 'user' + } = config; + const service = createService(config); + + function determineScopes(options) { + let scopes = [...defaultScopes]; + + if (!options.scopeGroups) { + return scopes.join(' '); + } + + const groups = options.scopeGroups.split(','); + groups.forEach(group => { + if (scopeGroups[group]) { + scopes.push(...scoupeGroups[group]); + } + }); + return scopes.join(' '); + } + + function determineAuthMethods(options) { + let { + auth_methods = false, + minimal_assurance_level = 'low', + context = 'citizen' + } = options; + + if (auth_methods && auth_methods.length > 0) { + return auth_methods; + } + + if (!['citizen', 'enterprise'].includes(context)) { + console.log(`context ${context} not known, fallback to citizen`); + context = 'citizen'; + } + + if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { + console.log(`${minimal_assurance_level} not known, fallback to lowest available`); // enterprise does not have low. + + minimal_assurance_level = 'low'; + } + + if (context === 'enterprise' && minimal_assurance_level === 'low') { + minimal_assurance_level = 'substantial'; + } + + return authMethodsConfig[context][minimal_assurance_level].join(','); + } + + function createLoginUrl(host, stateKey, options) { + const query = { + client_id: clientId, + redirect_uri: `${host}${basePath}/login/callback`, + state: stateKey, + scope: determineScopes(options), + save_consent: true, + response_type: 'code', + auth_methods: determineAuthMethods(options), + minimal_assurance_level: options.minimal_assurance_level || 'low' + }; + + if (options.lng) { + query.lng = options.lng; + } + + Object.keys(query).forEach(key => { + if (!query[key]) { + delete query[key]; + } + }); + return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; + } + + function createLogoutUrl({ + userId, + token, + redirectUri + }) { + const data = JSON.stringify({ + user_id: userId, + access_token: token, + redirect_uri: redirectUri + }); + const query = { + client_id: clientId, + service: 'astad.aprofiel.v1', + data: logoutEncrypt(data, clientSecret), + auth + }; + return `${oauthHost}/v2/logout/redirect/encrypted?${qs.stringify(query)}`; + } + + function login(req, res) { + const host = getHost(req); + const stateKey = uuid.v4(); + const url = createLoginUrl(host, stateKey, req.query); + console.log(url); + req.session[`loginKey`] = stateKey; + req.session.fromUrl = req.query.fromUrl || '/'; + runHooks(hooks.preLogin, req, res, () => { + return req.session.save(() => res.redirect(url)); + }); + } + + function isLoggedin(req, res) { + if (!req.session[objectKey]) { + return res.json({ + isLoggedin: false + }); + } + + return res.json({ + isLoggedin: true, + [objectKey]: req.session[objectKey] + }); + } + + async function loginCallback(req, res) { + if (!req.query.code || !req.query.state) { + return res.redirect(errorRedirect); + } + + if (req.query.state !== req.session[`loginKey`]) { + let loginUrl = `${basePath}/login`; + const fromUrl = req.session.fromUrl; + + if (fromUrl) { + loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; + } + + return res.redirect(loginUrl); + } + + delete req.session[`loginKey`]; + const { + user, + userToken + } = await service.loginUser(req.query.code); + req.session[objectKey] = user; + req.session[`${objectKey}Token`] = userToken; + runHooks(hooks.loginSuccess, req, res, error => { + if (error) { + console.log(error); + return res.redirect(errorRedirect); + } + + req.session.save(() => res.redirect(req.session.fromUrl || '/')); + }); + } + + function logoutCallback(req, res) { + runHooks(hooks.logoutSuccess, req, res, () => { + delete req.session[objectKey]; + delete req.session[`${objectKey}Token`]; + const tempSession = req.session; + req.session.regenerate(() => { + Object.assign(req.session, tempSession); + req.session.save(() => res.redirect(tempSession.logoutFromUrl || '/')); + }); + }); + } + + function logout(req, res) { + const logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; + + if (!req.session[objectKey]) { + return res.redirect(logoutFromUrl); + } + + const token = req.session[`${objectKey}Token`]; + req.session.logoutFromUrl = logoutFromUrl; // used to prevent eventhandler from deleting this application + + req.session.isLogoutOrigin = true; + const logoutParams = { + redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, + token: token.accessToken, + userId: req.session[objectKey].profile.id + }; + const logoutUrl = createLogoutUrl(logoutParams); + runHooks(hooks.preLogout, req, res, () => { + req.session.save(() => res.redirect(logoutUrl)); + }); + } + + function loggedoutEvent(req, res) { + const { + headerKey = 'x-logout-token', + securityHash = '', + sessionStoreLogoutAdapter: adapter = false + } = config.logout || {}; + const token = req.get(headerKey) || ''; + + if (!adapter) { + return res.sendStatus(200); + } + + if (!bcrypt.compareSync(token, securityHash)) { + return res.sendStatus(401); + } + + const accessTokenKey = `${objectKey}Token`; + return adapter(sessionKey, accessTokenKey, req.body).then(() => res.sendStatus(200)).catch(err => res.status(500).json(err)); + } + + async function refreshToken(req, res, next) { + if (!refresh) { + return next(); + } + + const tokenKey = `${objectKey}Token`; + const token = req.session[tokenKey]; + + if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN$1)) { + return next(); + } + + const newToken = await service.refresh(token); + req.session = Object.assign(req.session, { + [tokenKey]: newToken + }); + return req.session.save(() => next()); + } + + return { + login, + logout, + logoutCallback, + isLoggedin, + loginCallback, + refreshToken, + loggedoutEvent + }; +} + +function preventBrowserCache(req, res, next) { + res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); + res.header('Expires', '-1'); + res.header('Vary', '*'); + res.header('Pragma', 'no-cache'); + return next(); +} +function loadRoutes(app, config) { + const { + basePath = '/auth' + } = config; + const { + loginCallback, + login, + logout, + isLoggedin, + logoutCallback, + loggedoutEvent, + refreshToken + } = createController(config); + const router = new express.Router(); // warning printen als trust proxy niet enabled is? of standaard enablen? + + router.get(`${basePath}/login/callback`, preventBrowserCache, loginCallback); + router.get(`${basePath}/login`, preventBrowserCache, login); + router.get(`${basePath}/logout`, preventBrowserCache, logout); + router.get(`${basePath}/isloggedin`, preventBrowserCache, isLoggedin); + router.get(`${basePath}/logout/callback`, preventBrowserCache, logoutCallback); + router.post(`${basePath}/event/loggedout`, express.json(), loggedoutEvent); + app.use(refreshToken); + return router; +} + +async function getSessions(consentUrl, ssoKey, accessToken) { + let body; + let response; + + try { + response = await fetch$1(`${consentUrl}/sessions/${ssoKey}`, { + method: 'GET', + headers: { + Authorization: `bearer ${accessToken}` + } + }); + body = await response.json(); + } catch (e) { + console.log(e); + body = {}; + response = response || {}; + } + + if (!response.ok) { + throw Object.assign(body, { + status: response.status + }); + } + + return body; +} + +function getFallbackFromUrl(req, port) { + return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; +} + +function getFromUrl(req, port) { + const rawFromUrl = req.query.fromUrl || req.query.fromurl || getFallbackFromUrl(req, port); + return encodeURIComponent(rawFromUrl); +} + +function getSessionWithAssuranceLevel(sessions, assuranceLevel) { + return sessions.find(session => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); +} + +function sso(options) { + const { + clientId, + clientSecret, + key = 'user', + consentUrl, + basePath, + port = false, + ssoCookieName = 'dgp.auth.ssokey' + } = options; + const loginPath = `${basePath}/login`; + return async (req, res, next) => { + const cookieHeader = req.get('cookie'); + + if (!cookieHeader) { + return next(); + } + + const cookies = cookieParser.parse(cookieHeader); + const ssoKey = cookies[ssoCookieName]; + console.log('ssoKey', ssoKey); + + if (!ssoKey) { + return next(); + } + + const user = req.session[key] || {}; + const assuranceLevel = user.assuranceLevel || 'none'; + + if (assuranceLevel === 'high') { + return next(); + } + + try { + console.log('consentUrl', consentUrl); + const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); + console.log('has accesstoken', accessToken); + const { + sessions = [] + } = await getSessions(consentUrl, ssoKey, accessToken); + + if (!sessions || sessions.length === 0) { + return next(); + } + + const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; + const highSession = getSessionWithAssuranceLevel(sessions, 'high'); + + if (highSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); + } + + if (assuranceLevel === 'substantial') { + return next(); + } + + const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); + + if (substantialSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); + } + + if (assuranceLevel !== 'none') { + return next(); + } + + if (getSessionWithAssuranceLevel(sessions, 'low')) { + return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); + } + } catch (exception) { + console.log(exception); + console.log(exception.cause); + } + + return next(); + }; +} + +const REQUIRED_CONFIG_PROPS = ['clientId', 'clientSecret', 'oauthHost']; + +function validateConfig(config) { + REQUIRED_CONFIG_PROPS.forEach(prop => { + if (config[prop] == null) { + throw new Error(`${prop} is required config`); + } + }); +} + +const toExport = { + createRouter: (app, config) => { + validateConfig(config); + return loadRoutes(app, config); + }, + CreateSsoMiddleware: config => { + validateConfig(config); + return sso(config); + } +}; + +module.exports = toExport; diff --git a/dist/index.es.js b/dist/index.es.js new file mode 100644 index 0000000..43ec4c8 --- /dev/null +++ b/dist/index.es.js @@ -0,0 +1,590 @@ +import { Router, json } from 'express'; +import bcrypt from 'bcryptjs'; +import qs from 'querystring'; +import uuid from 'uuid'; +import async from 'async'; +import { createHash, createCipheriv } from 'crypto'; +import { OAuth2 } from 'oauth'; +import cookieParser from 'cookie'; +import fetch$1 from 'isomorphic-fetch'; + +var authMethodsConfig = { + citizen: { + low: ['iam-aprofiel-userpass', 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], + substantial: ['fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], + high: ['fas-citizen-eid'] + }, + enterprise: { + substantial: ['fas-enterprise-bmid', 'fas-enterprise-otp', 'fas-enterprise-totp', 'fas-enterprise-eid'], + high: ['fas-enterprise-eid'] + } +}; + +const ALGORITHM = 'aes-128-ctr'; +function logoutEncrypt(text, password) { + const hash = createHash('sha1'); + hash.update(password); + const key = hash.digest().slice(0, 16); + const ivBuffer = Buffer.alloc(16); + const cipher = createCipheriv(ALGORITHM, key, ivBuffer); + let crypted = cipher.update(text, 'utf8', 'hex'); + crypted += cipher.final('hex'); + return crypted; +} +function getHost(req) { + return `${req.protocol}://${req.get('host')}`; +} +function runHooks(configuredHook, req, res, next) { + if (!configuredHook || !Array.isArray(configuredHook)) { + return next(); + } + + const hooks = configuredHook.map(hook => cb => hook(req, res, cb)); + async.series(hooks, next); +} +function parseBody(response) { + const contentType = response.headers.get('content-type'); + + if (!contentType) { + return Promise.resolve(); + } + + if (contentType.includes('json')) { + return response.json(); + } + + if (contentType.includes('text')) { + return response.text(); + } + + if (contentType.includes('form-data') >= 0) { + return response.formData(); + } + + return response; +} + +const tokenStore = {}; +const ACCESS_TOKEN_PATH = '/oauth2/token'; +const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin + +function createUserToken(results, refreshToken) { + return { + accessToken: results.access_token, + refreshToken, + expiresIn: new Date(new Date().getTime() + results.expires_in * 1000 - EXPIRY_MARGIN), + isRefreshing: false + }; +} + +function getNewAccessToken(clientId, clientSecret, url) { + const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken('', { + grant_type: 'client_credentials' + }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + return resolve({ + accessToken, + expiry: Date.now() + results.expires_in * 1000 - EXPIRY_MARGIN + }); + }); + }); +} + +function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url) { + const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken(code, { + grant_type: 'authorization_code' + }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + const userToken = createUserToken(results, refreshToken); + return resolve(userToken); + }); + }); +} +function refreshToken(token) { + const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken(token.refreshToken, { + 'grant_type': 'refresh_token' + }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + const userToken = creatUserToken(results, refreshToken); + return resolve(userToken); + }); + }); +} +async function getAccessToken(clientId, clientSecret, url) { + if (tokenStore.token && tokenStore.token.expiry > Date.now()) { + return tokenStore.token.accessToken; + } + + tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); + return tokenStore.token.accessToken; +} + +function createService(config) { + const { + clientId, + clientSecret, + url + } = config; + + async function requestUserWithToken(token) { + const response = await fetch(`${url}/me`, { + headers: { + Authorization: `bearer ${token}` + } + }); + return parseBody(response); + } + + async function loginUser(code) { + const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); + const user = await requestUserWithToken(userToken.accessToken); + return { + user, + userToken + }; + } + + function refresh(token) { + return refreshToken(token); + } + + return { + loginUser, + requestUserWithToken, + refresh + }; +} + +const EXPIRY_MARGIN$1 = 5 * 60 * 1000; +function createController(config) { + const { + clientId, + clientSecret, + oauthHost, + defaultScopes = 'username', + scopeGroups = {}, + refresh = false, + hooks = {}, + basePath = '/auth', + errorRedirect = '/', + key: objectKey = 'user' + } = config; + const service = createService(config); + + function determineScopes(options) { + let scopes = [...defaultScopes]; + + if (!options.scopeGroups) { + return scopes.join(' '); + } + + const groups = options.scopeGroups.split(','); + groups.forEach(group => { + if (scopeGroups[group]) { + scopes.push(...scoupeGroups[group]); + } + }); + return scopes.join(' '); + } + + function determineAuthMethods(options) { + let { + auth_methods = false, + minimal_assurance_level = 'low', + context = 'citizen' + } = options; + + if (auth_methods && auth_methods.length > 0) { + return auth_methods; + } + + if (!['citizen', 'enterprise'].includes(context)) { + console.log(`context ${context} not known, fallback to citizen`); + context = 'citizen'; + } + + if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { + console.log(`${minimal_assurance_level} not known, fallback to lowest available`); // enterprise does not have low. + + minimal_assurance_level = 'low'; + } + + if (context === 'enterprise' && minimal_assurance_level === 'low') { + minimal_assurance_level = 'substantial'; + } + + return authMethodsConfig[context][minimal_assurance_level].join(','); + } + + function createLoginUrl(host, stateKey, options) { + const query = { + client_id: clientId, + redirect_uri: `${host}${basePath}/login/callback`, + state: stateKey, + scope: determineScopes(options), + save_consent: true, + response_type: 'code', + auth_methods: determineAuthMethods(options), + minimal_assurance_level: options.minimal_assurance_level || 'low' + }; + + if (options.lng) { + query.lng = options.lng; + } + + Object.keys(query).forEach(key => { + if (!query[key]) { + delete query[key]; + } + }); + return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; + } + + function createLogoutUrl({ + userId, + token, + redirectUri + }) { + const data = JSON.stringify({ + user_id: userId, + access_token: token, + redirect_uri: redirectUri + }); + const query = { + client_id: clientId, + service: 'astad.aprofiel.v1', + data: logoutEncrypt(data, clientSecret), + auth + }; + return `${oauthHost}/v2/logout/redirect/encrypted?${qs.stringify(query)}`; + } + + function login(req, res) { + const host = getHost(req); + const stateKey = uuid.v4(); + const url = createLoginUrl(host, stateKey, req.query); + console.log(url); + req.session[`loginKey`] = stateKey; + req.session.fromUrl = req.query.fromUrl || '/'; + runHooks(hooks.preLogin, req, res, () => { + return req.session.save(() => res.redirect(url)); + }); + } + + function isLoggedin(req, res) { + if (!req.session[objectKey]) { + return res.json({ + isLoggedin: false + }); + } + + return res.json({ + isLoggedin: true, + [objectKey]: req.session[objectKey] + }); + } + + async function loginCallback(req, res) { + if (!req.query.code || !req.query.state) { + return res.redirect(errorRedirect); + } + + if (req.query.state !== req.session[`loginKey`]) { + let loginUrl = `${basePath}/login`; + const fromUrl = req.session.fromUrl; + + if (fromUrl) { + loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; + } + + return res.redirect(loginUrl); + } + + delete req.session[`loginKey`]; + const { + user, + userToken + } = await service.loginUser(req.query.code); + req.session[objectKey] = user; + req.session[`${objectKey}Token`] = userToken; + runHooks(hooks.loginSuccess, req, res, error => { + if (error) { + console.log(error); + return res.redirect(errorRedirect); + } + + req.session.save(() => res.redirect(req.session.fromUrl || '/')); + }); + } + + function logoutCallback(req, res) { + runHooks(hooks.logoutSuccess, req, res, () => { + delete req.session[objectKey]; + delete req.session[`${objectKey}Token`]; + const tempSession = req.session; + req.session.regenerate(() => { + Object.assign(req.session, tempSession); + req.session.save(() => res.redirect(tempSession.logoutFromUrl || '/')); + }); + }); + } + + function logout(req, res) { + const logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; + + if (!req.session[objectKey]) { + return res.redirect(logoutFromUrl); + } + + const token = req.session[`${objectKey}Token`]; + req.session.logoutFromUrl = logoutFromUrl; // used to prevent eventhandler from deleting this application + + req.session.isLogoutOrigin = true; + const logoutParams = { + redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, + token: token.accessToken, + userId: req.session[objectKey].profile.id + }; + const logoutUrl = createLogoutUrl(logoutParams); + runHooks(hooks.preLogout, req, res, () => { + req.session.save(() => res.redirect(logoutUrl)); + }); + } + + function loggedoutEvent(req, res) { + const { + headerKey = 'x-logout-token', + securityHash = '', + sessionStoreLogoutAdapter: adapter = false + } = config.logout || {}; + const token = req.get(headerKey) || ''; + + if (!adapter) { + return res.sendStatus(200); + } + + if (!bcrypt.compareSync(token, securityHash)) { + return res.sendStatus(401); + } + + const accessTokenKey = `${objectKey}Token`; + return adapter(sessionKey, accessTokenKey, req.body).then(() => res.sendStatus(200)).catch(err => res.status(500).json(err)); + } + + async function refreshToken(req, res, next) { + if (!refresh) { + return next(); + } + + const tokenKey = `${objectKey}Token`; + const token = req.session[tokenKey]; + + if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN$1)) { + return next(); + } + + const newToken = await service.refresh(token); + req.session = Object.assign(req.session, { + [tokenKey]: newToken + }); + return req.session.save(() => next()); + } + + return { + login, + logout, + logoutCallback, + isLoggedin, + loginCallback, + refreshToken, + loggedoutEvent + }; +} + +function preventBrowserCache(req, res, next) { + res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); + res.header('Expires', '-1'); + res.header('Vary', '*'); + res.header('Pragma', 'no-cache'); + return next(); +} +function loadRoutes(app, config) { + const { + basePath = '/auth' + } = config; + const { + loginCallback, + login, + logout, + isLoggedin, + logoutCallback, + loggedoutEvent, + refreshToken + } = createController(config); + const router = new Router(); // warning printen als trust proxy niet enabled is? of standaard enablen? + + router.get(`${basePath}/login/callback`, preventBrowserCache, loginCallback); + router.get(`${basePath}/login`, preventBrowserCache, login); + router.get(`${basePath}/logout`, preventBrowserCache, logout); + router.get(`${basePath}/isloggedin`, preventBrowserCache, isLoggedin); + router.get(`${basePath}/logout/callback`, preventBrowserCache, logoutCallback); + router.post(`${basePath}/event/loggedout`, json(), loggedoutEvent); + app.use(refreshToken); + return router; +} + +async function getSessions(consentUrl, ssoKey, accessToken) { + let body; + let response; + + try { + response = await fetch$1(`${consentUrl}/sessions/${ssoKey}`, { + method: 'GET', + headers: { + Authorization: `bearer ${accessToken}` + } + }); + body = await response.json(); + } catch (e) { + console.log(e); + body = {}; + response = response || {}; + } + + if (!response.ok) { + throw Object.assign(body, { + status: response.status + }); + } + + return body; +} + +function getFallbackFromUrl(req, port) { + return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; +} + +function getFromUrl(req, port) { + const rawFromUrl = req.query.fromUrl || req.query.fromurl || getFallbackFromUrl(req, port); + return encodeURIComponent(rawFromUrl); +} + +function getSessionWithAssuranceLevel(sessions, assuranceLevel) { + return sessions.find(session => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); +} + +function sso(options) { + const { + clientId, + clientSecret, + key = 'user', + consentUrl, + basePath, + port = false, + ssoCookieName = 'dgp.auth.ssokey' + } = options; + const loginPath = `${basePath}/login`; + return async (req, res, next) => { + const cookieHeader = req.get('cookie'); + + if (!cookieHeader) { + return next(); + } + + const cookies = cookieParser.parse(cookieHeader); + const ssoKey = cookies[ssoCookieName]; + console.log('ssoKey', ssoKey); + + if (!ssoKey) { + return next(); + } + + const user = req.session[key] || {}; + const assuranceLevel = user.assuranceLevel || 'none'; + + if (assuranceLevel === 'high') { + return next(); + } + + try { + console.log('consentUrl', consentUrl); + const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); + console.log('has accesstoken', accessToken); + const { + sessions = [] + } = await getSessions(consentUrl, ssoKey, accessToken); + + if (!sessions || sessions.length === 0) { + return next(); + } + + const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; + const highSession = getSessionWithAssuranceLevel(sessions, 'high'); + + if (highSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); + } + + if (assuranceLevel === 'substantial') { + return next(); + } + + const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); + + if (substantialSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); + } + + if (assuranceLevel !== 'none') { + return next(); + } + + if (getSessionWithAssuranceLevel(sessions, 'low')) { + return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); + } + } catch (exception) { + console.log(exception); + console.log(exception.cause); + } + + return next(); + }; +} + +const REQUIRED_CONFIG_PROPS = ['clientId', 'clientSecret', 'oauthHost']; + +function validateConfig(config) { + REQUIRED_CONFIG_PROPS.forEach(prop => { + if (config[prop] == null) { + throw new Error(`${prop} is required config`); + } + }); +} + +const toExport = { + createRouter: (app, config) => { + validateConfig(config); + return loadRoutes(app, config); + }, + CreateSsoMiddleware: config => { + validateConfig(config); + return sso(config); + } +}; + +export default toExport; diff --git a/exampleconfig.js b/exampleconfig.js new file mode 100644 index 0000000..22715ed --- /dev/null +++ b/exampleconfig.js @@ -0,0 +1,46 @@ +export default { + clientId, + clientSecret, + basePath, // default + defaultScopes, + scopeGroups, + sharedSessionsUrl, //nodig voor middleware, url voor consent. + identifier, // niet meer nodig in v2? wel nodig voor uit te loggen + saveConsent, // default hier + oauthHost, + refresh, // default false + key, // default user + errorRedirect, // default / + authPath, // default hier + authMethods: { // niet in config + low: [ + 'iam-aprofiel-userpass', + 'fas-citizen-bmid', + 'fas-citizen-otp', + 'fas-citizen-totp', + 'fas-citizen-eid' + ].join(','), + substantial: [ + 'fas-citizen-bmid', + 'fas-citizen-otp', + 'fas-citizen-totp', + 'fas-citizen-eid' + ].join(','), + high: ['fas-citizen-eid'].join(',') + }, + logout: { + headerKey, + securityHash, + sessionStoreLogoutAdapter + }, + hooks: { + prelogin: [], + loginSuccess: [], + logoutSuccess: [] + } // functies +} +// tokenUrl niet meer nodig +// geen redirectUri niet meer +// authenticationType niet nodig voor burger +// tokenUrl? +// migration guide \ No newline at end of file diff --git a/old-readme.md b/old-readme.md new file mode 100644 index 0000000..ad5db24 --- /dev/null +++ b/old-readme.md @@ -0,0 +1,430 @@ +# @digipolis/auth + +@digipolis/auth is implemented as an `Express` router. It exposes a couple of endpoints +that can be used in your application to handle the process of logging into a user's +AProfile, mprofile or eid via oAuth. + +## Setup +You should use `express-session` in your application to enable session-storage. +After this step, you can load the `@digipolis/auth` middleware + +```js +app.use(require('@digipolis/auth')(app, configuration)); +``` + +Be sure to load this middleware before your other routes, otherwise the automatic refresh of the user's token won't work properly. + +Also set the `trust proxy` application variable to `true`. Otherwise the callback URL might be constructed with protocol `http` instead of `https`. + +```js +// Trust proxy to make sure the @digipolis/auth module can construct the correct OAuth2 callback URL +app.enable('trust proxy'); +``` + +### API Store configuration + +For this module to fully work, some configuration on the API store is required. +After creating your application on the api store, you should create a contract with the Aprofiel/Mprofiel API. + +![Create Contract](/assets/create-contract.png "Create contract") + +The next step is to navigate to your applications and clicking on actions + +![actions](/assets/oauth-config.png "actions") + + +Click on oauth2 config. You'll find your clientId and secret here. + +![configure callback](/assets/callback.png "callback") + +You'll need to configure your callback path here +normally, it will be `:///auth/login/callback` +(this module exposes this endpoint) + +**Unless you configured a custom redirectUri. in this case, you should enter this one** + +### Event Handler configuration (only needed for Single log out) + +Navigate to the eventhandler and go to the oauth namespace +![oauth namespace](/assets/oauth-namespace.png "oauth namespace") + +Click on the topic related to your login methodology and click on + (add subscription) +![add subscription](/assets/add-subscription.png "add subscription") + +Configure your endpoint with the correct params: + +![subscription configuration](/assets/sub-config.png "subscription configuration") +the push url is `://{basePath}/event/loggedout` +(basePath defaults to auth). + +You should add a custom header which corresponds to the headerKey in your logout configuration (defaults to `x-logout-token`). Add your token. +(this token will not be known to your application, only the hashed version) + +save your subscription. + + + +### Module Configuration + +- **oauthHost** *string*: The domain corresponding to the oauth implementation + (e.g: https://api-oauth2-o.antwerpen.be'). +- **applicationname** *string*: required if permissions need to be fetched (name known in UM) +- **apiHost** *string*: the hostname corresponding to the API gateway (e.g: https://api-gw-o.antwerpen.be). +- **basePath=/auth (optional)** *string*: the basePath which is appended to the exposed endpoints. +- **errorRedirect=/ (optional)** *string*: where to redirect if the login fails (e.g: /login) +- **logout** (optional, but needed for SLO with the event handler) + - **headerKey** *string*: the name of the http header where the key is located (defaults to `x-logout-token`) + - **securityHash** *string* bcrypt hash of the token that will be placed in the http header. + - **sessionStoreLogoutAdapter** *Function*: function that returns a promise when the sessionStore has been successfully updated and rejects otherwise. This adapter is responsible for removing the session. [More information](#creating-and-using-sessionstorelogoutadapters) +- **auth** (credentials can be acquired from the api store) + - **clientId** *string*: client id of your application + - **clientSecret** *string*: client secret of your application + - **apiKey** *string*: required to fetch permissions (not needed otherwise) +- **serviceProviders**: object of the available oauth login services (currently aprofiel & MProfiel). You only need to configure the ones that you need. + - **aprofiel** (optional if not needed): + - **scopes** *string*: The scopes you want of the profile (space separated identifiers) + - **url** *string*: the url where to fetch the aprofile after the login succeeded + - **identifier** *string*: the service identifier, used to create login url. + - **tokenUrl** *string*: where the service should get the accesstoken + - **redirectUri (optional)** *string*: custom redirect callback uri, do not use unless absolutely necessary + - **refresh** *boolean*: whether or not to refresh the access token (experimental) + - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) + - **hooks (optional)**: async execution is supported + - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. + - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful + - **mprofiel** (optional if not needed): + - **scopes** *string*: the scopes you want for the profile + - **url** *string*: url where to fetch the profile + - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) + - **fetchPermissions=false** *boolean*: whether to fetch permissions in the User Man. engine + - **authenticationType=form** *string*: `form` or `so`, can be used together, see example + - **identifier=astad.mprofiel.v1** *string*: the service identifier, used to create the login url. + - **tokenUrl** *string*: where the service should get the accesstoken + - **redirectUri (optional)** *string*: custom redirect callback uri + - **refresh** *boolean*: whether or not to refresh the access token (experimental) + - **hooks (optional)**: async execution is supported + - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. + - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful + - **eid** (optional if not needed): + - **scopes** *string*: the scopes you want for the profile + - **url** *string*: url where to fetch the profile + - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) + - **identifier=acpaas.fasdatastore.v1** *string*: the service identifier, used to create the login url. + - **tokenUrl** *string*: where the service should get the accesstoken + - **redirectUri (optional)** *string*: custom redirect callback uri + - **refresh** *boolean*: whether or not to refresh the access token (experimental) + - **hooks (optional)**: async execution is supported + - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. + - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful + +### Authentication 2.0 +If you want to use authentication 2.0 you can do so by adding `version: 'v2'` and add the necessary extra config. +Your application needs a contract with the Shared Identity Data API (Similar to the [API Store configuration](#api-store-configuration)) + + - **auth2aprofiel** (optional if not needed): + - **version** *string*: authentication version you want to use (`v2` in this case). Defaults to v1. + - **minimalAssuranceLevel** *string*: Minimal Assurance Level. We support `low`, `substantial` and `high`. + - **authMethods** *string*: the authentication methods you want to allow. (e.g. `iam-aprofiel-userpass` for simple username/password based authentication) + - **scopes** *string*: the scopes you want for the profile + - **url** *string*: url where to fetch the profile + - **identifier=astad.aprofiel.v1** *string*: the service identifier, used to log out. + - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) + - **tokenUrl** *string*: where the service should get the accesstoken + - **redirectUri (optional)** *string*: custom redirect callback uri + - **refresh** *boolean*: whether or not to refresh the access token (experimental) + - **hooks (optional)**: async execution is supported + - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. + - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful + +Concerning the authentication methods, we support: + +| Name | Assurance level | Description | +| --------------------- | --------------- | -------------------------------------------------------------- | +| iam-aprofiel-userpass | low | Our default aprofiel authentication with username and password | +| fas-citizen-bmid | substantial | Belgian Mobile ID (e.g. Itsme) | +| fas-citizen-otp | substantial | Authentication with one time password (e.g. sms) | +| fas-citizen-totp | substantial | Time-based one time password (e.g. Google Authenticator) | +| fas-citizen-eid | high | Authentication with eID-card and pin-code | + +`iam-aprofiel-userpass` will only work when `minimalAssuranceLevel` is `low`. + +`minimalAssuranceLevel` `high` will only show the `fas-citizen-eid` authentication method. + +In general; if your `minimalAssuranceLevel` is set to `substantial` you can only use `substantial` and above (`high`). + +#### Authentication 2.0 example config +```js + auth2eid: { + version: 'v2', + scopes: 'astad.aprofiel.v1.username astad.aprofiel.v1.name astad.aprofiel.v1.avatar astad.aprofiel.v1.email astad.aprofiel.v1.phone crspersoon.givenName', + url: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/me', + key: 'auth2eid', + authMethods: 'fas-citizen-bmid,fas-citizen-totp,fas-citizen-otp,iam-aprofiel-userpass', + minimalAssuranceLevel: 'low', + tokenUrl: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/oauth2/token', + hooks: { + loginSuccess: [], + logoutSuccess: [] + } + } +``` + +#### Authentication 2.0 available scopes + +| Scope | Alias | +| ------------------------------- | ----------------- | +| astad.aprofiel.v1.address | aprofiel.address | +| astad.aprofiel.v1.all | aprofiel.all | +| astad.aprofiel.v1.avatar | aprofiel.avatar | +| astad.aprofiel.v1.email | aprofiel.email | +| astad.aprofiel.v1.name | aprofiel.name | +| astad.aprofiel.v1.phone | aprofiel.phone | +| astad.aprofiel.v1.username | aprofiel.username | +| crspersoon.birthdate | | +| crspersoon.death | | +| crspersoon.deathdate | | +| crspersoon.familyname | | +| crspersoon.gendercode | | +| crspersoon.givenName | | +| crspersoon.housenumber | | +| crspersoon.housenumberextension | | +| crspersoon.municipalityname | | +| crspersoon.municipalityniscode | | +| crspersoon.nationality | | +| crspersoon.nationalnumber | | +| crspersoon.postalcode | | +| crspersoon.registrationstate | | +| crspersoon.streetname | | + +## Creating and using SessionStoreLogoutAdapters + +Your sessionstore can be backed by your server's memory or a database system like postgres, mongodb. Because we have no generic way to query each type of store, +we introduce the concept of adapters. + +`function adapter(sessionKey: String, accessTokenKey: String, userInformation: Object): Promise` + +An adapter should return a promise which resolves if it succeeds in altering the session or rejects when it fails. + +It has 3 arguments: + +- **sessionKey**: this is the key under which your user is stored in the session (this is the same as the key property in your serviceProvider, defaults to `user`). essentially, +this is the property that should be removed from your session to remove the user's information +- **accessTokenKey**: this is the key of the accessToken property inside your session, which should also be removed. +- **userInformation**: this is an object that contains the information of the user that has been loggedout. + - **user**: the id of the user, + - **timestamp**: timestamp of logout. Could be used to ignore the request if the logout was long ago. + + +### Available adapters +Existing adapters will be added here. + +### Example of an adapter implementation +``` +// this is a non functional example, +function createAdapter(options) { + const { + connectionString + } = options; + + const db = createConnection(connectionString); + + return function adapter(sessionKey, accessTokenKey, userInformation) { + return new Promise((resolve, reject) => { + const session = db.query({ + [`session.${sessionKey}.id]: userInformation.user + }); + + // alter record and resave or do it in one query. + // be aware that multiple sessions could have the same userId, + // maybe we should also check whether the session is currently valid. + + return resolve(); + }) + } + + const authConfig = require(./authConfig); + + const adapter = createAdapter({ + connectionString: process.env.connectionString + }); + + Object.assign(authConfig, { + logout: { + adapter, + securityHash: 'blabla + } + }); +} +``` + +## Example implementation +```js +const session = require('express-session'); +const app = express(); +app.use(session({ + secret: 'blabla' +})) + +const profileLogin = require('@digipolis/auth'); +// load session with corresponding persistence (postgres, mongo....) +const loginSuccessHook = (req, res, next) => { + req.session.isEmployee = false; + if(req.digipolisLogin && req.digipolisLogin.serviceName === 'mprofiel') { + req.session.isEmployee = true; + } + + req.session.save(() => next()); +} + +app.use(profileLogin(app, { + oauthHost: 'https://api-oauth2-o.antwerpen.be', + apiHost: 'https://api-gw-o.antwerpen.be', + errorRedirect: '/', + applicationName: 'this-is-my-app', + basePath: '/auth', + auth: { + clientId: 'your-client-id', + clientSecret: 'your-client-secret', + apiKey: 'my-api-string', // required if fetchPermissions == true + }, + serviceProviders: { + aprofiel: { + scopes: '', + url: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/v1/me', + identifier:'astad.aprofiel.v1', + tokenUrl: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/oauth2/token', + hooks: { + loginSuccess: [], + logoutSuccess: [] + } + }, + mprofiel: { + scopes: 'all', + url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', + identifier: 'astad.mprofiel.v1', + fetchPermissions: false, + + tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', + hooks: { + loginSuccess: [], + logoutSuccess: [] + } + }, + 'mprofiel-so': { + scopes: 'all', + url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', + identifier: 'astad.mprofiel.v1', + fetchPermissions: false, + authenticationType: 'so' + tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', + hooks: { + loginSuccess: [], + logoutSuccess: [] + } + }, + eid: { + scopes: 'name nationalregistrationnumber', + url: 'https://api-gw-o.antwerpen.be/acpaas/fasdatastore/v1/me', + key: 'eid' + identifier:'acpaas.fasdatastore.v1', + tokenUrl: 'https://api-gw-o.antwerpen.be//acpaas/fasdatastore/v1/oauth2/token', + hooks: { + loginSuccess: [], + logoutSuccess: [] + } + }, + } +})); +``` + +## Session +Multiple profile can be logged in at the same time, if a key is configured inside the serviceProvider configuration. If no key is given, the default key `user` (`req.session.user`) is used, and the possibility exists that a previous user is overwritten by another when logging in. + +The token can be found under `req.session.userToken` if the default key is used, otherwise it can be found under `req.session[configuredKey + Token]` e.g: token configured is `aprofiel` , the access token will be found under `req.session.aprofielToken` +``` +{ + accessToken: 'D20A4360-EDD3-4983-8383-B64F46221115' + refreshToken: '469FDDA4-7352-4E3E-A810-D0830881AA02' + expiresIn: '2020-12-31T23.59.59.999Z' +} +``` + +## Available Routes + +Each route is prepended with the configured `basePath`, if no basePath is given, +default basePath `auth` will be used. + + +### GET {basePath}/login/{serviceName}?fromUrl={thisiswheretoredirectafterlogin}&lng={language}&auth_type={auth_type}&auth_methods={auth_methods} +This endpoints tries to redirect the user to the login page of the service corresponding to the serviceName (aprofiel, mprofiel, eid). +(this will not work if the endpoint is called with an AJAX call) + +#### query params + +- *fromUrl*: can be used to redirect the user to a given page after login. +- *lng*: can be used to define the language. Currently supported: `nl`, `de`, `fr` and `en` +- *auth_type*: can be used if you want to restrict the authentication types to others than defined in your service provider. +- *auth_methods*: can be used to override the default defined authMethods. to limit the number of available methods or to enable true SSO. (comma seperated list) + +### GET {basePath}/isloggedin + +The `isloggedin` endpoint can be used to check if the user is currently loggedIn in any of the configured services if he is logged in in some services, the following payload will be returned: +```js +{ + isLoggedin: true, + user: { ... }, + mprofiel: {...} // this corresponds to the key that is configured in the serviceProvider +} +``` + +If the user is not logged in in any of the services, the following payload is returned. +```js +{ + isLoggedin: false +} +``` + +### GET {basePath}/isloggedin/{service} + +check whether the user is logged in in the specified service. If he is logged in: + +{ + isLoggedin: true, + [serviceKey]: {...} // this corresponds to the key that is configured in the serviceProvider, defaults to user +} +``` + +If the user is not logged in int the service, the following payload is returned. +```js +{ + isLoggedin: false +} +``` + +### GET {basePath}/login/callback + +Endpoint that you should not use manually, is used to return from the identity server and fetches a user corresponding to the login and stores it on the session. + +If a redirect url was given through the `fromUrl` in the `login` endpoint, the user will be redirected to this url after the callback has executed successfully. + +If the callback is does not originate from the login flow triggered from the application, +it will trigger a 401. (this is checked with the state param). + +Hooks defined in the `serviceProviders[serviceName].hooks.loginSuccess` will be called here. +Session data can be modified in such a hook. + +### GET {basePath}/logout/{service}?fromUrl={thisiswheretoredirectafterlogout} + +Redirects the user to the logout for the specified service. This will cause the session to be destroyed on the IDP. + +the `fromUrl` query parameter can be used to redirect the user to a given page +after logout. + +### GET {basePath}/logout/callback/{service} + +Cleans up the session after the initial logout. + +### POST {basePath}/event/loggedout/{service} + +Endpoint which can be used to logout events from the eventhandler. This is used to remove a user's session when the user has logged out in an other application. + diff --git a/readme.md b/readme.md index 7a6abf7..79e87ab 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,300 @@ -# scopes -# auth methods -# assuranceLevel \ No newline at end of file +# @digipolis/auth + +This package contains two components: + +1. a router which exposes a couple of endpoints which can be used to implement login in your application. +2. A middleware that can be used to enable single sign-on (SSO) between different apps inside the antwerp/digipolis ecosystem. + +In this version aprofiel with assurance levels and different authentication methods is supported (for mprofiel support, check out version 1.X.X). + +## Setup + +You should use `express-session` in your application to enable session storage. + +Be sure to load this middleware before other routes in your application, this enables the automatic refresh of the user's access token. + +`trust proxy` should also be set to true to enable automatic generation of the applications login callback. + +### Basic example + +```js +import { + createRouter, + createSSOMiddleware +} from '@digipolis/auth'; +import Express from 'express'; +import Session from 'express-session'; + +const app = new Express(); +app.use(Session({ + secret: 'keyboard cat', + resave: false, + saveUninitialized: true, + cookie: { secure: true } +})); + + +const authConfig = { + clientId: 'client-id', + clientSecret: 'client-secret', + oauthHost: 'https://api-oauth2-a.antwerpen.be', + basePath: '/auth', + defaultScopes: [ + 'astad.aprofiel.v1.name', + 'astad.aprofiel.v1.avatar', + 'astad.aprofiel.v1.email', + ], + scopeGroups: { + address: ['crspersoon.housenumber', 'crspersoon.streetname'], + personal: ['crspersoon.nationalnumber', 'crspersoon.nationality'] + }, + url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1' , + consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', +}; + + +// This exposes endpoints to enable login +app.use(createRouter(app, authConfig)); + +// This middleware enables SSO +const sso = createSSOMiddleware(authConfig); + +// The sso middleware should be used where you serve your application +// it relies on redirects, which cannot be used with ajax calls. +router +.get('/index', sso, (req, res) => res.send('hello world')); +``` + +### Configuration +The login router & the SSO middleware use the same configuration. + +- **basePath**: *string* (default: '/auth') + Each of the routes in the auth router will be prepended with this property +- **clientId**: *string* + Client credentials from the API gateway (see section api store) +- **clienSecret**: *string* + Client credentials from the API gateway (see section api store) +- **consentUrl**: *string* + The url of the consent api, is necessary to enable SSO + (also see section api store). + (e.g. https://api-gw-a.antwerpen.be/acpaas/consent/v1) +- **defaultScopes**: *string[]* + list of scopes you will always use (see section scopes) + Should be compatible with assurance level = low +- **errorRedirect**: *string* (default: '/') + Where your application should redirect when something goes wrong during the login process. +- **hooks**: *object* + Hooks can be used to add custom logic to the login process. Can be used to modify your session or clean up when logging out. + Each hook has the same signature as express middleware + `(req, res, next) => {})` + - **preLogin**: *function[]* + List of functions that will be executed before login + - **preLogout**: *function[]* + List of functions that will be executed before logout + - **loginSuccess**: *function[]* + List of functions that will be executed when login has succeeded + - **logoutSuccess**: *function[]* + List of functions that will be executed when logout has succeeded +- **key**: *string* (default: 'user') + The loggedin user will be stored on `req.session`. This property defines where the user and his accessToken will be stored. + for 'user', the user will be at `req.session.user` and the accesstoken will be at `req.session.userToken` +- **logout** (optional, but needed for SLO with the event handler) + - **headerKey** *string*: + the name of the http header where the key is located (defaults to `x-logout-token`) + - **securityHash** *string* + bcrypt hash of the token that will be placed in the http header. + - **sessionStoreLogoutAdapter** *Function*: + function that returns a promise when the sessionStore has been successfully updated and rejects otherwise. This adapter is responsible for removing the session. [More information](#creating-and-using-sessionstorelogoutadapters) +- **oauthHost**: *string* + this is where the actual login process starts after leaving your application. This is needed to generate a redirect url to the login page + (e.g.: https://api-oauth2-a.antwerpen.be) +- **refresh**: *boolean* (default false) + Enables automatic refresh of the user's access token +- **scopeGroups**: *object* + scopeGroups is an object where all keys should have an array of scopes as values. These can be used to request additional scopes when logging in through the use of the query parameter `scopeGroups` ([available scopes](#available-scopes) +- **url**: *String* + url where the user will be retrieved with after login has succeeded + (e.g.: https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1) + + +### API Store configuration + +For this module to fully work, some configuration on the API store is required. + +After creating your application on the api store, you should create a contract with the Shared Identity API. + +![Create Contract shared identity](/assets/shared-identity.png "Create contract shared identity") + +and the Consent API (if you want to enable SSO) +![Create Contract consent](/assets/consent.png "Create contract consent") + +The next step is to navigate to your applications and clicking on actions + +![actions](/assets/oauth-config.png "actions") + + +Click on oauth2 config. You'll find your clientId and secret here. + +![configure callback](/assets/callback.png "callback") + +You'll need to configure your callback path here +normally, it will be `:///auth/login/callback` +(this module exposes this endpoint) (change the basePath if you have configured another) + +### Eventhandler configuration (for single log-off) +Navigate to the eventhandler and go to the oauth namespace +![oauth namespace](/assets/eventhandler.png "oauth namespace") + +Add a new wildcard subscription ( +Configure your endpoint with the correct params: + +![subscription configuration](/assets/config-event.png "subscription configuration") +the push url is `://{basePath}/event/loggedout/` +(basePath defaults to auth). + +You should add a custom header which corresponds to the headerKey in your logout configuration (defaults to `x-logout-token`). Add your token. +(this token will not be known to your application, only the hashed version) (don't forget to click the plus symbol) + + +## How to use the Routes + +### GET {basePath}/login +This endpoint can be used to login. There are some query parameters available to control in which ways the user can login and which scopes the user can use. + +#### Query parameters +- **scopeGroups** + comma seperated list of the keys of the scopeGroups configured in your configuration. If none are given, only the default scopes from the configration are requested. +- **minimal_assurance_level** (default: low for context citizen, substantial for context enterprise) + possible values: low, substantial, high + determines which authentication methods are available to the user (see [Available authentication methods](available-authentication-methods)) +- **fromUrl** (default /) + Where the user should be redirected if the login process is successfull +- **context** (enterprise or citizen) (default citizen) + if the user should login as a citizen or as an enterprise user. Login in with context enterprise enables the application to fetch additional roles at the authz api with the access token of the user. +### GET {basePath}/isloggedin + +The `isloggedin` endpoint can be used to check if the user is currently loggedIn +```js +{ + isLoggedin: true, + user: { ... } // this corresponds to the key that is configured in the serviceProvider +} +``` + +If the user is not logged in the following payload is returned. +```js +{ + isLoggedin: false +} +``` + +### GET {basePath}/logout + +Redirects the user to the logout for the specified service. This will cause the session to be destroyed on the IDP. + +the `fromUrl` query parameter can be used to redirect the user to a given page +after logout. + + +# Available scopes +| Scope | Alias | Minimal assurance level | +| ------------------------------- | ----------------- | ----------------------- | +| astad.aprofiel.v1.address | aprofiel.address | low | +| astad.aprofiel.v1.all | aprofiel.all | low | +| astad.aprofiel.v1.avatar | aprofiel.avatar | low | +| astad.aprofiel.v1.email | aprofiel.email | low | +| astad.aprofiel.v1.name | aprofiel.name | low | +| astad.aprofiel.v1.phone | aprofiel.phone | low | +| astad.aprofiel.v1.username | aprofiel.username | low | +| crspersoon.birthdate | | substantial | +| crspersoon.death | | substantial | +| crspersoon.deathdate | | substantial | +| crspersoon.familyname | | substantial | +| crspersoon.gendercode | | substantial | +| crspersoon.givenName | | substantial | +| crspersoon.housenumber | | substantial | +| crspersoon.housenumberextension | | substantial | +| crspersoon.municipalityname | | substantial | +| crspersoon.municipalityniscode | | substantial | +| crspersoon.nationality | | substantial | +| crspersoon.nationalnumber | | substantial | +| crspersoon.postalcode | | substantial | +| crspersoon.registrationstate | | substantial | +| crspersoon.streetname | | substantial | + + +# Available authentication methods + + +| Name | Assurance level | context | Description | +| --------------------- | --------------- | --------------------------------------------------------------------------- | +| iam-aprofiel-userpass | low | citizen | Our default aprofiel authentication with username and password | +| fas-citizen-bmid | substantial | citizen | Belgian Mobile ID (e.g. Itsme) | +| fas-citizen-otp | substantial | citizen | Authentication with one time password (e.g. sms) | +| fas-citizen-totp | substantial | citizen | Time-based one time password (e.g. Google Authenticator) | +| fas-citizen-eid | high | citizen | Authentication with eID-card and pin-code | +| fas-enterprise-bmid | substantial | enterprise | Belgian Mobile ID (e.g. Itsme) | +| fas-enterprise-otp | substantial | enterprise | Authentication with one time password (e.g. sms) | +| fas-enterprise-totp | substantial | enterprise | Time-based one time password (e.g. Google Authenticator) | +| fas-enterprise-eid | high | enterprise | Authentication with eID-card and pin-code | + +# Creating and using SessionStoreLogoutAdapters + +Your sessionstore can be backed by your server's memory or a database system like postgres, mongodb. Because we have no generic way to query each type of store, +we introduce the concept of adapters. + +`function adapter(sessionKey: String, accessTokenKey: String, userInformation: Object): Promise` + +An adapter should return a promise which resolves if it succeeds in altering the session or rejects when it fails. + +It has 3 arguments: + +- **sessionKey**: this is the key under which your user is stored in the session (this is the same as the key property in your serviceProvider, defaults to `user`). essentially, +this is the property that should be removed from your session to remove the user's information +- **accessTokenKey**: this is the key of the accessToken property inside your session, which should also be removed. +- **userInformation**: this is an object that contains the information of the user that has been loggedout. + - **user**: the id of the user, + - **timestamp**: timestamp of logout. Could be used to ignore the request if the logout was long ago. + + +### Available adapters +Existing adapters will be added here. + +### Example of an adapter implementation +``` +// this is a non functional example, +function createAdapter(options) { + const { + connectionString + } = options; + + const db = createConnection(connectionString); + + return function adapter(sessionKey, accessTokenKey, userInformation) { + return new Promise((resolve, reject) => { + const session = db.query({ + [`session.${sessionKey}.id]: userInformation.user + }); + + // alter record and resave or do it in one query. + // be aware that multiple sessions could have the same userId, + // maybe we should also check whether the session is currently valid. + + return resolve(); + }) + } + + const authConfig = require(./authConfig); + + const adapter = createAdapter({ + connectionString: process.env.connectionString + }); + + Object.assign(authConfig, { + logout: { + adapter, + securityHash: 'blabla + } + }); +} +``` \ No newline at end of file diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..377362a --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,18 @@ +import pkg from './package.json'; +import resolve from '@rollup/plugin-node-resolve'; +import babel from 'rollup-plugin-babel'; +export default { + input: 'src/index.js', + output: [ + { file: pkg.main, format: 'cjs' }, + { file: pkg.module, format: 'es' }, + ], + plugins: [ + resolve(), + babel({ + exclude: 'node_modules/**', // only transpile our source code, + runtimeHelpers: true, + }), + ], + external: [...Object.keys(pkg.dependencies)] +}; diff --git a/src/accessToken.js b/src/accessToken.js new file mode 100644 index 0000000..d3ab091 --- /dev/null +++ b/src/accessToken.js @@ -0,0 +1,77 @@ +import { OAuth2 } from 'oauth'; + +const tokenStore = {}; +const ACCESS_TOKEN_PATH = '/oauth2/token'; +const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin +function createUserToken(results, refreshToken) { + return { + accessToken: results.access_token, + refreshToken, + expiresIn: new Date(new Date().getTime() + (results.expires_in * 1000) - EXPIRY_MARGIN), + isRefreshing: false + } +} + +function getNewAccessToken(clientId, clientSecret, url) { + const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken('', { grant_type: 'client_credentials' }, (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + return resolve({ + accessToken, + expiry: Date.now() + (results.expires_in * 1000) - EXPIRY_MARGIN, + }); + }); + }); +} + + +export function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url) { + const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken( + code, + { grant_type: 'authorization_code' }, + (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + const userToken = createUserToken(results, refreshToken); + return resolve(userToken); + }); + }) +} + +export function refreshToken(token) { + const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); + return new Promise((resolve, reject) => { + oauth2.getOAuthAccessToken( + token.refreshToken, + { 'grant_type': 'refresh_token' }, + (err, accessToken, refreshToken, results) => { + if (err) { + return reject(err); + } + + const userToken = creatUserToken(results, refreshToken); + return resolve(userToken) + }); + }); +} + + +export async function getAccessToken(clientId, clientSecret, url) { + if (tokenStore.token && tokenStore.token.expiry > Date.now()) { + return tokenStore.token.accessToken; + } + + tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); + return tokenStore.token.accessToken; +} + + diff --git a/src/authMethods.js b/src/authMethods.js new file mode 100644 index 0000000..b79d8c3 --- /dev/null +++ b/src/authMethods.js @@ -0,0 +1,31 @@ +export default { + citizen: { + low: [ + 'iam-aprofiel-userpass', + 'fas-citizen-bmid', + 'fas-citizen-otp', + 'fas-citizen-totp', + 'fas-citizen-eid' + ], + substantial: [ + 'fas-citizen-bmid', + 'fas-citizen-otp', + 'fas-citizen-totp', + 'fas-citizen-eid' + ], + high: [ + 'fas-citizen-eid' + ] + }, + enterprise: { + substantial: [ + 'fas-enterprise-bmid', + 'fas-enterprise-otp', + 'fas-enterprise-totp', + 'fas-enterprise-eid' + ], + high: [ + 'fas-enterprise-eid' + ] + }, +} \ No newline at end of file diff --git a/src/controller.js b/src/controller.js new file mode 100644 index 0000000..fcbab03 --- /dev/null +++ b/src/controller.js @@ -0,0 +1,252 @@ +import bcrypt from 'bcryptjs'; +import qs from 'querystring'; +import uuid from 'uuid'; +import authMethodsConfig from './authMethods'; +import createService from './service'; +import {getHost, logoutEncrypt, runHooks} from './helpers'; + +const EXPIRY_MARGIN = 5 * 60 * 1000; +export default function createController(config) { + const { + basePath = '/auth', + clientId, + clientSecret, + oauthHost, + defaultScopes = 'username', + scopeGroups = {}, + refresh = false, + hooks = {}, + errorRedirect = '/', + key: objectKey = 'user' + } = config; + + const service = createService(config); + + function determineScopes(options) { + let scopes = [...defaultScopes]; + if(!options.scopeGroups) { + return scopes.join(' '); + } + + const groups = options.scopeGroups.split(','); + groups.forEach(group => { + if(scopeGroups[group]) { + scopes.push(...scoupeGroups[group]); + } + }) + + return scopes.join(' '); + } + + function determineAuthMethods(options) { + let { + auth_methods = false, + minimal_assurance_level = 'low', + context = 'citizen' + } = options; + + if(auth_methods && auth_methods.length > 0) { + return auth_methods; + } + if(!['citizen', 'enterprise'].includes(context)) { + console.log(`context ${context} not known, fallback to citizen`); + context = 'citizen'; + } + + if(!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { + console.log(`${minimal_assurance_level} not known, fallback to lowest available`); + // enterprise does not have low. + minimal_assurance_level = 'low'; + } + + if(context === 'enterprise' && minimal_assurance_level === 'low') { + minimal_assurance_level = 'substantial'; + } + + return authMethodsConfig[context][minimal_assurance_level].join(','); + + } + + function createLoginUrl(host, stateKey, options) { + const query = { + client_id: clientId, + redirect_uri: `${host}${basePath}/login/callback`, + state: stateKey, + scope: determineScopes(options), + save_consent: true, + response_type: 'code', + auth_methods: determineAuthMethods(options), + minimal_assurance_level: options.minimal_assurance_level || 'low' + } + + if (options.lng) { + query.lng = options.lng; + } + + Object.keys(query).forEach(key => { + if (!query[key]) { + delete query[key]; + } + }); + + return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; + } + + function createLogoutUrl({ userId, token, redirectUri }) { + + const data = JSON.stringify({ + user_id: userId, + access_token: token, + redirect_uri: redirectUri + }); + + const query = { + client_id: clientId, + service: 'astad.aprofiel.v1', + data: logoutEncrypt(data, clientSecret), + auth + }; + + return `${oauthHost}/v2/logout/redirect/encrypted?${qs.stringify(query)}`; + } + + function login(req, res) { + const host = getHost(req); + const stateKey = uuid.v4(); + const url = createLoginUrl(host, stateKey, req.query); + console.log(url); + req.session[`loginKey`] = stateKey; + req.session.fromUrl = req.query.fromUrl || '/'; + + runHooks(hooks.preLogin, req, res, () => { + return req.session.save(() => res.redirect(url)); + }); + } + + function isLoggedin(req, res) { + if(!req.session[objectKey]) { + return res.json({ + isLoggedin: false + }); + } + + return res.json({ + isLoggedin: true, + [objectKey]: req.session[objectKey] + }); + } + + async function loginCallback(req, res) { + if (!req.query.code || !req.query.state) { + return res.redirect(errorRedirect); + } + + if (req.query.state !== req.session[`loginKey`]) { + let loginUrl = `${basePath}/login`; + const fromUrl = req.session.fromUrl; + if (fromUrl) { + loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; + } + return res.redirect(loginUrl); + } + + delete req.session[`loginKey`]; + const {user, userToken} = await service.loginUser(req.query.code); + req.session[objectKey] = user; + req.session[`${objectKey}Token`] = userToken; + + runHooks(hooks.loginSuccess, req, res, (error) => { + if (error) { + console.log(error); + return res.redirect(errorRedirect); + } + req.session.save(() => res.redirect(req.session.fromUrl || '/')); + }); + } + + function logoutCallback(req, res) { + runHooks(hooks.logoutSuccess, req, res, () => { + delete req.session[objectKey]; + delete req.session[`${objectKey}Token`]; + const tempSession = req.session; + req.session.regenerate(() => { + Object.assign(req.session, tempSession); + req.session.save(() => res.redirect(tempSession.logoutFromUrl || '/')); + }); + }); + } + + function logout(req, res) { + + const logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; + if (!req.session[objectKey]) { + return res.redirect(logoutFromUrl); + } + + const token = req.session[`${objectKey}Token`] + req.session.logoutFromUrl = logoutFromUrl; + // used to prevent eventhandler from deleting this application + req.session.isLogoutOrigin = true; + + const logoutParams = { + redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, + token: token.accessToken, + userId: req.session[objectKey].profile.id, + }; + + const logoutUrl = createLogoutUrl(logoutParams); + runHooks(hooks.preLogout, req, res, () => { + req.session.save(() => res.redirect(logoutUrl)); + }); + } + + function loggedoutEvent(req, res) { + const { + headerKey = 'x-logout-token', + securityHash = '', + sessionStoreLogoutAdapter: adapter = false + } = config.logout || {}; + + const token = req.get(headerKey) || ''; + + if (!adapter) { + return res.sendStatus(200); + } + + if (!bcrypt.compareSync(token, securityHash)) { + return res.sendStatus(401); + } + + const accessTokenKey = `${objectKey}Token`; + return adapter(sessionKey, accessTokenKey, req.body) + .then(() => res.sendStatus(200)) + .catch((err) => res.status(500).json(err)); + } + + async function refreshToken(req, res, next) { + + if (!refresh) { + return next(); + } + + const tokenKey = `${objectKey}Token`; + const token = req.session[tokenKey]; + + if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN)) { + return next(); + } + const newToken = await service.refresh(token); + req.session = Object.assign(req.session, { [tokenKey]: newToken }); + return req.session.save(() => next()); + } + + return { + login, + logout, + logoutCallback, + isLoggedin, + loginCallback, + refreshToken, + loggedoutEvent + } +} diff --git a/src/helpers.js b/src/helpers.js new file mode 100644 index 0000000..7f9ade9 --- /dev/null +++ b/src/helpers.js @@ -0,0 +1,59 @@ +import async from 'async'; +import { + createHash, + createCipheriv +} from 'crypto'; + +const ALGORITHM = 'aes-128-ctr'; + +export function logoutEncrypt(text, password) { + const hash = createHash('sha1'); + hash.update(password); + const key = hash.digest().slice(0, 16); + const ivBuffer = Buffer.alloc(16); + const cipher = createCipheriv(ALGORITHM, key, ivBuffer); + let crypted = cipher.update(text, 'utf8', 'hex'); + crypted += cipher.final('hex'); + return crypted; +} + +export function getHost(req) { + return `${req.protocol}://${req.get('host')}` +} + + + +export function runHooks(configuredHook, req, res, next) { + if (!configuredHook || !Array.isArray(configuredHook)) { + return next(); + } + + const hooks = configuredHook + .map(hook => (cb) => hook(req, res, cb)); + + async.series(hooks, next); +} + + +export function parseBody(response) { + const contentType = response.headers.get('content-type'); + + if (!contentType) { + return Promise.resolve(); + } + + if (contentType.includes('json')) { + return response.json(); + } + + if (contentType.includes('text')) { + return response.text(); + } + + if (contentType.includes('form-data') >= 0) { + return response.formData(); + } + + + return response; +} \ No newline at end of file diff --git a/src/hooks/assuranceLevel.js b/src/hooks/assuranceLevel.js new file mode 100644 index 0000000..02da6f5 --- /dev/null +++ b/src/hooks/assuranceLevel.js @@ -0,0 +1,53 @@ +import cookieParser from 'cookieparser'; +import { getSessions } from '../sessionStore'; + + +function getHighestAssuranceLevel(sessions = []) { + let highestAssuranceLevel = 'low'; + + for (let i = 0; i < sessions.length; i++) { + if (sessions[i].assuranceLevel === 'high') { + return 'high'; + } + + if (sessions[i].assuranceLevel === 'substantial') { + highestAssuranceLevel = 'substantial'; + } + } + + return highestAssuranceLevel; +} + + +export default function createAssuranceLevelHook({key = 'user', ssoCookieName = 'dgp.auth.ssokey', consentUrl}) { + return async (req, res, next) => { + const { accessToken = false } = req.session[`${key}Token`] || {}; + if (!accessToken) { + return next(); + } + + const cookieHeader = req.get('cookie'); + + if (!cookieHeader) { + return next(); + } + + const cookies = cookieParser.parse(cookieHeader); + const ssoKey = cookies[ssoCookieName]; + + if (!ssoKey) { + return next(); + } + + try { + const { sessions = [] } = await getSessions(consentUrl, ssoKey, token.accessToken); + const assuranceLevel = getHighestAssuranceLevel(sessions); + req.session[key].assuranceLevel = assuranceLevel; + } catch (e) { + console.log(e); + } + + return next(); + + } +} \ No newline at end of file diff --git a/src/hooks/deleteSessions.js b/src/hooks/deleteSessions.js new file mode 100644 index 0000000..d2ceeb7 --- /dev/null +++ b/src/hooks/deleteSessions.js @@ -0,0 +1,34 @@ + +import { deleteSessions } from '../sessionStore'; +import { getAccessToken } from '../accessToken'; + +export default function getDeleteSessionsHook(options) { + const { + clientId, + clientSecret, + url, + consentUrl + } = options; + return async (req, res, next) => { + const cookieHeader = req.get('cookie'); + + if (!cookieHeader) { + return next(); + } + + const cookies = cookieParser.parse(cookieHeader); + const ssoKey = cookies[ssoCookieName]; + if (!ssoKey) { + return next(); + } + + try { + const accessToken = await getAccessToken(clientId, clientSecret, url); + await deleteSessions(consentUrl, ssoKey, accessToken); + } catch (exception) { + console.log(exception); + } + + return next(); + }; +} \ No newline at end of file diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..fcb7693 --- /dev/null +++ b/src/index.js @@ -0,0 +1,31 @@ +import createRouter from './router'; +import CreateSsoMiddleware from './middleware/sso'; + + +const REQUIRED_CONFIG_PROPS = [ + 'clientId', + 'clientSecret', + 'oauthHost' +]; + +function validateConfig(config) { + + REQUIRED_CONFIG_PROPS.forEach(prop => { + if(config[prop] == null) { + throw new Error(`${prop} is required config`); + } + }); +} + +const toExport = { + createRouter: (app, config) => { + validateConfig(config); + return createRouter(app, config); + }, + CreateSsoMiddleware: (config) => { + validateConfig(config); + return CreateSsoMiddleware(config); + } +}; + +export default toExport; diff --git a/src/middleware/sso.js b/src/middleware/sso.js new file mode 100644 index 0000000..a0fde16 --- /dev/null +++ b/src/middleware/sso.js @@ -0,0 +1,96 @@ +import cookieParser from 'cookie'; + +import { getSessions } from '../sessionStore'; +import { getAccessToken } from '../accessToken'; + + +function getFallbackFromUrl(req, port) { + return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; +} + +function getFromUrl(req, port) { + const rawFromUrl = req.query.fromUrl || req.query.fromurl || getFallbackFromUrl(req, port); + return encodeURIComponent(rawFromUrl); +} + +function getSessionWithAssuranceLevel(sessions, assuranceLevel) { + return sessions.find(session => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); +} + +export default function sso(options) { + const { + clientId, + clientSecret, + key = 'user', + consentUrl, + basePath = '/auth', + port = false, + ssoCookieName = 'dgp.auth.ssokey', + } = options; + + const loginPath = `${basePath}/login`; + + return async (req, res, next) => { + const cookieHeader = req.get('cookie'); + if (!cookieHeader) { + return next(); + } + + const cookies = cookieParser.parse(cookieHeader); + const ssoKey = cookies[ssoCookieName]; + console.log('ssoKey', ssoKey); + if (!ssoKey) { + return next(); + } + + const user = req.session[key] || {}; + const assuranceLevel = user.assuranceLevel || 'none'; + + + if(assuranceLevel === 'high') { + return next(); + } + + try { + console.log('consentUrl', consentUrl); + const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); + console.log('has accesstoken', accessToken); + const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); + + if (!sessions || sessions.length === 0) { + return next(); + } + + const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; + + const highSession = getSessionWithAssuranceLevel(sessions, 'high'); + if(highSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); + } + + if (assuranceLevel === 'substantial') { + return next(); + } + + const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); + if (substantialSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); + } + + if (assuranceLevel !== 'none') { + return next(); + } + + if (getSessionWithAssuranceLevel(sessions, 'low')) { + return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); + } + + } catch (exception) { + console.log(exception); + console.log(exception.cause); + } + + return next(); + } +} + diff --git a/src/router.js b/src/router.js new file mode 100644 index 0000000..5fc734e --- /dev/null +++ b/src/router.js @@ -0,0 +1,36 @@ +import { Router, json } from 'express'; +import createController from './controller'; + +function preventBrowserCache(req, res, next) { + res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); + res.header('Expires', '-1'); + res.header('Vary', '*'); + res.header('Pragma', 'no-cache'); + return next(); +}; + +export default function loadRoutes(app, config) { + + const { basePath = '/auth' } = config; + const { + loginCallback, + login, + logout, + isLoggedin, + logoutCallback, + loggedoutEvent, + refreshToken + } = createController(config); + + const router = new Router(); + // warning printen als trust proxy niet enabled is? of standaard enablen? + router.get(`${basePath}/login/callback`, preventBrowserCache, loginCallback); + router.get(`${basePath}/login`, preventBrowserCache, login); + router.get(`${basePath}/logout`, preventBrowserCache, logout); + router.get(`${basePath}/isloggedin`, preventBrowserCache, isLoggedin); + router.get(`${basePath}/logout/callback`, preventBrowserCache, logoutCallback); + router.post(`${basePath}/event/loggedout`, json(), loggedoutEvent); + app.use(refreshToken); + + return router; +}; diff --git a/src/service.js b/src/service.js new file mode 100644 index 0000000..fe195da --- /dev/null +++ b/src/service.js @@ -0,0 +1,41 @@ +import { parseBody } from './helpers'; +import { getUserTokenFromAuthorizationCode, refreshToken } from './accessToken'; + +export default function createService(config) { + const { + clientId, + clientSecret, + url, + } = config; + + async function requestUserWithToken(token) { + const response = await fetch( + `${url}/me`, + { + headers: { + Authorization: `bearer ${token}` + } + } + ); + + return parseBody(response); + } + + async function loginUser(code) { + + const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); + const user = await requestUserWithToken(userToken.accessToken); + + return { user, userToken }; + } + + function refresh(token) { + return refreshToken(token); + } + + return { + loginUser, + requestUserWithToken, + refresh + }; +} diff --git a/src/sessionStore.js b/src/sessionStore.js new file mode 100644 index 0000000..295ce0b --- /dev/null +++ b/src/sessionStore.js @@ -0,0 +1,60 @@ + +import fetch from 'isomorphic-fetch'; + +export async function getSessions(consentUrl, ssoKey, accessToken) { + let body; + let response; + + try { + response = await fetch( + `${consentUrl}/sessions/${ssoKey}`, + { + method: 'GET', + headers: { + Authorization: `bearer ${accessToken}`, + }, + }, + ); + + body = await response.json(); + } catch (e) { + console.log(e); + body = {}; + response = response || {}; + } + + if (!response.ok) { + throw Object.assign(body, { status: response.status }); + } + + return body; +} + + +export async function deleteSessions(consentUrl, ssoKey, accessToken) { + let body; + let response; + + try { + response = await fetch( + `${consentUrl}/sessions/${ssoKey}`, + { + method: 'DELETE', + headers: { + Authorization: `bearer ${accessToken}`, + }, + }, + ); + + body = await response.json(); + } catch (e) { + body = {}; + response = response || {}; + } + + if (!response.ok) { + throw Object.assign(body, { status: response.status }); + } + + return body; +} diff --git a/test/loginCallback.js b/test/loginCallback.js new file mode 100644 index 0000000..2c6d735 --- /dev/null +++ b/test/loginCallback.js @@ -0,0 +1,376 @@ +'use strict'; +const assert = require('assert'); +const mockExpress = require('express')(); +const reqres = require('reqres'); + +const correctConfig = require('./mocks/correctConfig'); +require('./mocks/oauth'); +const createRouter = require('../src/router'); + +const user = require('./mocks/user'); + + +describe('test #callback', function onDescribe() { + + it('callback redirect to errorRedirect when no code in query', (done) => { + const errorRedirect = '/error'; + const config = Object.assign(correctConfig, { + errorRedirect + }) + const router = createRouter(mockExpress, config); + const req = reqres.req({ + url: '/auth/login/callback', + session: { + save: cb => cb() + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.redirect.calledWith(errorRedirect)); + return done(); + }); + + router.handle(req, res); + }); + + it('callback redirect to errorRedirect when no state in query', (done) => { + const errorRedirect = '/error'; + const config = Object.assign(correctConfig, { + errorRedirect + }) + const router = createRouter(mockExpress, config); + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla' + }, + session: { + save: cb => cb() + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.redirect.calledWith(errorRedirect)); + return done(); + }); + + router.handle(req, res); + }); + + it('callback should 404 when serviceProvider is unknown', (done) => { + const errorRedirect = '/error'; + const config = Object.assign(correctConfig, { + errorRedirect + }) + const router = createRouter(mockExpress, config); + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: 'nonExisting_1234' + }, + session: { + save: cb => cb() + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.sendStatus.calledWith(404)); + return done(); + }); + + router.handle(req, res); + }); + + + it('callback should redirect to login url when state does not matches key', (done) => { + const errorRedirect = '/error'; + const config = Object.assign(correctConfig, { + errorRedirect + }) + const router = createRouter(mockExpress, config); + + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: 'aprofiel_1234' + }, + session: { + save: cb => cb(), + aprofiel_key: 'aprofiel_43321' + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.redirect.called); + return done(); + }); + + router.handle(req, res); + }); + + it('should login and redirect to fromUrl', (done) => { + user.nockGetAprofiel(correctConfig.apiHost); + const errorRedirect = '/error'; + const fromUrl = '/fromUrl' + const config = Object.assign(correctConfig, { + errorRedirect + }) + const router = createRouter(mockExpress, config); + const key = 'aprofiel_1234' + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: key + }, + session: { + save: cb => cb(), + aprofiel_key: key, + fromUrl + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(req.session.user); + assert(req.session.userToken); + assert(res.redirect.calledWith(fromUrl)); + return done(); + }); + try { + router.handle(req, res); + } catch (e) { + console.log(e); + return done(e); + } + }); + + it('should login and redirect to / if no fromUrl', (done) => { + user.nockGetAprofiel(correctConfig.apiHost); + const errorRedirect = '/error'; + const config = Object.assign(correctConfig, { + errorRedirect + }) + const router = createRouter(mockExpress, config); + const key = 'aprofiel_1234' + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: key + }, + session: { + save: cb => cb(), + aprofiel_key: key, + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.redirect.calledWith('/')); + return done(); + }); + try { + router.handle(req, res); + } catch (e) { + console.log(e); + return done(e); + } + + }); + + it('should redirect to errorRedirect if login errors', (done) => { + user.nockGetAprofiel(correctConfig.apiHost, 400); + const errorRedirect = '/error'; + const config = Object.assign(correctConfig, { + errorRedirect + }) + + const router = createRouter(mockExpress, config); + const key = 'aprofiel_1234' + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: key + }, + session: { + save: cb => cb(), + aprofiel_key: key + }, + }); + + const res = reqres.res({ + header: () => {} + }); + res.on('end', () => { + assert(res.redirect.calledWith(config.errorRedirect)); + return done(); + }); + + router.handle(req, res); + }); + + it('should call hooks', (done) => { + user.nockGetAprofiel(correctConfig.apiHost); + const hookTest = 'blabla' + const aprofielConfig = Object.assign({}, correctConfig.serviceProviders.aprofiel); + aprofielConfig.hooks = { + loginSuccess: [ + (req, res, next) => { + req.session.hookTest = hookTest; + return req.session.save(() => next()); + }, + (req, res, next) => { + req.session.hookTest2 = hookTest; + return req.session.save(() => next()); + } + ] + } + + const config = Object.assign({}, correctConfig); + config.serviceProviders.aprofiel = aprofielConfig; + + const router = createRouter(mockExpress, config); + const key = 'aprofiel_1234' + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: key + }, + session: { + save: cb => cb(), + aprofiel_key: key + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert.equal(req.session.hookTest, hookTest); + assert.equal(req.session.hookTest2, hookTest); + return done(); + }); + try { + router.handle(req, res); + } catch (e) { + console.log(e); + return done(e); + } + }); + + it('should redirect to error page if hooks fail', (done) => { + user.nockGetAprofiel(correctConfig.apiHost); + const aprofielConfig = Object.assign({}, correctConfig.serviceProviders.aprofiel); + aprofielConfig.hooks = { + loginSuccess: [ + (req, res, next) => { + return next({message: 'this is an error'}) + } + ] + } + + const config = Object.assign({}, correctConfig); + config.serviceProviders.aprofiel = aprofielConfig; + + const router = createRouter(mockExpress, config); + const key = 'aprofiel_1234' + const req = reqres.req({ + url: '/auth/login/callback', + query: { + code: 'blabla', + state: key + }, + session: { + save: cb => cb(), + aprofiel_key: key + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.redirect.calledWith(config.errorRedirect)); + return done(); + }); + try { + router.handle(req, res); + } catch (e) { + console.log(e); + return done(e); + } + }); + + + it('should use a custom redirect uri', (done) => { + user.nockGetAprofiel(correctConfig.apiHost); + const errorRedirect = '/error'; + const config = Object.assign({}, correctConfig, { + errorRedirect, + serviceProviders: { + aprofiel: Object.assign({}, correctConfig.serviceProviders.aprofiel, {redirectUri: '/custom/callback'}) + } + }) + const router = createRouter(mockExpress, config); + router.get('/custom/callback', (req, res, next) => { + return res.send('ok'); + }); + + const key = 'aprofiel_1234' + const req = reqres.req({ + url: '/custom/callback', + query: { + code: 'blabla', + state: key + }, + session: { + save: cb => cb(), + aprofiel_key: key, + } + }); + + const res = reqres.res({ + header: () => {} + }); + + res.on('end', () => { + assert(res.send.calledOnce); + return done(); + }); + try { + router.handle(req, res); + } catch (e) { + console.log(e); + return done(e); + } + }); +}); From feba1222a2d5dc93acb17b93c75b417db58b32ba Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 25 Feb 2020 15:42:26 +0100 Subject: [PATCH 04/67] add trust proxy --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index 79e87ab..8e4da49 100644 --- a/readme.md +++ b/readme.md @@ -33,6 +33,8 @@ app.use(Session({ cookie: { secure: true } })); +app.enable('trust proxy'); + const authConfig = { clientId: 'client-id', From cec6ad1320400dfa2011c05a97118e561c20c9a5 Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 25 Feb 2020 15:46:18 +0100 Subject: [PATCH 05/67] fix authentication methods table --- readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/readme.md b/readme.md index 8e4da49..9fb39d0 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ This package contains two components: -1. a router which exposes a couple of endpoints which can be used to implement login in your application. +1. A router which exposes a couple of endpoints which can be used to implement login in your application. 2. A middleware that can be used to enable single sign-on (SSO) between different apps inside the antwerp/digipolis ecosystem. In this version aprofiel with assurance levels and different authentication methods is supported (for mprofiel support, check out version 1.X.X). @@ -13,7 +13,7 @@ You should use `express-session` in your application to enable session storage. Be sure to load this middleware before other routes in your application, this enables the automatic refresh of the user's access token. -`trust proxy` should also be set to true to enable automatic generation of the applications login callback. +`trust proxy` should also be set to true to enable automatic generation of the application's login callback. ### Basic example @@ -80,7 +80,7 @@ The login router & the SSO middleware use the same configuration. The url of the consent api, is necessary to enable SSO (also see section api store). (e.g. https://api-gw-a.antwerpen.be/acpaas/consent/v1) -- **defaultScopes**: *string[]* +- **defaultScopes**: *string[]* list of scopes you will always use (see section scopes) Should be compatible with assurance level = low - **errorRedirect**: *string* (default: '/') @@ -228,7 +228,7 @@ after logout. # Available authentication methods -| Name | Assurance level | context | Description | +| Name | Assurance level | context | Description | | --------------------- | --------------- | --------------------------------------------------------------------------- | | iam-aprofiel-userpass | low | citizen | Our default aprofiel authentication with username and password | | fas-citizen-bmid | substantial | citizen | Belgian Mobile ID (e.g. Itsme) | From 55434864930895d07d72af7379a8f0d7787d101f Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 25 Feb 2020 15:47:28 +0100 Subject: [PATCH 06/67] fix authentication methods table --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 9fb39d0..37e9b02 100644 --- a/readme.md +++ b/readme.md @@ -229,7 +229,7 @@ after logout. | Name | Assurance level | context | Description | -| --------------------- | --------------- | --------------------------------------------------------------------------- | +| --------------------- | --------------- | -----------|--------------------------------------------------------------- | | iam-aprofiel-userpass | low | citizen | Our default aprofiel authentication with username and password | | fas-citizen-bmid | substantial | citizen | Belgian Mobile ID (e.g. Itsme) | | fas-citizen-otp | substantial | citizen | Authentication with one time password (e.g. sms) | From 668aa74b0dbeb311ce41d10725b3335c08ed4c75 Mon Sep 17 00:00:00 2001 From: Stefan Date: Wed, 26 Feb 2020 10:38:27 +0100 Subject: [PATCH 07/67] update readme and use hooks --- readme.md | 54 ++++++++++++++++++------------------- src/controller.js | 28 +++++++++++++------ src/hooks/assuranceLevel.js | 53 ------------------------------------ src/hooks/deleteSessions.js | 2 +- 4 files changed, 47 insertions(+), 90 deletions(-) delete mode 100644 src/hooks/assuranceLevel.js diff --git a/readme.md b/readme.md index 37e9b02..f90f188 100644 --- a/readme.md +++ b/readme.md @@ -77,10 +77,10 @@ The login router & the SSO middleware use the same configuration. - **clienSecret**: *string* Client credentials from the API gateway (see section api store) - **consentUrl**: *string* - The url of the consent api, is necessary to enable SSO + The url of the consent api is necessary to enable SSO (also see section api store). (e.g. https://api-gw-a.antwerpen.be/acpaas/consent/v1) -- **defaultScopes**: *string[]* +- **defaultScopes**: *string[ ]* list of scopes you will always use (see section scopes) Should be compatible with assurance level = low - **errorRedirect**: *string* (default: '/') @@ -89,33 +89,33 @@ The login router & the SSO middleware use the same configuration. Hooks can be used to add custom logic to the login process. Can be used to modify your session or clean up when logging out. Each hook has the same signature as express middleware `(req, res, next) => {})` - - **preLogin**: *function[]* + - **preLogin**: *function[ ]* List of functions that will be executed before login - - **preLogout**: *function[]* + - **preLogout**: *function[ ]* List of functions that will be executed before logout - - **loginSuccess**: *function[]* + - **loginSuccess**: *function[ ]* List of functions that will be executed when login has succeeded - - **logoutSuccess**: *function[]* + - **logoutSuccess**: *function[ ]* List of functions that will be executed when logout has succeeded - **key**: *string* (default: 'user') - The loggedin user will be stored on `req.session`. This property defines where the user and his accessToken will be stored. - for 'user', the user will be at `req.session.user` and the accesstoken will be at `req.session.userToken` -- **logout** (optional, but needed for SLO with the event handler) - - **headerKey** *string*: + The loggedin user will be stored on `req.session`. This property defines where the user and his accesstoken will be stored. + For 'user', the user will be at `req.session.user` and the accesstoken will be at `req.session.userToken` +- **logout** (optional, but needed for single logout(SLO) with the event handler) + - **headerKey** *string* the name of the http header where the key is located (defaults to `x-logout-token`) - **securityHash** *string* bcrypt hash of the token that will be placed in the http header. - - **sessionStoreLogoutAdapter** *Function*: + - **sessionStoreLogoutAdapter** *Function* function that returns a promise when the sessionStore has been successfully updated and rejects otherwise. This adapter is responsible for removing the session. [More information](#creating-and-using-sessionstorelogoutadapters) - **oauthHost**: *string* - this is where the actual login process starts after leaving your application. This is needed to generate a redirect url to the login page + This is where the actual login process starts after leaving your application. This is needed to generate a redirect url to the login page (e.g.: https://api-oauth2-a.antwerpen.be) - **refresh**: *boolean* (default false) Enables automatic refresh of the user's access token - **scopeGroups**: *object* - scopeGroups is an object where all keys should have an array of scopes as values. These can be used to request additional scopes when logging in through the use of the query parameter `scopeGroups` ([available scopes](#available-scopes) + scopeGroups is an object where all keys should have an array of scopes as values. These can be used to request additional scopes when logging in through the use of the query parameter `scopeGroups` ([available scopes](#available-scopes)) - **url**: *String* - url where the user will be retrieved with after login has succeeded + Url where the user will be retrieved with after login has succeeded (e.g.: https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1) @@ -123,7 +123,7 @@ The login router & the SSO middleware use the same configuration. For this module to fully work, some configuration on the API store is required. -After creating your application on the api store, you should create a contract with the Shared Identity API. +After creating your application on the api store, you should create a contract with the Shared Identity Data API. ![Create Contract shared identity](/assets/shared-identity.png "Create contract shared identity") @@ -143,12 +143,11 @@ You'll need to configure your callback path here normally, it will be `:///auth/login/callback` (this module exposes this endpoint) (change the basePath if you have configured another) -### Eventhandler configuration (for single log-off) +### Eventhandler configuration (for SLO) Navigate to the eventhandler and go to the oauth namespace ![oauth namespace](/assets/eventhandler.png "oauth namespace") -Add a new wildcard subscription ( -Configure your endpoint with the correct params: +Add a new wildcard subscription ![subscription configuration](/assets/config-event.png "subscription configuration") the push url is `://{basePath}/event/loggedout/` @@ -192,9 +191,8 @@ If the user is not logged in the following payload is returned. ### GET {basePath}/logout -Redirects the user to the logout for the specified service. This will cause the session to be destroyed on the IDP. - -the `fromUrl` query parameter can be used to redirect the user to a given page +Redirects the user to the logout. This will cause the session to be destroyed on the IDP. +The `fromUrl` query parameter can be used to redirect the user to a given page after logout. @@ -228,7 +226,7 @@ after logout. # Available authentication methods -| Name | Assurance level | context | Description | +| Name | Assurance level | Context | Description | | --------------------- | --------------- | -----------|--------------------------------------------------------------- | | iam-aprofiel-userpass | low | citizen | Our default aprofiel authentication with username and password | | fas-citizen-bmid | substantial | citizen | Belgian Mobile ID (e.g. Itsme) | @@ -242,7 +240,7 @@ after logout. # Creating and using SessionStoreLogoutAdapters -Your sessionstore can be backed by your server's memory or a database system like postgres, mongodb. Because we have no generic way to query each type of store, +Your sessionstore can be backed by your server's memory or a database system like postgreSQL, mongodb. Because we have no generic way to query each type of store, we introduce the concept of adapters. `function adapter(sessionKey: String, accessTokenKey: String, userInformation: Object): Promise` @@ -251,9 +249,9 @@ An adapter should return a promise which resolves if it succeeds in altering the It has 3 arguments: -- **sessionKey**: this is the key under which your user is stored in the session (this is the same as the key property in your serviceProvider, defaults to `user`). essentially, +- **sessionKey**: This is the key under which your user is stored in the session (this is the same as the key property in your serviceProvider, defaults to `user`). essentially, this is the property that should be removed from your session to remove the user's information -- **accessTokenKey**: this is the key of the accessToken property inside your session, which should also be removed. +- **accessTokenKey**: this is the key of the accesstoken property inside your session, which should also be removed. - **userInformation**: this is an object that contains the information of the user that has been loggedout. - **user**: the id of the user, - **timestamp**: timestamp of logout. Could be used to ignore the request if the logout was long ago. @@ -275,7 +273,7 @@ function createAdapter(options) { return function adapter(sessionKey, accessTokenKey, userInformation) { return new Promise((resolve, reject) => { const session = db.query({ - [`session.${sessionKey}.id]: userInformation.user + [`session.${sessionKey}.id`]: userInformation.user }); // alter record and resave or do it in one query. @@ -286,7 +284,7 @@ function createAdapter(options) { }) } - const authConfig = require(./authConfig); + const authConfig = require('./authConfig'); const adapter = createAdapter({ connectionString: process.env.connectionString @@ -295,7 +293,7 @@ function createAdapter(options) { Object.assign(authConfig, { logout: { adapter, - securityHash: 'blabla + securityHash: 'blabla' } }); } diff --git a/src/controller.js b/src/controller.js index fcbab03..dcec630 100644 --- a/src/controller.js +++ b/src/controller.js @@ -4,7 +4,8 @@ import uuid from 'uuid'; import authMethodsConfig from './authMethods'; import createService from './service'; import {getHost, logoutEncrypt, runHooks} from './helpers'; - +import createDeleteSessionsHook from './hooks/deleteSessions'; +import createAssuranceLevelAndAuthMethodHook from './hooks/assuranceLevelAndAuthMethod'; const EXPIRY_MARGIN = 5 * 60 * 1000; export default function createController(config) { const { @@ -20,6 +21,17 @@ export default function createController(config) { key: objectKey = 'user' } = config; + let { + preLogin: preLoginHooks = [], + preLogout: preLogoutHooks = [], + loginSuccess: loginSuccessHooks = [], + logoutSuccess: logoutSuccessHooks = [], + } = hooks; + + loginSuccessHooks.push(createAssuranceLevelAndAuthMethodHook(config)); + preLogoutHooks.push(createDeleteSessionsHook(config)); + + const service = createService(config); function determineScopes(options) { @@ -92,7 +104,7 @@ export default function createController(config) { return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; } - function createLogoutUrl({ userId, token, redirectUri }) { + function createLogoutUrl({ userId, token, redirectUri, service = 'iam-aprofiel-userpass'}) { const data = JSON.stringify({ user_id: userId, @@ -102,9 +114,8 @@ export default function createController(config) { const query = { client_id: clientId, - service: 'astad.aprofiel.v1', + service, data: logoutEncrypt(data, clientSecret), - auth }; return `${oauthHost}/v2/logout/redirect/encrypted?${qs.stringify(query)}`; @@ -118,7 +129,7 @@ export default function createController(config) { req.session[`loginKey`] = stateKey; req.session.fromUrl = req.query.fromUrl || '/'; - runHooks(hooks.preLogin, req, res, () => { + runHooks(preLoginHooks, req, res, () => { return req.session.save(() => res.redirect(url)); }); } @@ -155,7 +166,7 @@ export default function createController(config) { req.session[objectKey] = user; req.session[`${objectKey}Token`] = userToken; - runHooks(hooks.loginSuccess, req, res, (error) => { + runHooks(loginSuccessHooks, req, res, (error) => { if (error) { console.log(error); return res.redirect(errorRedirect); @@ -165,7 +176,7 @@ export default function createController(config) { } function logoutCallback(req, res) { - runHooks(hooks.logoutSuccess, req, res, () => { + runHooks(logoutSuccessHooks, req, res, () => { delete req.session[objectKey]; delete req.session[`${objectKey}Token`]; const tempSession = req.session; @@ -192,10 +203,11 @@ export default function createController(config) { redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, token: token.accessToken, userId: req.session[objectKey].profile.id, + service: req.session.authenticationMethod }; const logoutUrl = createLogoutUrl(logoutParams); - runHooks(hooks.preLogout, req, res, () => { + runHooks(preLogoutHooks, req, res, () => { req.session.save(() => res.redirect(logoutUrl)); }); } diff --git a/src/hooks/assuranceLevel.js b/src/hooks/assuranceLevel.js deleted file mode 100644 index 02da6f5..0000000 --- a/src/hooks/assuranceLevel.js +++ /dev/null @@ -1,53 +0,0 @@ -import cookieParser from 'cookieparser'; -import { getSessions } from '../sessionStore'; - - -function getHighestAssuranceLevel(sessions = []) { - let highestAssuranceLevel = 'low'; - - for (let i = 0; i < sessions.length; i++) { - if (sessions[i].assuranceLevel === 'high') { - return 'high'; - } - - if (sessions[i].assuranceLevel === 'substantial') { - highestAssuranceLevel = 'substantial'; - } - } - - return highestAssuranceLevel; -} - - -export default function createAssuranceLevelHook({key = 'user', ssoCookieName = 'dgp.auth.ssokey', consentUrl}) { - return async (req, res, next) => { - const { accessToken = false } = req.session[`${key}Token`] || {}; - if (!accessToken) { - return next(); - } - - const cookieHeader = req.get('cookie'); - - if (!cookieHeader) { - return next(); - } - - const cookies = cookieParser.parse(cookieHeader); - const ssoKey = cookies[ssoCookieName]; - - if (!ssoKey) { - return next(); - } - - try { - const { sessions = [] } = await getSessions(consentUrl, ssoKey, token.accessToken); - const assuranceLevel = getHighestAssuranceLevel(sessions); - req.session[key].assuranceLevel = assuranceLevel; - } catch (e) { - console.log(e); - } - - return next(); - - } -} \ No newline at end of file diff --git a/src/hooks/deleteSessions.js b/src/hooks/deleteSessions.js index d2ceeb7..62a69f0 100644 --- a/src/hooks/deleteSessions.js +++ b/src/hooks/deleteSessions.js @@ -2,7 +2,7 @@ import { deleteSessions } from '../sessionStore'; import { getAccessToken } from '../accessToken'; -export default function getDeleteSessionsHook(options) { +export default function createDeleteSessionsHook(options) { const { clientId, clientSecret, From 15be8dc164674352d476ec72e779b2c2ef3a9255 Mon Sep 17 00:00:00 2001 From: Stefan Date: Wed, 26 Feb 2020 10:38:35 +0100 Subject: [PATCH 08/67] update readme and use hooks --- src/hooks/assuranceLevelAndAuthMethod.js | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/hooks/assuranceLevelAndAuthMethod.js diff --git a/src/hooks/assuranceLevelAndAuthMethod.js b/src/hooks/assuranceLevelAndAuthMethod.js new file mode 100644 index 0000000..8140158 --- /dev/null +++ b/src/hooks/assuranceLevelAndAuthMethod.js @@ -0,0 +1,58 @@ +import cookieParser from 'cookieparser'; +import { getSessions } from '../sessionStore'; + + +function getHighestAssuranceLevelSession(sessions = []) { + let highestAssuranceLevelSession = { + assuranceLevel: 'low', + authenticationMethod: 'iam-aprofiel-userpass' + }; + + for (let i = 0; i < sessions.length; i++) { + if (sessions[i].assuranceLevel === 'high') { + return sessions[i]; + } + + if (sessions[i].assuranceLevel === 'substantial') { + highestAssuranceLevelSession = session[i]; + } + } + + return highestAssuranceLevelSession; +} + + +export default function createAssuranceLevelAndAuthMethodHook({key = 'user', ssoCookieName = 'dgp.auth.ssokey', consentUrl}) { + return async (req, res, next) => { + const { accessToken = false } = req.session[`${key}Token`] || {}; + if (!accessToken) { + return next(); + } + + const cookieHeader = req.get('cookie'); + + if (!cookieHeader) { + return next(); + } + + const cookies = cookieParser.parse(cookieHeader); + const ssoKey = cookies[ssoCookieName]; + + if (!ssoKey) { + return next(); + } + + try { + const { sessions = [] } = await getSessions(consentUrl, ssoKey, token.accessToken); + const {assuranceLevel, authenticationMethod } = getHighestAssuranceLevelSession(sessions); + req.session[key].assuranceLevel = assuranceLevel; + req.session[key].authenticationMethod = authenticationMethod; + + } catch (e) { + console.log(e); + } + + return next(); + + } +} \ No newline at end of file From 3b25a1fca02b90a8e72362af03b495240970d39b Mon Sep 17 00:00:00 2001 From: Stefan Date: Thu, 27 Feb 2020 15:42:10 +0100 Subject: [PATCH 09/67] - update readme - update tests --- .gitignore | 2 +- .nycrc | 3 + dist/index.cjs.js | 594 ----------------------- dist/index.es.js | 590 ---------------------- examples/basic-mongo/config.js | 1 - index.js | 3 - old-readme.md | 430 ---------------- package-lock.json | 320 ++++++++++++ package.json | 7 +- readme.md | 10 +- src/accessToken.js | 6 +- src/controller.js | 68 +-- src/helpers.js | 24 - src/hooks/assuranceLevelAndAuthMethod.js | 23 +- src/hooks/deleteSessions.js | 11 +- src/middleware/sso.js | 17 +- src/service.js | 11 +- src/sessionStore.js | 59 +-- test/isLoggedin.js | 8 +- test/loggedout.js | 39 +- test/login.js | 265 +++++++--- test/loginCallback.js | 200 +------- test/logout.js | 82 ++-- test/logoutCallback.js | 48 +- test/mocks/correctConfig.js | 66 +-- test/mocks/oauth.js | 10 - test/mocks/sessionStore.js | 14 + test/mocks/sessionStoreResponses.js | 59 +++ test/mocks/user.js | 17 +- test/refresh.js | 46 +- test/sso.js | 222 +++++++++ 31 files changed, 1038 insertions(+), 2217 deletions(-) create mode 100644 .nycrc delete mode 100644 dist/index.cjs.js delete mode 100644 dist/index.es.js delete mode 100644 index.js delete mode 100644 old-readme.md create mode 100644 test/mocks/sessionStore.js create mode 100644 test/mocks/sessionStoreResponses.js create mode 100644 test/sso.js diff --git a/.gitignore b/.gitignore index e75c0d7..cd1ed4f 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,7 @@ build/Release # Dependency directory # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git node_modules - +dist/ # Editors *.sublime* nbproject/* diff --git a/.nycrc b/.nycrc new file mode 100644 index 0000000..e1552da --- /dev/null +++ b/.nycrc @@ -0,0 +1,3 @@ +{ + "extends": "@istanbuljs/nyc-config-babel" +} \ No newline at end of file diff --git a/dist/index.cjs.js b/dist/index.cjs.js deleted file mode 100644 index ffa1741..0000000 --- a/dist/index.cjs.js +++ /dev/null @@ -1,594 +0,0 @@ -'use strict'; - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var express = require('express'); -var bcrypt = _interopDefault(require('bcryptjs')); -var qs = _interopDefault(require('querystring')); -var uuid = _interopDefault(require('uuid')); -var async = _interopDefault(require('async')); -var crypto = require('crypto'); -var oauth = require('oauth'); -var cookieParser = _interopDefault(require('cookie')); -var fetch$1 = _interopDefault(require('isomorphic-fetch')); - -var authMethodsConfig = { - citizen: { - low: ['iam-aprofiel-userpass', 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], - substantial: ['fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], - high: ['fas-citizen-eid'] - }, - enterprise: { - substantial: ['fas-enterprise-bmid', 'fas-enterprise-otp', 'fas-enterprise-totp', 'fas-enterprise-eid'], - high: ['fas-enterprise-eid'] - } -}; - -const ALGORITHM = 'aes-128-ctr'; -function logoutEncrypt(text, password) { - const hash = crypto.createHash('sha1'); - hash.update(password); - const key = hash.digest().slice(0, 16); - const ivBuffer = Buffer.alloc(16); - const cipher = crypto.createCipheriv(ALGORITHM, key, ivBuffer); - let crypted = cipher.update(text, 'utf8', 'hex'); - crypted += cipher.final('hex'); - return crypted; -} -function getHost(req) { - return `${req.protocol}://${req.get('host')}`; -} -function runHooks(configuredHook, req, res, next) { - if (!configuredHook || !Array.isArray(configuredHook)) { - return next(); - } - - const hooks = configuredHook.map(hook => cb => hook(req, res, cb)); - async.series(hooks, next); -} -function parseBody(response) { - const contentType = response.headers.get('content-type'); - - if (!contentType) { - return Promise.resolve(); - } - - if (contentType.includes('json')) { - return response.json(); - } - - if (contentType.includes('text')) { - return response.text(); - } - - if (contentType.includes('form-data') >= 0) { - return response.formData(); - } - - return response; -} - -const tokenStore = {}; -const ACCESS_TOKEN_PATH = '/oauth2/token'; -const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin - -function createUserToken(results, refreshToken) { - return { - accessToken: results.access_token, - refreshToken, - expiresIn: new Date(new Date().getTime() + results.expires_in * 1000 - EXPIRY_MARGIN), - isRefreshing: false - }; -} - -function getNewAccessToken(clientId, clientSecret, url) { - const oauth2 = new oauth.OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); - return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken('', { - grant_type: 'client_credentials' - }, (err, accessToken, refreshToken, results) => { - if (err) { - return reject(err); - } - - return resolve({ - accessToken, - expiry: Date.now() + results.expires_in * 1000 - EXPIRY_MARGIN - }); - }); - }); -} - -function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url) { - const oauth2 = new oauth.OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); - return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken(code, { - grant_type: 'authorization_code' - }, (err, accessToken, refreshToken, results) => { - if (err) { - return reject(err); - } - - const userToken = createUserToken(results, refreshToken); - return resolve(userToken); - }); - }); -} -function refreshToken(token) { - const oauth2 = new oauth.OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); - return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken(token.refreshToken, { - 'grant_type': 'refresh_token' - }, (err, accessToken, refreshToken, results) => { - if (err) { - return reject(err); - } - - const userToken = creatUserToken(results, refreshToken); - return resolve(userToken); - }); - }); -} -async function getAccessToken(clientId, clientSecret, url) { - if (tokenStore.token && tokenStore.token.expiry > Date.now()) { - return tokenStore.token.accessToken; - } - - tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); - return tokenStore.token.accessToken; -} - -function createService(config) { - const { - clientId, - clientSecret, - url - } = config; - - async function requestUserWithToken(token) { - const response = await fetch(`${url}/me`, { - headers: { - Authorization: `bearer ${token}` - } - }); - return parseBody(response); - } - - async function loginUser(code) { - const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); - const user = await requestUserWithToken(userToken.accessToken); - return { - user, - userToken - }; - } - - function refresh(token) { - return refreshToken(token); - } - - return { - loginUser, - requestUserWithToken, - refresh - }; -} - -const EXPIRY_MARGIN$1 = 5 * 60 * 1000; -function createController(config) { - const { - clientId, - clientSecret, - oauthHost, - defaultScopes = 'username', - scopeGroups = {}, - refresh = false, - hooks = {}, - basePath = '/auth', - errorRedirect = '/', - key: objectKey = 'user' - } = config; - const service = createService(config); - - function determineScopes(options) { - let scopes = [...defaultScopes]; - - if (!options.scopeGroups) { - return scopes.join(' '); - } - - const groups = options.scopeGroups.split(','); - groups.forEach(group => { - if (scopeGroups[group]) { - scopes.push(...scoupeGroups[group]); - } - }); - return scopes.join(' '); - } - - function determineAuthMethods(options) { - let { - auth_methods = false, - minimal_assurance_level = 'low', - context = 'citizen' - } = options; - - if (auth_methods && auth_methods.length > 0) { - return auth_methods; - } - - if (!['citizen', 'enterprise'].includes(context)) { - console.log(`context ${context} not known, fallback to citizen`); - context = 'citizen'; - } - - if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { - console.log(`${minimal_assurance_level} not known, fallback to lowest available`); // enterprise does not have low. - - minimal_assurance_level = 'low'; - } - - if (context === 'enterprise' && minimal_assurance_level === 'low') { - minimal_assurance_level = 'substantial'; - } - - return authMethodsConfig[context][minimal_assurance_level].join(','); - } - - function createLoginUrl(host, stateKey, options) { - const query = { - client_id: clientId, - redirect_uri: `${host}${basePath}/login/callback`, - state: stateKey, - scope: determineScopes(options), - save_consent: true, - response_type: 'code', - auth_methods: determineAuthMethods(options), - minimal_assurance_level: options.minimal_assurance_level || 'low' - }; - - if (options.lng) { - query.lng = options.lng; - } - - Object.keys(query).forEach(key => { - if (!query[key]) { - delete query[key]; - } - }); - return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; - } - - function createLogoutUrl({ - userId, - token, - redirectUri - }) { - const data = JSON.stringify({ - user_id: userId, - access_token: token, - redirect_uri: redirectUri - }); - const query = { - client_id: clientId, - service: 'astad.aprofiel.v1', - data: logoutEncrypt(data, clientSecret), - auth - }; - return `${oauthHost}/v2/logout/redirect/encrypted?${qs.stringify(query)}`; - } - - function login(req, res) { - const host = getHost(req); - const stateKey = uuid.v4(); - const url = createLoginUrl(host, stateKey, req.query); - console.log(url); - req.session[`loginKey`] = stateKey; - req.session.fromUrl = req.query.fromUrl || '/'; - runHooks(hooks.preLogin, req, res, () => { - return req.session.save(() => res.redirect(url)); - }); - } - - function isLoggedin(req, res) { - if (!req.session[objectKey]) { - return res.json({ - isLoggedin: false - }); - } - - return res.json({ - isLoggedin: true, - [objectKey]: req.session[objectKey] - }); - } - - async function loginCallback(req, res) { - if (!req.query.code || !req.query.state) { - return res.redirect(errorRedirect); - } - - if (req.query.state !== req.session[`loginKey`]) { - let loginUrl = `${basePath}/login`; - const fromUrl = req.session.fromUrl; - - if (fromUrl) { - loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; - } - - return res.redirect(loginUrl); - } - - delete req.session[`loginKey`]; - const { - user, - userToken - } = await service.loginUser(req.query.code); - req.session[objectKey] = user; - req.session[`${objectKey}Token`] = userToken; - runHooks(hooks.loginSuccess, req, res, error => { - if (error) { - console.log(error); - return res.redirect(errorRedirect); - } - - req.session.save(() => res.redirect(req.session.fromUrl || '/')); - }); - } - - function logoutCallback(req, res) { - runHooks(hooks.logoutSuccess, req, res, () => { - delete req.session[objectKey]; - delete req.session[`${objectKey}Token`]; - const tempSession = req.session; - req.session.regenerate(() => { - Object.assign(req.session, tempSession); - req.session.save(() => res.redirect(tempSession.logoutFromUrl || '/')); - }); - }); - } - - function logout(req, res) { - const logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; - - if (!req.session[objectKey]) { - return res.redirect(logoutFromUrl); - } - - const token = req.session[`${objectKey}Token`]; - req.session.logoutFromUrl = logoutFromUrl; // used to prevent eventhandler from deleting this application - - req.session.isLogoutOrigin = true; - const logoutParams = { - redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, - token: token.accessToken, - userId: req.session[objectKey].profile.id - }; - const logoutUrl = createLogoutUrl(logoutParams); - runHooks(hooks.preLogout, req, res, () => { - req.session.save(() => res.redirect(logoutUrl)); - }); - } - - function loggedoutEvent(req, res) { - const { - headerKey = 'x-logout-token', - securityHash = '', - sessionStoreLogoutAdapter: adapter = false - } = config.logout || {}; - const token = req.get(headerKey) || ''; - - if (!adapter) { - return res.sendStatus(200); - } - - if (!bcrypt.compareSync(token, securityHash)) { - return res.sendStatus(401); - } - - const accessTokenKey = `${objectKey}Token`; - return adapter(sessionKey, accessTokenKey, req.body).then(() => res.sendStatus(200)).catch(err => res.status(500).json(err)); - } - - async function refreshToken(req, res, next) { - if (!refresh) { - return next(); - } - - const tokenKey = `${objectKey}Token`; - const token = req.session[tokenKey]; - - if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN$1)) { - return next(); - } - - const newToken = await service.refresh(token); - req.session = Object.assign(req.session, { - [tokenKey]: newToken - }); - return req.session.save(() => next()); - } - - return { - login, - logout, - logoutCallback, - isLoggedin, - loginCallback, - refreshToken, - loggedoutEvent - }; -} - -function preventBrowserCache(req, res, next) { - res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); - res.header('Expires', '-1'); - res.header('Vary', '*'); - res.header('Pragma', 'no-cache'); - return next(); -} -function loadRoutes(app, config) { - const { - basePath = '/auth' - } = config; - const { - loginCallback, - login, - logout, - isLoggedin, - logoutCallback, - loggedoutEvent, - refreshToken - } = createController(config); - const router = new express.Router(); // warning printen als trust proxy niet enabled is? of standaard enablen? - - router.get(`${basePath}/login/callback`, preventBrowserCache, loginCallback); - router.get(`${basePath}/login`, preventBrowserCache, login); - router.get(`${basePath}/logout`, preventBrowserCache, logout); - router.get(`${basePath}/isloggedin`, preventBrowserCache, isLoggedin); - router.get(`${basePath}/logout/callback`, preventBrowserCache, logoutCallback); - router.post(`${basePath}/event/loggedout`, express.json(), loggedoutEvent); - app.use(refreshToken); - return router; -} - -async function getSessions(consentUrl, ssoKey, accessToken) { - let body; - let response; - - try { - response = await fetch$1(`${consentUrl}/sessions/${ssoKey}`, { - method: 'GET', - headers: { - Authorization: `bearer ${accessToken}` - } - }); - body = await response.json(); - } catch (e) { - console.log(e); - body = {}; - response = response || {}; - } - - if (!response.ok) { - throw Object.assign(body, { - status: response.status - }); - } - - return body; -} - -function getFallbackFromUrl(req, port) { - return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; -} - -function getFromUrl(req, port) { - const rawFromUrl = req.query.fromUrl || req.query.fromurl || getFallbackFromUrl(req, port); - return encodeURIComponent(rawFromUrl); -} - -function getSessionWithAssuranceLevel(sessions, assuranceLevel) { - return sessions.find(session => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); -} - -function sso(options) { - const { - clientId, - clientSecret, - key = 'user', - consentUrl, - basePath, - port = false, - ssoCookieName = 'dgp.auth.ssokey' - } = options; - const loginPath = `${basePath}/login`; - return async (req, res, next) => { - const cookieHeader = req.get('cookie'); - - if (!cookieHeader) { - return next(); - } - - const cookies = cookieParser.parse(cookieHeader); - const ssoKey = cookies[ssoCookieName]; - console.log('ssoKey', ssoKey); - - if (!ssoKey) { - return next(); - } - - const user = req.session[key] || {}; - const assuranceLevel = user.assuranceLevel || 'none'; - - if (assuranceLevel === 'high') { - return next(); - } - - try { - console.log('consentUrl', consentUrl); - const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); - console.log('has accesstoken', accessToken); - const { - sessions = [] - } = await getSessions(consentUrl, ssoKey, accessToken); - - if (!sessions || sessions.length === 0) { - return next(); - } - - const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; - const highSession = getSessionWithAssuranceLevel(sessions, 'high'); - - if (highSession) { - return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); - } - - if (assuranceLevel === 'substantial') { - return next(); - } - - const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); - - if (substantialSession) { - return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); - } - - if (assuranceLevel !== 'none') { - return next(); - } - - if (getSessionWithAssuranceLevel(sessions, 'low')) { - return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); - } - } catch (exception) { - console.log(exception); - console.log(exception.cause); - } - - return next(); - }; -} - -const REQUIRED_CONFIG_PROPS = ['clientId', 'clientSecret', 'oauthHost']; - -function validateConfig(config) { - REQUIRED_CONFIG_PROPS.forEach(prop => { - if (config[prop] == null) { - throw new Error(`${prop} is required config`); - } - }); -} - -const toExport = { - createRouter: (app, config) => { - validateConfig(config); - return loadRoutes(app, config); - }, - CreateSsoMiddleware: config => { - validateConfig(config); - return sso(config); - } -}; - -module.exports = toExport; diff --git a/dist/index.es.js b/dist/index.es.js deleted file mode 100644 index 43ec4c8..0000000 --- a/dist/index.es.js +++ /dev/null @@ -1,590 +0,0 @@ -import { Router, json } from 'express'; -import bcrypt from 'bcryptjs'; -import qs from 'querystring'; -import uuid from 'uuid'; -import async from 'async'; -import { createHash, createCipheriv } from 'crypto'; -import { OAuth2 } from 'oauth'; -import cookieParser from 'cookie'; -import fetch$1 from 'isomorphic-fetch'; - -var authMethodsConfig = { - citizen: { - low: ['iam-aprofiel-userpass', 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], - substantial: ['fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', 'fas-citizen-eid'], - high: ['fas-citizen-eid'] - }, - enterprise: { - substantial: ['fas-enterprise-bmid', 'fas-enterprise-otp', 'fas-enterprise-totp', 'fas-enterprise-eid'], - high: ['fas-enterprise-eid'] - } -}; - -const ALGORITHM = 'aes-128-ctr'; -function logoutEncrypt(text, password) { - const hash = createHash('sha1'); - hash.update(password); - const key = hash.digest().slice(0, 16); - const ivBuffer = Buffer.alloc(16); - const cipher = createCipheriv(ALGORITHM, key, ivBuffer); - let crypted = cipher.update(text, 'utf8', 'hex'); - crypted += cipher.final('hex'); - return crypted; -} -function getHost(req) { - return `${req.protocol}://${req.get('host')}`; -} -function runHooks(configuredHook, req, res, next) { - if (!configuredHook || !Array.isArray(configuredHook)) { - return next(); - } - - const hooks = configuredHook.map(hook => cb => hook(req, res, cb)); - async.series(hooks, next); -} -function parseBody(response) { - const contentType = response.headers.get('content-type'); - - if (!contentType) { - return Promise.resolve(); - } - - if (contentType.includes('json')) { - return response.json(); - } - - if (contentType.includes('text')) { - return response.text(); - } - - if (contentType.includes('form-data') >= 0) { - return response.formData(); - } - - return response; -} - -const tokenStore = {}; -const ACCESS_TOKEN_PATH = '/oauth2/token'; -const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin - -function createUserToken(results, refreshToken) { - return { - accessToken: results.access_token, - refreshToken, - expiresIn: new Date(new Date().getTime() + results.expires_in * 1000 - EXPIRY_MARGIN), - isRefreshing: false - }; -} - -function getNewAccessToken(clientId, clientSecret, url) { - const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); - return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken('', { - grant_type: 'client_credentials' - }, (err, accessToken, refreshToken, results) => { - if (err) { - return reject(err); - } - - return resolve({ - accessToken, - expiry: Date.now() + results.expires_in * 1000 - EXPIRY_MARGIN - }); - }); - }); -} - -function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url) { - const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); - return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken(code, { - grant_type: 'authorization_code' - }, (err, accessToken, refreshToken, results) => { - if (err) { - return reject(err); - } - - const userToken = createUserToken(results, refreshToken); - return resolve(userToken); - }); - }); -} -function refreshToken(token) { - const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); - return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken(token.refreshToken, { - 'grant_type': 'refresh_token' - }, (err, accessToken, refreshToken, results) => { - if (err) { - return reject(err); - } - - const userToken = creatUserToken(results, refreshToken); - return resolve(userToken); - }); - }); -} -async function getAccessToken(clientId, clientSecret, url) { - if (tokenStore.token && tokenStore.token.expiry > Date.now()) { - return tokenStore.token.accessToken; - } - - tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); - return tokenStore.token.accessToken; -} - -function createService(config) { - const { - clientId, - clientSecret, - url - } = config; - - async function requestUserWithToken(token) { - const response = await fetch(`${url}/me`, { - headers: { - Authorization: `bearer ${token}` - } - }); - return parseBody(response); - } - - async function loginUser(code) { - const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); - const user = await requestUserWithToken(userToken.accessToken); - return { - user, - userToken - }; - } - - function refresh(token) { - return refreshToken(token); - } - - return { - loginUser, - requestUserWithToken, - refresh - }; -} - -const EXPIRY_MARGIN$1 = 5 * 60 * 1000; -function createController(config) { - const { - clientId, - clientSecret, - oauthHost, - defaultScopes = 'username', - scopeGroups = {}, - refresh = false, - hooks = {}, - basePath = '/auth', - errorRedirect = '/', - key: objectKey = 'user' - } = config; - const service = createService(config); - - function determineScopes(options) { - let scopes = [...defaultScopes]; - - if (!options.scopeGroups) { - return scopes.join(' '); - } - - const groups = options.scopeGroups.split(','); - groups.forEach(group => { - if (scopeGroups[group]) { - scopes.push(...scoupeGroups[group]); - } - }); - return scopes.join(' '); - } - - function determineAuthMethods(options) { - let { - auth_methods = false, - minimal_assurance_level = 'low', - context = 'citizen' - } = options; - - if (auth_methods && auth_methods.length > 0) { - return auth_methods; - } - - if (!['citizen', 'enterprise'].includes(context)) { - console.log(`context ${context} not known, fallback to citizen`); - context = 'citizen'; - } - - if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { - console.log(`${minimal_assurance_level} not known, fallback to lowest available`); // enterprise does not have low. - - minimal_assurance_level = 'low'; - } - - if (context === 'enterprise' && minimal_assurance_level === 'low') { - minimal_assurance_level = 'substantial'; - } - - return authMethodsConfig[context][minimal_assurance_level].join(','); - } - - function createLoginUrl(host, stateKey, options) { - const query = { - client_id: clientId, - redirect_uri: `${host}${basePath}/login/callback`, - state: stateKey, - scope: determineScopes(options), - save_consent: true, - response_type: 'code', - auth_methods: determineAuthMethods(options), - minimal_assurance_level: options.minimal_assurance_level || 'low' - }; - - if (options.lng) { - query.lng = options.lng; - } - - Object.keys(query).forEach(key => { - if (!query[key]) { - delete query[key]; - } - }); - return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; - } - - function createLogoutUrl({ - userId, - token, - redirectUri - }) { - const data = JSON.stringify({ - user_id: userId, - access_token: token, - redirect_uri: redirectUri - }); - const query = { - client_id: clientId, - service: 'astad.aprofiel.v1', - data: logoutEncrypt(data, clientSecret), - auth - }; - return `${oauthHost}/v2/logout/redirect/encrypted?${qs.stringify(query)}`; - } - - function login(req, res) { - const host = getHost(req); - const stateKey = uuid.v4(); - const url = createLoginUrl(host, stateKey, req.query); - console.log(url); - req.session[`loginKey`] = stateKey; - req.session.fromUrl = req.query.fromUrl || '/'; - runHooks(hooks.preLogin, req, res, () => { - return req.session.save(() => res.redirect(url)); - }); - } - - function isLoggedin(req, res) { - if (!req.session[objectKey]) { - return res.json({ - isLoggedin: false - }); - } - - return res.json({ - isLoggedin: true, - [objectKey]: req.session[objectKey] - }); - } - - async function loginCallback(req, res) { - if (!req.query.code || !req.query.state) { - return res.redirect(errorRedirect); - } - - if (req.query.state !== req.session[`loginKey`]) { - let loginUrl = `${basePath}/login`; - const fromUrl = req.session.fromUrl; - - if (fromUrl) { - loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; - } - - return res.redirect(loginUrl); - } - - delete req.session[`loginKey`]; - const { - user, - userToken - } = await service.loginUser(req.query.code); - req.session[objectKey] = user; - req.session[`${objectKey}Token`] = userToken; - runHooks(hooks.loginSuccess, req, res, error => { - if (error) { - console.log(error); - return res.redirect(errorRedirect); - } - - req.session.save(() => res.redirect(req.session.fromUrl || '/')); - }); - } - - function logoutCallback(req, res) { - runHooks(hooks.logoutSuccess, req, res, () => { - delete req.session[objectKey]; - delete req.session[`${objectKey}Token`]; - const tempSession = req.session; - req.session.regenerate(() => { - Object.assign(req.session, tempSession); - req.session.save(() => res.redirect(tempSession.logoutFromUrl || '/')); - }); - }); - } - - function logout(req, res) { - const logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; - - if (!req.session[objectKey]) { - return res.redirect(logoutFromUrl); - } - - const token = req.session[`${objectKey}Token`]; - req.session.logoutFromUrl = logoutFromUrl; // used to prevent eventhandler from deleting this application - - req.session.isLogoutOrigin = true; - const logoutParams = { - redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, - token: token.accessToken, - userId: req.session[objectKey].profile.id - }; - const logoutUrl = createLogoutUrl(logoutParams); - runHooks(hooks.preLogout, req, res, () => { - req.session.save(() => res.redirect(logoutUrl)); - }); - } - - function loggedoutEvent(req, res) { - const { - headerKey = 'x-logout-token', - securityHash = '', - sessionStoreLogoutAdapter: adapter = false - } = config.logout || {}; - const token = req.get(headerKey) || ''; - - if (!adapter) { - return res.sendStatus(200); - } - - if (!bcrypt.compareSync(token, securityHash)) { - return res.sendStatus(401); - } - - const accessTokenKey = `${objectKey}Token`; - return adapter(sessionKey, accessTokenKey, req.body).then(() => res.sendStatus(200)).catch(err => res.status(500).json(err)); - } - - async function refreshToken(req, res, next) { - if (!refresh) { - return next(); - } - - const tokenKey = `${objectKey}Token`; - const token = req.session[tokenKey]; - - if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN$1)) { - return next(); - } - - const newToken = await service.refresh(token); - req.session = Object.assign(req.session, { - [tokenKey]: newToken - }); - return req.session.save(() => next()); - } - - return { - login, - logout, - logoutCallback, - isLoggedin, - loginCallback, - refreshToken, - loggedoutEvent - }; -} - -function preventBrowserCache(req, res, next) { - res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); - res.header('Expires', '-1'); - res.header('Vary', '*'); - res.header('Pragma', 'no-cache'); - return next(); -} -function loadRoutes(app, config) { - const { - basePath = '/auth' - } = config; - const { - loginCallback, - login, - logout, - isLoggedin, - logoutCallback, - loggedoutEvent, - refreshToken - } = createController(config); - const router = new Router(); // warning printen als trust proxy niet enabled is? of standaard enablen? - - router.get(`${basePath}/login/callback`, preventBrowserCache, loginCallback); - router.get(`${basePath}/login`, preventBrowserCache, login); - router.get(`${basePath}/logout`, preventBrowserCache, logout); - router.get(`${basePath}/isloggedin`, preventBrowserCache, isLoggedin); - router.get(`${basePath}/logout/callback`, preventBrowserCache, logoutCallback); - router.post(`${basePath}/event/loggedout`, json(), loggedoutEvent); - app.use(refreshToken); - return router; -} - -async function getSessions(consentUrl, ssoKey, accessToken) { - let body; - let response; - - try { - response = await fetch$1(`${consentUrl}/sessions/${ssoKey}`, { - method: 'GET', - headers: { - Authorization: `bearer ${accessToken}` - } - }); - body = await response.json(); - } catch (e) { - console.log(e); - body = {}; - response = response || {}; - } - - if (!response.ok) { - throw Object.assign(body, { - status: response.status - }); - } - - return body; -} - -function getFallbackFromUrl(req, port) { - return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; -} - -function getFromUrl(req, port) { - const rawFromUrl = req.query.fromUrl || req.query.fromurl || getFallbackFromUrl(req, port); - return encodeURIComponent(rawFromUrl); -} - -function getSessionWithAssuranceLevel(sessions, assuranceLevel) { - return sessions.find(session => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); -} - -function sso(options) { - const { - clientId, - clientSecret, - key = 'user', - consentUrl, - basePath, - port = false, - ssoCookieName = 'dgp.auth.ssokey' - } = options; - const loginPath = `${basePath}/login`; - return async (req, res, next) => { - const cookieHeader = req.get('cookie'); - - if (!cookieHeader) { - return next(); - } - - const cookies = cookieParser.parse(cookieHeader); - const ssoKey = cookies[ssoCookieName]; - console.log('ssoKey', ssoKey); - - if (!ssoKey) { - return next(); - } - - const user = req.session[key] || {}; - const assuranceLevel = user.assuranceLevel || 'none'; - - if (assuranceLevel === 'high') { - return next(); - } - - try { - console.log('consentUrl', consentUrl); - const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); - console.log('has accesstoken', accessToken); - const { - sessions = [] - } = await getSessions(consentUrl, ssoKey, accessToken); - - if (!sessions || sessions.length === 0) { - return next(); - } - - const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; - const highSession = getSessionWithAssuranceLevel(sessions, 'high'); - - if (highSession) { - return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); - } - - if (assuranceLevel === 'substantial') { - return next(); - } - - const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); - - if (substantialSession) { - return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); - } - - if (assuranceLevel !== 'none') { - return next(); - } - - if (getSessionWithAssuranceLevel(sessions, 'low')) { - return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); - } - } catch (exception) { - console.log(exception); - console.log(exception.cause); - } - - return next(); - }; -} - -const REQUIRED_CONFIG_PROPS = ['clientId', 'clientSecret', 'oauthHost']; - -function validateConfig(config) { - REQUIRED_CONFIG_PROPS.forEach(prop => { - if (config[prop] == null) { - throw new Error(`${prop} is required config`); - } - }); -} - -const toExport = { - createRouter: (app, config) => { - validateConfig(config); - return loadRoutes(app, config); - }, - CreateSsoMiddleware: config => { - validateConfig(config); - return sso(config); - } -}; - -export default toExport; diff --git a/examples/basic-mongo/config.js b/examples/basic-mongo/config.js index 487d445..086e0e2 100644 --- a/examples/basic-mongo/config.js +++ b/examples/basic-mongo/config.js @@ -19,7 +19,6 @@ module.exports = { hooks: { loginSuccess: [ (req, res, next) => { - console.log('hello'); req.session.user.hookTest = 'hello'; return next(); } diff --git a/index.js b/index.js deleted file mode 100644 index 52a0607..0000000 --- a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -const createRouter = require('./lib/router'); - -module.exports = createRouter; diff --git a/old-readme.md b/old-readme.md deleted file mode 100644 index ad5db24..0000000 --- a/old-readme.md +++ /dev/null @@ -1,430 +0,0 @@ -# @digipolis/auth - -@digipolis/auth is implemented as an `Express` router. It exposes a couple of endpoints -that can be used in your application to handle the process of logging into a user's -AProfile, mprofile or eid via oAuth. - -## Setup -You should use `express-session` in your application to enable session-storage. -After this step, you can load the `@digipolis/auth` middleware - -```js -app.use(require('@digipolis/auth')(app, configuration)); -``` - -Be sure to load this middleware before your other routes, otherwise the automatic refresh of the user's token won't work properly. - -Also set the `trust proxy` application variable to `true`. Otherwise the callback URL might be constructed with protocol `http` instead of `https`. - -```js -// Trust proxy to make sure the @digipolis/auth module can construct the correct OAuth2 callback URL -app.enable('trust proxy'); -``` - -### API Store configuration - -For this module to fully work, some configuration on the API store is required. -After creating your application on the api store, you should create a contract with the Aprofiel/Mprofiel API. - -![Create Contract](/assets/create-contract.png "Create contract") - -The next step is to navigate to your applications and clicking on actions - -![actions](/assets/oauth-config.png "actions") - - -Click on oauth2 config. You'll find your clientId and secret here. - -![configure callback](/assets/callback.png "callback") - -You'll need to configure your callback path here -normally, it will be `:///auth/login/callback` -(this module exposes this endpoint) - -**Unless you configured a custom redirectUri. in this case, you should enter this one** - -### Event Handler configuration (only needed for Single log out) - -Navigate to the eventhandler and go to the oauth namespace -![oauth namespace](/assets/oauth-namespace.png "oauth namespace") - -Click on the topic related to your login methodology and click on + (add subscription) -![add subscription](/assets/add-subscription.png "add subscription") - -Configure your endpoint with the correct params: - -![subscription configuration](/assets/sub-config.png "subscription configuration") -the push url is `://{basePath}/event/loggedout` -(basePath defaults to auth). - -You should add a custom header which corresponds to the headerKey in your logout configuration (defaults to `x-logout-token`). Add your token. -(this token will not be known to your application, only the hashed version) - -save your subscription. - - - -### Module Configuration - -- **oauthHost** *string*: The domain corresponding to the oauth implementation - (e.g: https://api-oauth2-o.antwerpen.be'). -- **applicationname** *string*: required if permissions need to be fetched (name known in UM) -- **apiHost** *string*: the hostname corresponding to the API gateway (e.g: https://api-gw-o.antwerpen.be). -- **basePath=/auth (optional)** *string*: the basePath which is appended to the exposed endpoints. -- **errorRedirect=/ (optional)** *string*: where to redirect if the login fails (e.g: /login) -- **logout** (optional, but needed for SLO with the event handler) - - **headerKey** *string*: the name of the http header where the key is located (defaults to `x-logout-token`) - - **securityHash** *string* bcrypt hash of the token that will be placed in the http header. - - **sessionStoreLogoutAdapter** *Function*: function that returns a promise when the sessionStore has been successfully updated and rejects otherwise. This adapter is responsible for removing the session. [More information](#creating-and-using-sessionstorelogoutadapters) -- **auth** (credentials can be acquired from the api store) - - **clientId** *string*: client id of your application - - **clientSecret** *string*: client secret of your application - - **apiKey** *string*: required to fetch permissions (not needed otherwise) -- **serviceProviders**: object of the available oauth login services (currently aprofiel & MProfiel). You only need to configure the ones that you need. - - **aprofiel** (optional if not needed): - - **scopes** *string*: The scopes you want of the profile (space separated identifiers) - - **url** *string*: the url where to fetch the aprofile after the login succeeded - - **identifier** *string*: the service identifier, used to create login url. - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri, do not use unless absolutely necessary - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - - **mprofiel** (optional if not needed): - - **scopes** *string*: the scopes you want for the profile - - **url** *string*: url where to fetch the profile - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **fetchPermissions=false** *boolean*: whether to fetch permissions in the User Man. engine - - **authenticationType=form** *string*: `form` or `so`, can be used together, see example - - **identifier=astad.mprofiel.v1** *string*: the service identifier, used to create the login url. - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - - **eid** (optional if not needed): - - **scopes** *string*: the scopes you want for the profile - - **url** *string*: url where to fetch the profile - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **identifier=acpaas.fasdatastore.v1** *string*: the service identifier, used to create the login url. - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - -### Authentication 2.0 -If you want to use authentication 2.0 you can do so by adding `version: 'v2'` and add the necessary extra config. -Your application needs a contract with the Shared Identity Data API (Similar to the [API Store configuration](#api-store-configuration)) - - - **auth2aprofiel** (optional if not needed): - - **version** *string*: authentication version you want to use (`v2` in this case). Defaults to v1. - - **minimalAssuranceLevel** *string*: Minimal Assurance Level. We support `low`, `substantial` and `high`. - - **authMethods** *string*: the authentication methods you want to allow. (e.g. `iam-aprofiel-userpass` for simple username/password based authentication) - - **scopes** *string*: the scopes you want for the profile - - **url** *string*: url where to fetch the profile - - **identifier=astad.aprofiel.v1** *string*: the service identifier, used to log out. - - **key=user** *string*: the key under the session (e.g. key=profile => req.session.profile) - - **tokenUrl** *string*: where the service should get the accesstoken - - **redirectUri (optional)** *string*: custom redirect callback uri - - **refresh** *boolean*: whether or not to refresh the access token (experimental) - - **hooks (optional)**: async execution is supported - - **loginSuccess** *array of functions*: function that can be plugged in to modify the behaviour of @digipolis/auth: function signature is the same as middleware `(req, res, next)`. these will run after successful login. - - **logoutSuccess** *array of functions*: hooks that are triggered when logout is successful - -Concerning the authentication methods, we support: - -| Name | Assurance level | Description | -| --------------------- | --------------- | -------------------------------------------------------------- | -| iam-aprofiel-userpass | low | Our default aprofiel authentication with username and password | -| fas-citizen-bmid | substantial | Belgian Mobile ID (e.g. Itsme) | -| fas-citizen-otp | substantial | Authentication with one time password (e.g. sms) | -| fas-citizen-totp | substantial | Time-based one time password (e.g. Google Authenticator) | -| fas-citizen-eid | high | Authentication with eID-card and pin-code | - -`iam-aprofiel-userpass` will only work when `minimalAssuranceLevel` is `low`. - -`minimalAssuranceLevel` `high` will only show the `fas-citizen-eid` authentication method. - -In general; if your `minimalAssuranceLevel` is set to `substantial` you can only use `substantial` and above (`high`). - -#### Authentication 2.0 example config -```js - auth2eid: { - version: 'v2', - scopes: 'astad.aprofiel.v1.username astad.aprofiel.v1.name astad.aprofiel.v1.avatar astad.aprofiel.v1.email astad.aprofiel.v1.phone crspersoon.givenName', - url: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/me', - key: 'auth2eid', - authMethods: 'fas-citizen-bmid,fas-citizen-totp,fas-citizen-otp,iam-aprofiel-userpass', - minimalAssuranceLevel: 'low', - tokenUrl: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - } -``` - -#### Authentication 2.0 available scopes - -| Scope | Alias | -| ------------------------------- | ----------------- | -| astad.aprofiel.v1.address | aprofiel.address | -| astad.aprofiel.v1.all | aprofiel.all | -| astad.aprofiel.v1.avatar | aprofiel.avatar | -| astad.aprofiel.v1.email | aprofiel.email | -| astad.aprofiel.v1.name | aprofiel.name | -| astad.aprofiel.v1.phone | aprofiel.phone | -| astad.aprofiel.v1.username | aprofiel.username | -| crspersoon.birthdate | | -| crspersoon.death | | -| crspersoon.deathdate | | -| crspersoon.familyname | | -| crspersoon.gendercode | | -| crspersoon.givenName | | -| crspersoon.housenumber | | -| crspersoon.housenumberextension | | -| crspersoon.municipalityname | | -| crspersoon.municipalityniscode | | -| crspersoon.nationality | | -| crspersoon.nationalnumber | | -| crspersoon.postalcode | | -| crspersoon.registrationstate | | -| crspersoon.streetname | | - -## Creating and using SessionStoreLogoutAdapters - -Your sessionstore can be backed by your server's memory or a database system like postgres, mongodb. Because we have no generic way to query each type of store, -we introduce the concept of adapters. - -`function adapter(sessionKey: String, accessTokenKey: String, userInformation: Object): Promise` - -An adapter should return a promise which resolves if it succeeds in altering the session or rejects when it fails. - -It has 3 arguments: - -- **sessionKey**: this is the key under which your user is stored in the session (this is the same as the key property in your serviceProvider, defaults to `user`). essentially, -this is the property that should be removed from your session to remove the user's information -- **accessTokenKey**: this is the key of the accessToken property inside your session, which should also be removed. -- **userInformation**: this is an object that contains the information of the user that has been loggedout. - - **user**: the id of the user, - - **timestamp**: timestamp of logout. Could be used to ignore the request if the logout was long ago. - - -### Available adapters -Existing adapters will be added here. - -### Example of an adapter implementation -``` -// this is a non functional example, -function createAdapter(options) { - const { - connectionString - } = options; - - const db = createConnection(connectionString); - - return function adapter(sessionKey, accessTokenKey, userInformation) { - return new Promise((resolve, reject) => { - const session = db.query({ - [`session.${sessionKey}.id]: userInformation.user - }); - - // alter record and resave or do it in one query. - // be aware that multiple sessions could have the same userId, - // maybe we should also check whether the session is currently valid. - - return resolve(); - }) - } - - const authConfig = require(./authConfig); - - const adapter = createAdapter({ - connectionString: process.env.connectionString - }); - - Object.assign(authConfig, { - logout: { - adapter, - securityHash: 'blabla - } - }); -} -``` - -## Example implementation -```js -const session = require('express-session'); -const app = express(); -app.use(session({ - secret: 'blabla' -})) - -const profileLogin = require('@digipolis/auth'); -// load session with corresponding persistence (postgres, mongo....) -const loginSuccessHook = (req, res, next) => { - req.session.isEmployee = false; - if(req.digipolisLogin && req.digipolisLogin.serviceName === 'mprofiel') { - req.session.isEmployee = true; - } - - req.session.save(() => next()); -} - -app.use(profileLogin(app, { - oauthHost: 'https://api-oauth2-o.antwerpen.be', - apiHost: 'https://api-gw-o.antwerpen.be', - errorRedirect: '/', - applicationName: 'this-is-my-app', - basePath: '/auth', - auth: { - clientId: 'your-client-id', - clientSecret: 'your-client-secret', - apiKey: 'my-api-string', // required if fetchPermissions == true - }, - serviceProviders: { - aprofiel: { - scopes: '', - url: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/v1/me', - identifier:'astad.aprofiel.v1', - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - mprofiel: { - scopes: 'all', - url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', - identifier: 'astad.mprofiel.v1', - fetchPermissions: false, - - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - 'mprofiel-so': { - scopes: 'all', - url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', - identifier: 'astad.mprofiel.v1', - fetchPermissions: false, - authenticationType: 'so' - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - eid: { - scopes: 'name nationalregistrationnumber', - url: 'https://api-gw-o.antwerpen.be/acpaas/fasdatastore/v1/me', - key: 'eid' - identifier:'acpaas.fasdatastore.v1', - tokenUrl: 'https://api-gw-o.antwerpen.be//acpaas/fasdatastore/v1/oauth2/token', - hooks: { - loginSuccess: [], - logoutSuccess: [] - } - }, - } -})); -``` - -## Session -Multiple profile can be logged in at the same time, if a key is configured inside the serviceProvider configuration. If no key is given, the default key `user` (`req.session.user`) is used, and the possibility exists that a previous user is overwritten by another when logging in. - -The token can be found under `req.session.userToken` if the default key is used, otherwise it can be found under `req.session[configuredKey + Token]` e.g: token configured is `aprofiel` , the access token will be found under `req.session.aprofielToken` -``` -{ - accessToken: 'D20A4360-EDD3-4983-8383-B64F46221115' - refreshToken: '469FDDA4-7352-4E3E-A810-D0830881AA02' - expiresIn: '2020-12-31T23.59.59.999Z' -} -``` - -## Available Routes - -Each route is prepended with the configured `basePath`, if no basePath is given, -default basePath `auth` will be used. - - -### GET {basePath}/login/{serviceName}?fromUrl={thisiswheretoredirectafterlogin}&lng={language}&auth_type={auth_type}&auth_methods={auth_methods} -This endpoints tries to redirect the user to the login page of the service corresponding to the serviceName (aprofiel, mprofiel, eid). -(this will not work if the endpoint is called with an AJAX call) - -#### query params - -- *fromUrl*: can be used to redirect the user to a given page after login. -- *lng*: can be used to define the language. Currently supported: `nl`, `de`, `fr` and `en` -- *auth_type*: can be used if you want to restrict the authentication types to others than defined in your service provider. -- *auth_methods*: can be used to override the default defined authMethods. to limit the number of available methods or to enable true SSO. (comma seperated list) - -### GET {basePath}/isloggedin - -The `isloggedin` endpoint can be used to check if the user is currently loggedIn in any of the configured services if he is logged in in some services, the following payload will be returned: -```js -{ - isLoggedin: true, - user: { ... }, - mprofiel: {...} // this corresponds to the key that is configured in the serviceProvider -} -``` - -If the user is not logged in in any of the services, the following payload is returned. -```js -{ - isLoggedin: false -} -``` - -### GET {basePath}/isloggedin/{service} - -check whether the user is logged in in the specified service. If he is logged in: - -{ - isLoggedin: true, - [serviceKey]: {...} // this corresponds to the key that is configured in the serviceProvider, defaults to user -} -``` - -If the user is not logged in int the service, the following payload is returned. -```js -{ - isLoggedin: false -} -``` - -### GET {basePath}/login/callback - -Endpoint that you should not use manually, is used to return from the identity server and fetches a user corresponding to the login and stores it on the session. - -If a redirect url was given through the `fromUrl` in the `login` endpoint, the user will be redirected to this url after the callback has executed successfully. - -If the callback is does not originate from the login flow triggered from the application, -it will trigger a 401. (this is checked with the state param). - -Hooks defined in the `serviceProviders[serviceName].hooks.loginSuccess` will be called here. -Session data can be modified in such a hook. - -### GET {basePath}/logout/{service}?fromUrl={thisiswheretoredirectafterlogout} - -Redirects the user to the logout for the specified service. This will cause the session to be destroyed on the IDP. - -the `fromUrl` query parameter can be used to redirect the user to a given page -after logout. - -### GET {basePath}/logout/callback/{service} - -Cleans up the session after the initial logout. - -### POST {basePath}/event/loggedout/{service} - -Endpoint which can be used to logout events from the eventhandler. This is used to remove a user's session when the user has logged out in an other application. - diff --git a/package-lock.json b/package-lock.json index 0edfc30..6543ac8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2189,6 +2189,19 @@ } } }, + "@babel/register": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", + "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, "@babel/template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", @@ -2245,6 +2258,72 @@ "to-fast-properties": "^2.0.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-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" + } + }, + "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/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "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 + }, "@rollup/plugin-node-resolve": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", @@ -2394,6 +2473,186 @@ "object.assign": "^4.1.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" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "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" + } + } + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -2440,6 +2699,12 @@ "node-releases": "^1.1.47" } }, + "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==", + "dev": true + }, "builtin-modules": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", @@ -2811,6 +3076,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", @@ -3224,6 +3495,20 @@ "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==", + "dev": true, + "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" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -3585,6 +3870,16 @@ "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==", + "dev": true, + "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", @@ -4056,6 +4351,12 @@ "is-stream": "^1.0.1" } }, + "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-releases": { "version": "1.1.48", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", @@ -4385,6 +4686,15 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, + "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": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -4728,6 +5038,16 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "spawn-wrap": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", diff --git a/package.json b/package.json index 55dd83e..5120ed9 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,8 @@ "module": "dist/index.es.js", "scripts": { "build": "npx rollup -c", - "pretest": "npm run build", - "prepare": "npm run build", "prepublish": "npm run build", - "test": "cross-env NODE_ENV=test nyc --reporter=lcov mocha -- -R spec -t 15000 --recursive --slow 2" + "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" }, "repository": { "type": "git", @@ -33,7 +31,10 @@ "devDependencies": { "@babel/core": "^7.8.4", "@babel/preset-env": "^7.8.4", + "@babel/register": "^7.8.3", + "@istanbuljs/nyc-config-babel": "^3.0.0", "@rollup/plugin-node-resolve": "^7.1.1", + "babel-plugin-istanbul": "^6.0.0", "cross-env": "~5.2.0", "mocha": "^6.2.0", "mockery": "~2.1.0", diff --git a/readme.md b/readme.md index f90f188..a747a34 100644 --- a/readme.md +++ b/readme.md @@ -73,15 +73,15 @@ The login router & the SSO middleware use the same configuration. - **basePath**: *string* (default: '/auth') Each of the routes in the auth router will be prepended with this property - **clientId**: *string* - Client credentials from the API gateway (see section api store) + Client credentials from the API gateway (see section [api store](#api-store-configuration)) - **clienSecret**: *string* - Client credentials from the API gateway (see section api store) + Client credentials from the API gateway (see section [api store](#api-store-configuration)) - **consentUrl**: *string* The url of the consent api is necessary to enable SSO - (also see section api store). + (also see section [api store](#api-store-configuration)). (e.g. https://api-gw-a.antwerpen.be/acpaas/consent/v1) - **defaultScopes**: *string[ ]* - list of scopes you will always use (see section scopes) + list of scopes you will always use (see section [scopes](#available-scopes)) Should be compatible with assurance level = low - **errorRedirect**: *string* (default: '/') Where your application should redirect when something goes wrong during the login process. @@ -261,7 +261,7 @@ this is the property that should be removed from your session to remove the user Existing adapters will be added here. ### Example of an adapter implementation -``` +```js // this is a non functional example, function createAdapter(options) { const { diff --git a/src/accessToken.js b/src/accessToken.js index d3ab091..37f2d10 100644 --- a/src/accessToken.js +++ b/src/accessToken.js @@ -22,7 +22,7 @@ function getNewAccessToken(clientId, clientSecret, url) { return resolve({ accessToken, - expiry: Date.now() + (results.expires_in * 1000) - EXPIRY_MARGIN, + expiresIn: Date.now() + (results.expires_in * 1000) - EXPIRY_MARGIN, }); }); }); @@ -47,7 +47,7 @@ export function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, }) } -export function refreshToken(token) { +export function refreshToken(token, clientId, clientSecret, url) { const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); return new Promise((resolve, reject) => { oauth2.getOAuthAccessToken( @@ -58,7 +58,7 @@ export function refreshToken(token) { return reject(err); } - const userToken = creatUserToken(results, refreshToken); + const userToken = createUserToken(results, refreshToken); return resolve(userToken) }); }); diff --git a/src/controller.js b/src/controller.js index dcec630..9ff87e3 100644 --- a/src/controller.js +++ b/src/controller.js @@ -7,7 +7,7 @@ import {getHost, logoutEncrypt, runHooks} from './helpers'; import createDeleteSessionsHook from './hooks/deleteSessions'; import createAssuranceLevelAndAuthMethodHook from './hooks/assuranceLevelAndAuthMethod'; const EXPIRY_MARGIN = 5 * 60 * 1000; -export default function createController(config) { +export default function createController(config) { const { basePath = '/auth', clientId, @@ -40,13 +40,12 @@ export default function createController(config) { return scopes.join(' '); } - const groups = options.scopeGroups.split(','); + const groups = Array.isArray(options.scopeGroups) ? scopeGroups : options.scopeGroups.split(','); groups.forEach(group => { if(scopeGroups[group]) { - scopes.push(...scoupeGroups[group]); + scopes.push(...scopeGroups[group]); } }) - return scopes.join(' '); } @@ -67,10 +66,10 @@ export default function createController(config) { if(!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { console.log(`${minimal_assurance_level} not known, fallback to lowest available`); - // enterprise does not have low. minimal_assurance_level = 'low'; } - + + // enterprise does not have low. if(context === 'enterprise' && minimal_assurance_level === 'low') { minimal_assurance_level = 'substantial'; } @@ -80,6 +79,7 @@ export default function createController(config) { } function createLoginUrl(host, stateKey, options) { + const fallbackAssuranceLevel = options.context === 'enterprise' ? 'substantial' : 'low'; const query = { client_id: clientId, redirect_uri: `${host}${basePath}/login/callback`, @@ -88,7 +88,7 @@ export default function createController(config) { save_consent: true, response_type: 'code', auth_methods: determineAuthMethods(options), - minimal_assurance_level: options.minimal_assurance_level || 'low' + minimal_assurance_level: options.minimal_assurance_level || fallbackAssuranceLevel } if (options.lng) { @@ -125,10 +125,8 @@ export default function createController(config) { const host = getHost(req); const stateKey = uuid.v4(); const url = createLoginUrl(host, stateKey, req.query); - console.log(url); req.session[`loginKey`] = stateKey; req.session.fromUrl = req.query.fromUrl || '/'; - runHooks(preLoginHooks, req, res, () => { return req.session.save(() => res.redirect(url)); }); @@ -162,17 +160,24 @@ export default function createController(config) { } delete req.session[`loginKey`]; - const {user, userToken} = await service.loginUser(req.query.code); - req.session[objectKey] = user; - req.session[`${objectKey}Token`] = userToken; - - runHooks(loginSuccessHooks, req, res, (error) => { - if (error) { - console.log(error); - return res.redirect(errorRedirect); - } - req.session.save(() => res.redirect(req.session.fromUrl || '/')); - }); + + try { + const { user, userToken} = await service.loginUser(req.query.code); + req.session[objectKey] = user; + req.session[`${objectKey}Token`] = userToken; + + runHooks(loginSuccessHooks, req, res, (error) => { + if (error) { + console.log(error); + return res.redirect(errorRedirect); + } + req.session.save(() => res.redirect(req.session.fromUrl || '/')); + }); + } catch (err) { + console.log('error during logincallback', err); + return res.redirect(errorRedirect); + } + } function logoutCallback(req, res) { @@ -198,21 +203,19 @@ export default function createController(config) { req.session.logoutFromUrl = logoutFromUrl; // used to prevent eventhandler from deleting this application req.session.isLogoutOrigin = true; - const logoutParams = { - redirectUri: `${helpers.getHost(req)}${basePath}/logout/callback`, + redirectUri: `${getHost(req)}${basePath}/logout/callback`, token: token.accessToken, userId: req.session[objectKey].profile.id, - service: req.session.authenticationMethod + service: req.session[objectKey].authenticationMethod }; - const logoutUrl = createLogoutUrl(logoutParams); runHooks(preLogoutHooks, req, res, () => { req.session.save(() => res.redirect(logoutUrl)); }); } - function loggedoutEvent(req, res) { + async function loggedoutEvent(req, res) { const { headerKey = 'x-logout-token', securityHash = '', @@ -224,15 +227,18 @@ export default function createController(config) { if (!adapter) { return res.sendStatus(200); } - if (!bcrypt.compareSync(token, securityHash)) { return res.sendStatus(401); } const accessTokenKey = `${objectKey}Token`; - return adapter(sessionKey, accessTokenKey, req.body) - .then(() => res.sendStatus(200)) - .catch((err) => res.status(500).json(err)); + try { + await adapter(objectKey, accessTokenKey, req.body); + return res.sendStatus(200); + } catch (err) { + console.log('error during logout event', err); + return res.status(500).json(err); + } } async function refreshToken(req, res, next) { @@ -243,10 +249,14 @@ export default function createController(config) { const tokenKey = `${objectKey}Token`; const token = req.session[tokenKey]; + if(!token) { + return next(); + } if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN)) { return next(); } + const newToken = await service.refresh(token); req.session = Object.assign(req.session, { [tokenKey]: newToken }); return req.session.save(() => next()); diff --git a/src/helpers.js b/src/helpers.js index 7f9ade9..34e4820 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -32,28 +32,4 @@ export function runHooks(configuredHook, req, res, next) { .map(hook => (cb) => hook(req, res, cb)); async.series(hooks, next); -} - - -export function parseBody(response) { - const contentType = response.headers.get('content-type'); - - if (!contentType) { - return Promise.resolve(); - } - - if (contentType.includes('json')) { - return response.json(); - } - - if (contentType.includes('text')) { - return response.text(); - } - - if (contentType.includes('form-data') >= 0) { - return response.formData(); - } - - - return response; } \ No newline at end of file diff --git a/src/hooks/assuranceLevelAndAuthMethod.js b/src/hooks/assuranceLevelAndAuthMethod.js index 8140158..a07c41c 100644 --- a/src/hooks/assuranceLevelAndAuthMethod.js +++ b/src/hooks/assuranceLevelAndAuthMethod.js @@ -1,5 +1,6 @@ -import cookieParser from 'cookieparser'; +import cookieParser from 'cookie'; import { getSessions } from '../sessionStore'; +import { getAccessToken } from '../accessToken'; function getHighestAssuranceLevelSession(sessions = []) { @@ -22,15 +23,16 @@ function getHighestAssuranceLevelSession(sessions = []) { } -export default function createAssuranceLevelAndAuthMethodHook({key = 'user', ssoCookieName = 'dgp.auth.ssokey', consentUrl}) { - return async (req, res, next) => { - const { accessToken = false } = req.session[`${key}Token`] || {}; - if (!accessToken) { - return next(); - } +export default function createAssuranceLevelAndAuthMethodHook({ + clientId, + clientSecret, + consentUrl, + key = 'user', + ssoCookieName = 'dgp.auth.ssokey', + }) { + return async (req, res, next) => { const cookieHeader = req.get('cookie'); - if (!cookieHeader) { return next(); } @@ -43,8 +45,9 @@ export default function createAssuranceLevelAndAuthMethodHook({key = 'user', sso } try { - const { sessions = [] } = await getSessions(consentUrl, ssoKey, token.accessToken); - const {assuranceLevel, authenticationMethod } = getHighestAssuranceLevelSession(sessions); + const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); + const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); + const { assuranceLevel, authenticationMethod } = getHighestAssuranceLevelSession(sessions); req.session[key].assuranceLevel = assuranceLevel; req.session[key].authenticationMethod = authenticationMethod; diff --git a/src/hooks/deleteSessions.js b/src/hooks/deleteSessions.js index 62a69f0..a554a4b 100644 --- a/src/hooks/deleteSessions.js +++ b/src/hooks/deleteSessions.js @@ -1,4 +1,4 @@ - +import cookieParser from 'cookie'; import { deleteSessions } from '../sessionStore'; import { getAccessToken } from '../accessToken'; @@ -6,8 +6,8 @@ export default function createDeleteSessionsHook(options) { const { clientId, clientSecret, - url, - consentUrl + consentUrl, + ssoCookieName = 'dgp.auth.ssokey', } = options; return async (req, res, next) => { const cookieHeader = req.get('cookie'); @@ -23,9 +23,12 @@ export default function createDeleteSessionsHook(options) { } try { - const accessToken = await getAccessToken(clientId, clientSecret, url); + console.log(clientId, clientSecret); + const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); + console.log('accesstoken', accessToken); await deleteSessions(consentUrl, ssoKey, accessToken); } catch (exception) { + console.log('the exception is here'); console.log(exception); } diff --git a/src/middleware/sso.js b/src/middleware/sso.js index a0fde16..814b770 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -38,7 +38,6 @@ export default function sso(options) { const cookies = cookieParser.parse(cookieHeader); const ssoKey = cookies[ssoCookieName]; - console.log('ssoKey', ssoKey); if (!ssoKey) { return next(); } @@ -46,25 +45,21 @@ export default function sso(options) { const user = req.session[key] || {}; const assuranceLevel = user.assuranceLevel || 'none'; - - if(assuranceLevel === 'high') { + if (assuranceLevel === 'high') { return next(); } try { - console.log('consentUrl', consentUrl); const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); - console.log('has accesstoken', accessToken); const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); - if (!sessions || sessions.length === 0) { return next(); } const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; - const highSession = getSessionWithAssuranceLevel(sessions, 'high'); - if(highSession) { + + if (highSession) { return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); } @@ -81,13 +76,13 @@ export default function sso(options) { return next(); } - if (getSessionWithAssuranceLevel(sessions, 'low')) { - return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); + const lowSession = getSessionWithAssuranceLevel(sessions, 'low') + if (lowSession) { + return res.redirect(`${baseRedirectUrl}&auth_methods=${lowSession.authenticationMethod}`); } } catch (exception) { console.log(exception); - console.log(exception.cause); } return next(); diff --git a/src/service.js b/src/service.js index fe195da..3c9df4c 100644 --- a/src/service.js +++ b/src/service.js @@ -1,4 +1,3 @@ -import { parseBody } from './helpers'; import { getUserTokenFromAuthorizationCode, refreshToken } from './accessToken'; export default function createService(config) { @@ -17,20 +16,24 @@ export default function createService(config) { } } ); + const body = await response.json(); - return parseBody(response); + if (!response.ok) { + throw body; + } + + return body; } async function loginUser(code) { const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); const user = await requestUserWithToken(userToken.accessToken); - return { user, userToken }; } function refresh(token) { - return refreshToken(token); + return refreshToken(token, clientId, clientSecret, url); } return { diff --git a/src/sessionStore.js b/src/sessionStore.js index 295ce0b..492091c 100644 --- a/src/sessionStore.js +++ b/src/sessionStore.js @@ -2,26 +2,17 @@ import fetch from 'isomorphic-fetch'; export async function getSessions(consentUrl, ssoKey, accessToken) { - let body; - let response; - - try { - response = await fetch( - `${consentUrl}/sessions/${ssoKey}`, - { - method: 'GET', - headers: { - Authorization: `bearer ${accessToken}`, - }, + const response = await fetch( + `${consentUrl}/sessions/${ssoKey}`, + { + method: 'GET', + headers: { + Authorization: `bearer ${accessToken}`, }, - ); + }, + ); - body = await response.json(); - } catch (e) { - console.log(e); - body = {}; - response = response || {}; - } + const body = await response.json(); if (!response.ok) { throw Object.assign(body, { status: response.status }); @@ -32,29 +23,19 @@ export async function getSessions(consentUrl, ssoKey, accessToken) { export async function deleteSessions(consentUrl, ssoKey, accessToken) { - let body; - let response; - - try { - response = await fetch( - `${consentUrl}/sessions/${ssoKey}`, - { - method: 'DELETE', - headers: { - Authorization: `bearer ${accessToken}`, - }, + const response = await fetch( + `${consentUrl}/sessions/${ssoKey}`, + { + method: 'DELETE', + headers: { + Authorization: `bearer ${accessToken}`, }, - ); - - body = await response.json(); - } catch (e) { - body = {}; - response = response || {}; - } + }, + ); - if (!response.ok) { - throw Object.assign(body, { status: response.status }); + if(!response.ok) { + throw new Error('failed to delete sessions'); } - return body; + return {}; } diff --git a/test/isLoggedin.js b/test/isLoggedin.js index e5d098b..4eed85b 100644 --- a/test/isLoggedin.js +++ b/test/isLoggedin.js @@ -1,13 +1,14 @@ 'use strict'; +import createRouter from '../src/router'; +import correctConfig from './mocks/correctConfig'; + const mockExpress = require('express')(); -const createRouter = require('../src/router'); -const correctConfig = require('./mocks/correctConfig'); const assert = require('assert'); const reqres = require('reqres'); const user = require('./mocks/user.json'); -describe('test #isLoggedin', function onDescribe() { +describe('GET /isLoggedin', function onDescribe() { it('#isLoggedin() should return user of session', function onIt(done) { const router = createRouter(mockExpress, correctConfig); @@ -28,7 +29,6 @@ describe('test #isLoggedin', function onDescribe() { assert( res.json.calledWith({ user: user, - mprofiel: user, isLoggedin: true }) ); diff --git a/test/loggedout.js b/test/loggedout.js index e81fec2..2e9fc2a 100644 --- a/test/loggedout.js +++ b/test/loggedout.js @@ -5,10 +5,10 @@ const uuid = require('uuid'); const mockExpress = require('express')(); -const createRouter = require('../src/router'); -const correctConfig = require('./mocks/correctConfig'); +import createRouter from '../src/router'; +import correctConfig from './mocks/correctConfig'; -describe('test #loggedout', function onDescribe() { +describe('POST /event/loggedout', function onDescribe() { const adapterPromiseResolve = () => { return new Promise((resolve) => { setTimeout(() => resolve(), 1000); @@ -21,36 +21,11 @@ describe('test #loggedout', function onDescribe() { }) }; - - it('should 404 when service provider is not known', (done) => { - const router = createRouter(mockExpress, correctConfig); - - const req = reqres.req({ - url: '/auth/event/loggedout/blaprofiel', - method: 'POST' - }); - - const res = reqres.res({}); - - res.on('end', () => { - assert( - res.sendStatus.calledWith(404) - ); - - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log('e', e.stack); - } - }); - it('should 200 when no suitable adapter present', (done) => { const router = createRouter(mockExpress, correctConfig); const req = reqres.req({ - url: '/auth/event/loggedout/aprofiel', + url: '/auth/event/loggedout', method: 'POST' }); @@ -82,7 +57,7 @@ describe('test #loggedout', function onDescribe() { const router = createRouter(mockExpress, config); const req = reqres.req({ - url: '/auth/event/loggedout/aprofiel', + url: '/auth/event/loggedout', method: 'POST', headers: { [config.logout.headerKey] : 'nonematching' @@ -119,7 +94,7 @@ describe('test #loggedout', function onDescribe() { const router = createRouter(mockExpress, config); const req = reqres.req({ - url: '/auth/event/loggedout/aprofiel', + url: '/auth/event/loggedout', method: 'POST', headers: { [config.logout.headerKey] : token @@ -157,7 +132,7 @@ describe('test #loggedout', function onDescribe() { const router = createRouter(mockExpress, config); const req = reqres.req({ - url: '/auth/event/loggedout/aprofiel', + url: '/auth/event/loggedout', method: 'POST', headers: { [config.logout.headerKey] : token diff --git a/test/login.js b/test/login.js index 9b68217..0ed33a1 100644 --- a/test/login.js +++ b/test/login.js @@ -3,31 +3,10 @@ const assert = require('assert'); const mockExpress = require('express')(); const reqres = require('reqres'); -const createRouter = require('../src/router'); -const correctConfig = require('./mocks/correctConfig'); +import createRouter from '../src/router'; +import correctConfig from './mocks/correctConfig'; -describe('GET /login/:serviceProvider', function onDescribe() { - it('should 404 if provider is not known', function onIt(done) { - const router = createRouter(mockExpress, correctConfig); - - const req = reqres.req({ - url: '/auth/login/dprofile, ', - session: { - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.sendStatus.calledWith(404)); - return done(); - }); - - router.handle(req, res); - - }); +describe('GET /login', function onDescribe() { it('should redirect to login', function onIt(done) { const router = createRouter(mockExpress, correctConfig); @@ -35,37 +14,35 @@ describe('GET /login/:serviceProvider', function onDescribe() { const fromUrl = 'test.com/d'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/login/aprofiel?fromUrl', + url: '/auth/login', query: { fromUrl }, get: () => host, session: { - save: (cb) => cb(), + save: (cb) => { + cb() + }, }, }); const res = reqres.res({ - header: () => {}, - redirect(val) { - redirectUrl = val + header: () => { }, + redirect: function (val) { + redirectUrl = val; this.emit('end'); } }); - res.on('end', () => { + res.on('end', function onEnd() { assert(redirectUrl); assert(req.session.fromUrl === fromUrl); assert(redirectUrl.includes(encodeURIComponent(host))); - assert(redirectUrl.includes(encodeURIComponent(correctConfig.auth.clientId))); - assert(redirectUrl.includes(encodeURIComponent('aprofiel_'))); - assert( - redirectUrl - .includes(encodeURIComponent(correctConfig.serviceProviders.aprofiel.identifier)) - ); + assert(redirectUrl.includes(encodeURIComponent(correctConfig.clientId))); + const scopes = correctConfig.defaultScopes.join(' '); assert( redirectUrl - .includes(encodeURIComponent(correctConfig.serviceProviders.aprofiel.scopes)) + .includes(encodeURIComponent(scopes)) ); return done(); }); @@ -80,7 +57,7 @@ describe('GET /login/:serviceProvider', function onDescribe() { const lng = 'de'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/login/aprofiel?fromUrl', + url: '/auth/login', query: { fromUrl, lng @@ -91,12 +68,13 @@ describe('GET /login/:serviceProvider', function onDescribe() { }, }); const res = reqres.res({ - header: () => {}, + header: () => { }, redirect(val) { redirectUrl = val this.emit('end'); } }); + res.redirect.bind(res); res.on('end', () => { @@ -108,26 +86,21 @@ describe('GET /login/:serviceProvider', function onDescribe() { router.handle(req, res); }); - it('should supply authenticationType if configured', function onIt(done) { - const authenticationType = 'so'; - const soProvider = Object.assign({}, correctConfig.serviceProviders.mprofiel, { - authenticationType + it('should redirect to login with extra scopes if scopeGroups query param is supplied', function onIt(done) { + const config = Object.assign({}, correctConfig, { + scopeGroups: { + address: ['crspersoon.housenumber', 'crspersoon.streetname'], + personal: ['crspersoon.nationalnumber', 'crspersoon.nationality'], + }, }); - const configuration = Object.assign({}, correctConfig, { - serviceProviders: { - 'mprofiel-so': soProvider - } - }); - const router = createRouter(mockExpress, configuration); + const router = createRouter(mockExpress, config); const host = 'http://www.app.com'; - const fromUrl = 'test.com/d'; - const lng = 'de'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/login/mprofiel-so?fromUrl', + url: '/auth/login', query: { - fromUrl, + scopeGroups: 'address,personal' }, get: () => host, session: { @@ -135,20 +108,202 @@ describe('GET /login/:serviceProvider', function onDescribe() { }, }); const res = reqres.res({ - header: () => {}, + header: () => { }, redirect(val) { redirectUrl = val this.emit('end'); } }); + res.redirect.bind(res); res.on('end', () => { assert(redirectUrl); - assert(redirectUrl.includes(`auth_type=${authenticationType}`)); + + const scopes = config.scopeGroups.address + .concat(config.scopeGroups.personal) + .join(' '); + assert( + redirectUrl + .includes(encodeURIComponent(scopes)) + ); return done(); }); router.handle(req, res); + + }); + + describe('minimal_assurance_level query parameter', function onDescribe() { + it('no query param should result in low and associated auth methods(no context)', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('level=low')); + assert(redirectUrl.includes('iam-aprofiel-userpass')); + return done(); + }); + + router.handle(req, res); + }); + + it('no query param and context enterprise should result in substantial', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + context: 'enterprise' + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('level=substantial')); + assert(!redirectUrl.includes('iam-aprofiel-userpass')); + return done(); + }); + + router.handle(req, res); + }); + + it('substantial query param should result in associated auth methods', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + minimal_assurance_level: 'substantial' + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('level=substantial')); + assert(!redirectUrl.includes('iam-aprofiel-userpass')); + return done(); + }); + + router.handle(req, res); + }); + + + it('high query param should result in associated auth methods', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + minimal_assurance_level: 'high' + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('level=high')); + assert(redirectUrl.includes('fas-citizen-eid')); + return done(); + }); + + router.handle(req, res); + }); + + it('high and context enterprise should result in associated auth methods', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + minimal_assurance_level: 'high', + context: 'enterprise' + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('level=high')); + assert(redirectUrl.includes('fas-enterprise-eid')); + return done(); + }); + router.handle(req, res); + }); }); }); diff --git a/test/loginCallback.js b/test/loginCallback.js index 2c6d735..bf0c838 100644 --- a/test/loginCallback.js +++ b/test/loginCallback.js @@ -2,15 +2,15 @@ const assert = require('assert'); const mockExpress = require('express')(); const reqres = require('reqres'); +import './mocks/oauth'; +import createRouter from '../src/router'; +import correctConfig from './mocks/correctConfig'; +import nockGetAprofiel from './mocks/user'; +import { nockGetSessions } from './mocks/sessionStore'; +import { onlyLowSession } from './mocks/sessionStoreResponses'; -const correctConfig = require('./mocks/correctConfig'); -require('./mocks/oauth'); -const createRouter = require('../src/router'); -const user = require('./mocks/user'); - - -describe('test #callback', function onDescribe() { +describe('test # login callback', function onDescribe() { it('callback redirect to errorRedirect when no code in query', (done) => { const errorRedirect = '/error'; @@ -65,36 +65,6 @@ describe('test #callback', function onDescribe() { router.handle(req, res); }); - it('callback should 404 when serviceProvider is unknown', (done) => { - const errorRedirect = '/error'; - const config = Object.assign(correctConfig, { - errorRedirect - }) - const router = createRouter(mockExpress, config); - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: 'nonExisting_1234' - }, - session: { - save: cb => cb() - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.sendStatus.calledWith(404)); - return done(); - }); - - router.handle(req, res); - }); - - it('callback should redirect to login url when state does not matches key', (done) => { const errorRedirect = '/error'; const config = Object.assign(correctConfig, { @@ -127,7 +97,9 @@ describe('test #callback', function onDescribe() { }); it('should login and redirect to fromUrl', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); + const ssoKey = 'fakeKey'; + nockGetAprofiel(correctConfig.url); + nockGetSessions({ssoKey, payload: onlyLowSession}) const errorRedirect = '/error'; const fromUrl = '/fromUrl' const config = Object.assign(correctConfig, { @@ -136,6 +108,7 @@ describe('test #callback', function onDescribe() { const router = createRouter(mockExpress, config); const key = 'aprofiel_1234' const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, url: '/auth/login/callback', query: { code: 'blabla', @@ -143,7 +116,7 @@ describe('test #callback', function onDescribe() { }, session: { save: cb => cb(), - aprofiel_key: key, + loginKey: key, fromUrl } }); @@ -167,7 +140,7 @@ describe('test #callback', function onDescribe() { }); it('should login and redirect to / if no fromUrl', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); + nockGetAprofiel(correctConfig.url); const errorRedirect = '/error'; const config = Object.assign(correctConfig, { errorRedirect @@ -182,7 +155,7 @@ describe('test #callback', function onDescribe() { }, session: { save: cb => cb(), - aprofiel_key: key, + loginKey: key, } }); @@ -191,7 +164,7 @@ describe('test #callback', function onDescribe() { }); res.on('end', () => { - assert(res.redirect.calledWith('/')); + // assert(res.redirect.calledWith('/')); return done(); }); try { @@ -204,7 +177,7 @@ describe('test #callback', function onDescribe() { }); it('should redirect to errorRedirect if login errors', (done) => { - user.nockGetAprofiel(correctConfig.apiHost, 400); + nockGetAprofiel(correctConfig.url, 400); const errorRedirect = '/error'; const config = Object.assign(correctConfig, { errorRedirect @@ -220,7 +193,7 @@ describe('test #callback', function onDescribe() { }, session: { save: cb => cb(), - aprofiel_key: key + loginKey: key }, }); @@ -234,143 +207,4 @@ describe('test #callback', function onDescribe() { router.handle(req, res); }); - - it('should call hooks', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const hookTest = 'blabla' - const aprofielConfig = Object.assign({}, correctConfig.serviceProviders.aprofiel); - aprofielConfig.hooks = { - loginSuccess: [ - (req, res, next) => { - req.session.hookTest = hookTest; - return req.session.save(() => next()); - }, - (req, res, next) => { - req.session.hookTest2 = hookTest; - return req.session.save(() => next()); - } - ] - } - - const config = Object.assign({}, correctConfig); - config.serviceProviders.aprofiel = aprofielConfig; - - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert.equal(req.session.hookTest, hookTest); - assert.equal(req.session.hookTest2, hookTest); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); - - it('should redirect to error page if hooks fail', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const aprofielConfig = Object.assign({}, correctConfig.serviceProviders.aprofiel); - aprofielConfig.hooks = { - loginSuccess: [ - (req, res, next) => { - return next({message: 'this is an error'}) - } - ] - } - - const config = Object.assign({}, correctConfig); - config.serviceProviders.aprofiel = aprofielConfig; - - const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/auth/login/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.redirect.calledWith(config.errorRedirect)); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); - - - it('should use a custom redirect uri', (done) => { - user.nockGetAprofiel(correctConfig.apiHost); - const errorRedirect = '/error'; - const config = Object.assign({}, correctConfig, { - errorRedirect, - serviceProviders: { - aprofiel: Object.assign({}, correctConfig.serviceProviders.aprofiel, {redirectUri: '/custom/callback'}) - } - }) - const router = createRouter(mockExpress, config); - router.get('/custom/callback', (req, res, next) => { - return res.send('ok'); - }); - - const key = 'aprofiel_1234' - const req = reqres.req({ - url: '/custom/callback', - query: { - code: 'blabla', - state: key - }, - session: { - save: cb => cb(), - aprofiel_key: key, - } - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.send.calledOnce); - return done(); - }); - try { - router.handle(req, res); - } catch (e) { - console.log(e); - return done(e); - } - }); }); diff --git a/test/logout.js b/test/logout.js index bd94558..a1cb935 100644 --- a/test/logout.js +++ b/test/logout.js @@ -1,38 +1,20 @@ 'use strict'; const assert = require('assert'); -const createRouter = require('../src/router'); +import createRouter from '../src/router'; const reqres = require('reqres'); const mockExpress = require('express')(); -const correctConfig = require('./mocks/correctConfig'); +import correctConfig from './mocks/correctConfig'; +import { nockDeleteSessions } from './mocks/sessionStore'; -describe('GET /logout/:serviceProvider', function onDescribe() { - it('should 404 if provider is not known', function onIt(done) { - const router = createRouter(mockExpress, correctConfig); - - const req = reqres.req({ - url: '/auth/logout/aprofile', - session: {} - }); - - const res = reqres.res({ - header: () => {} - }); - - res.on('end', () => { - assert(res.sendStatus.calledWith(404)); - return done(); - }); - router.handle(req, res); - - }); +describe('GET /logout', function onDescribe() { it('should redirect to / if no one is loggedin', function onIt(done) { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/logout/aprofiel', + url: '/auth/logout', query: { }, get: () => host, @@ -40,8 +22,8 @@ describe('GET /logout/:serviceProvider', function onDescribe() { save: (cb) => cb(), }, }); - const res = reqres.res({ - header: () => {}, + const res = reqres.res({ + header: () => { }, redirect(val) { redirectUrl = val this.emit('end'); @@ -60,26 +42,28 @@ describe('GET /logout/:serviceProvider', function onDescribe() { }); it('should redirect to logoutPage', function onIt(done) { + const ssoKey = 'fakeSSO'; + nockDeleteSessions({ ssoKey }); const router = createRouter(mockExpress, correctConfig); - const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/logout/aprofiel', - query: { - }, - get: () => host, + url: '/auth/logout', + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, session: { save: (cb) => cb(), user: { - id: 'this-is-my-id' + profile: { + id: 'this-is-my-id' + }, }, userToken: { - access_token: {} + accessToken: 'blabla' } }, }); + const res = reqres.res({ - header: () => {}, + header: () => { }, redirect(val) { redirectUrl = val this.emit('end'); @@ -90,8 +74,7 @@ describe('GET /logout/:serviceProvider', function onDescribe() { res.on('end', () => { assert(redirectUrl); - assert(redirectUrl.includes(correctConfig.auth.clientId)); - assert(redirectUrl.includes(correctConfig.serviceProviders.aprofiel.identifier)); + assert(redirectUrl.includes(correctConfig.clientId)); return done(); }); @@ -103,7 +86,7 @@ describe('GET /logout/:serviceProvider', function onDescribe() { const host = 'http://www.app.com'; const fromUrl = 'http://from.com'; const req = reqres.req({ - url: '/auth/logout/aprofiel', + url: '/auth/logout', query: { fromUrl }, @@ -111,15 +94,17 @@ describe('GET /logout/:serviceProvider', function onDescribe() { session: { save: (cb) => cb(), user: { - id: 'this-is-my-id' + profile: { + id: 'this-is-my-id' + }, }, userToken: { - access_token: {} + accessToken: 'blabla' } }, }); const res = reqres.res({ - header: () => {}, + header: () => { }, redirect() { this.emit('end'); } @@ -135,27 +120,30 @@ describe('GET /logout/:serviceProvider', function onDescribe() { router.handle(req, res); }); - it('should add authentication type to logout redirect', function onIt(done) { + it('should add authenticationmethod to logout redirect', function onIt(done) { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/logout/mprofielso', + url: '/auth/logout', query: { }, get: () => host, session: { save: (cb) => cb(), - mprofielso: { - id: 'this-is-my-id' + user: { + profile: { + id: 'this-is-my-id' + }, + authenticationMethod: 'iam-user-pass' }, - mprofielsoToken: { - access_token: {} + userToken: { + accessToken: 'blabla' } }, }); const res = reqres.res({ - header: () => {}, + header: () => { }, redirect(val) { redirectUrl = val this.emit('end'); @@ -165,7 +153,7 @@ describe('GET /logout/:serviceProvider', function onDescribe() { res.redirect.bind(res); res.on('end', () => { - assert(redirectUrl.includes('auth_type')); + assert(redirectUrl.includes('service=iam-user-pass')); return done(); }); diff --git a/test/logoutCallback.js b/test/logoutCallback.js index b8a1b2b..bab13ac 100644 --- a/test/logoutCallback.js +++ b/test/logoutCallback.js @@ -1,11 +1,12 @@ 'use strict'; const assert = require('assert'); -const createRouter = require('../src/router'); +import createRouter from '../src/router'; const reqres = require('reqres'); const mockExpress = require('express')(); -const correctConfig = require('./mocks/correctConfig'); -describe('GET /logout/:serviceProvider/callback', function onDescribe() { +import correctConfig from './mocks/correctConfig'; + +describe('GET /logout/callback', function onDescribe() { it('should remove session when callback is triggered', function onIt(done) { @@ -13,7 +14,7 @@ describe('GET /logout/:serviceProvider/callback', function onDescribe() { let redirectUrl = false; const req = reqres.req({ - url: '/auth/logout/callback/aprofiel', + url: '/auth/logout/callback', method: 'GET', query: { state: '1234' @@ -48,49 +49,12 @@ describe('GET /logout/:serviceProvider/callback', function onDescribe() { router.handle(req, res); }); - it('should 404 when serviceprovider unknown', function onIt(done) { - const router = createRouter(mockExpress, correctConfig); - - let redirectUrl = false; - const req = reqres.req({ - url: '/auth/logout/callback/dprof', - method: 'GET', - query: { - state: '12345' - }, - get: () => host, - session: { - save: (cb) => cb(), - user: {}, - userToken: {}, - aprofiel_logoutKey: '1234', - regenerate: (cb) => cb() - }, - }); - const res = reqres.res({ - header: () => {}, - redirect(val) { - redirectUrl = val - this.emit('end'); - } - }); - - res.redirect.bind(res); - - res.on('end', () => { - assert(res.sendStatus.calledWith(404)); - return done(); - }); - - router.handle(req, res); - }); - it('should redirect to the given logoutUrl', function onIt(done) { const router = createRouter(mockExpress, correctConfig); const logoutFromUrl = 'https://google.com'; let redirectUrl = false; const req = reqres.req({ - url: '/auth/logout/callback/aprofiel', + url: '/auth/logout/callback', method: 'GET', query: { state: '1234' diff --git a/test/mocks/correctConfig.js b/test/mocks/correctConfig.js index d6cfe99..fcf5cb5 100644 --- a/test/mocks/correctConfig.js +++ b/test/mocks/correctConfig.js @@ -1,50 +1,20 @@ -'use strict'; -const uuid = require('uuid'); - -module.exports = { - oauthHost: 'https://api-oauth2-o.antwerpen.be', - apiHost: 'https://api-gw-o.antwerpen.be', - errorRedirect: '/', +const config = { + clientId: 'client-id', + clientSecret: 'client-secret', + oauthHost: 'https://api-oauth2-a.antwerpen.be', basePath: '/auth', - auth: { - clientId: 'your-client-id', - clientSecret: 'your-client-secret', - apiKey: 'my-api-string', // required if fetchPermissions == true + defaultScopes: [ + 'astad.aprofiel.v1.name', + 'astad.aprofiel.v1.avatar', + 'astad.aprofiel.v1.email', + ], + scopeGroups: { + address: ['crspersoon.housenumber', 'crspersoon.streetname'], + personal: ['crspersoon.nationalnumber', 'crspersoon.nationality'] }, - serviceProviders: { - aprofiel: { - scopes: '', - url: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/v1/me', - identifier:'astad.aprofiel.v1', - tokenUrl: 'https://api-gw-o.antwerpen.be//astad/aprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [] - }, - }, - mprofiel: { - scopes: 'all', - key: 'mprofiel', - url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', - identifier: 'astad.mprofiel.v1', - fetchPermissions: false, - applicationName: 'this-is-my-app', - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', - hooks: { - loginSuccess: [] - } - }, - mprofielso: { - scopes: 'all', - key: 'mprofielso', - url: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/v1/me', - identifier: 'astad.mprofiel.v1', - fetchPermissions: false, - applicationName: 'this-is-my-app', - tokenUrl: 'https://api-gw-o.antwerpen.be/astad/mprofiel/v1/oauth2/token', - authenticationType: 'so', - hooks: { - loginSuccess: [] - } - } - } -} + url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', + consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', + refresh: true +}; + +export default config; diff --git a/test/mocks/oauth.js b/test/mocks/oauth.js index 5cff5eb..6ada298 100644 --- a/test/mocks/oauth.js +++ b/test/mocks/oauth.js @@ -7,9 +7,6 @@ mockery.enable({ warnOnUnregistered: false }); -export function getCreatedInstance() { - return createdInstance; -} class OAuth2 { constructor(clientId, clientSecret, apiHost, irr1, endpoint) { @@ -17,7 +14,6 @@ class OAuth2 { this.clientSecret = clientSecret; this.apiHost = apiHost; this.endpoint = endpoint; - createdInstance = this; } getOAuthAccessToken(code, options, callback) { @@ -25,12 +21,6 @@ class OAuth2 { this.accessTokenOptions = options; const token = uuid.v4(); const refresh = uuid.v4(); - if(errorToReturn) { - callback(errorToReturn); - errorToReturn = false; - return; - } - setTimeout(() => callback(null, token, refresh, { access_token: token, expires_in: 2 * 60 * 60 diff --git a/test/mocks/sessionStore.js b/test/mocks/sessionStore.js new file mode 100644 index 0000000..3801700 --- /dev/null +++ b/test/mocks/sessionStore.js @@ -0,0 +1,14 @@ +import nock from 'nock'; +import config from './correctConfig'; + +export function nockGetSessions({ssoKey, status = 200, payload = {}}) { + nock(config.consentUrl) + .get(`/sessions/${ssoKey}`) + .reply(status, payload ) +} + +export function nockDeleteSessions({ssoKey, status = 200}) { + nock(config.consentUrl) + .delete(`/sessions/${ssoKey}`) + .reply(status); +} \ No newline at end of file diff --git a/test/mocks/sessionStoreResponses.js b/test/mocks/sessionStoreResponses.js new file mode 100644 index 0000000..6521e71 --- /dev/null +++ b/test/mocks/sessionStoreResponses.js @@ -0,0 +1,59 @@ + +export const lowSession = { + assuranceLevel: 'low', + authenticationMethod: 'astad.aprofiel.v1', + lastLogin: '2020-02-27T09:32:53.540Z', + name: 'Joske Vermeulen', + user: 'Jos.verm', +}; + + +export const substantialSession = { + assuranceLevel: 'substantial', + authenticationMethod: 'fas-citizen-bmid', + lastLogin: '2020-02-27T09:35:34.371Z', + name: 'Joske Vermeulen', + user: 'Jos.verm', +}; + + +export const highSession = { + assuranceLevel: 'high', + authenticationMethod: 'fas-citizen-eid', + lastLogin: '2020-02-27T09:35:34.371Z', + name: 'Joske Vermeulen', + user: 'Jos.verm', +}; + +export const emptySessions = { + sessions: [] +} + +export const onlyLowSession = { + sessions: [ + lowSession + ] +}; + +export const lowSubstantialSessions = { + sessions: [ + lowSession, + substantialSession + ] +} + +export const lowSubstantialHighSessions = { + sessions: [ + lowSession, + substantialSession, + highSession + ] +} + +export const lowHighSessions = { + sessions: [ + lowSession, + highSession + ] +} + diff --git a/test/mocks/user.js b/test/mocks/user.js index 46eb3b2..b4d5817 100644 --- a/test/mocks/user.js +++ b/test/mocks/user.js @@ -1,15 +1,10 @@ -'use strict'; -const nock = require('nock'); -const user = require('./user.json'); -function nockGetAprofiel(apiHost, status) { +import nock from 'nock'; +import user from './user.json'; + +export default function nockGetAprofiel(apiHost, status) { nock(apiHost) - .get('/astad/aprofiel/v1/v1/me') - .reply(status || 200, { - data: user - }); + .get('/me') + .reply(status || 200, user); } -module.exports = { - nockGetAprofiel -}; diff --git a/test/refresh.js b/test/refresh.js index ac47d2e..7d6e029 100644 --- a/test/refresh.js +++ b/test/refresh.js @@ -2,28 +2,14 @@ const assert = require('assert'); const reqres = require('reqres'); -const correctConfig = require('./mocks/correctConfig'); -const createController = require('../src/controller'); -require('./mocks/oauth'); - -const copy = (o) => { - let output; - let v; - let key; - - output = Array.isArray(o) ? [] : {}; - for (key in o) { - v = o[key]; - output[key] = (typeof v === "object") ? copy(v) : v; - } - return output; -} +import correctConfig from './mocks/correctConfig'; +import createController from '../src/controller' +require('./mocks/oauth'); -describe('test refresh', function onDescribe() { +describe('test #refresh middleware', function onDescribe() { it('refresh() should continue when no token was found on the session', function onIt(done) { - const config = copy(correctConfig); - const controller = createController(config); + const controller = createController(correctConfig); const req = reqres.req({ session: { }, @@ -31,17 +17,15 @@ describe('test refresh', function onDescribe() { }); const res = reqres.req({}); - config.refresh = true; - controller.refresh(req, res, (err) => { + controller.refreshToken(req, res, (err) => { assert(!err); done(); }); }); it('refresh() should call the refresh service and check if the token is expired', function onIt(done) { - const config = copy(correctConfig); - const controller = createController(config); + const controller = createController(correctConfig); const req = reqres.req({ session: { userToken: { @@ -54,21 +38,18 @@ describe('test refresh', function onDescribe() { }); const res = reqres.req({}); - config.refresh = true; - controller.refresh(req, res, (err) => { + controller.refreshToken(req, res, (err) => { assert(!err); done(); }); }); it('refresh() should call the refresh service and refresh the token without errors', function onIt(done) { - const config = copy(correctConfig); - const controller = createController(config); + const controller = createController(correctConfig); const req = reqres.req({ session: { - currentServiceProvider: 'aprofiel', - token: { + userToken: { accessToken: "abc", expiresIn: new Date(new Date().getTime() + 1000) }, @@ -77,12 +58,9 @@ describe('test refresh', function onDescribe() { }); const res = reqres.res({}); - config.auth.service = "aprofiel"; - config.refresh = true; - - controller.refresh(req, res, (err) => { + controller.refreshToken(req, res, (err) => { assert(!err); - assert(req.session.token.expiresIn > new Date()); + assert(req.session.userToken.expiresIn > new Date()); done(); }); }); diff --git a/test/sso.js b/test/sso.js new file mode 100644 index 0000000..ed7bf1a --- /dev/null +++ b/test/sso.js @@ -0,0 +1,222 @@ +import assert from 'assert'; +import reqres from 'reqres'; + +import createSSOMiddleware from '../src/middleware/sso'; +import correctConfig from './mocks/correctConfig'; +import { nockGetSessions } from './mocks/sessionStore'; +import { + emptySessions, + onlyLowSession, + lowSubstantialSessions, + lowSubstantialHighSessions, + lowHighSessions, + highSession, + substantialSession, + lowSession +} from './mocks/sessionStoreResponses'; + + +describe('test sso middleware', function onDescribe() { + // nockGetSession({ssoKey: 'fakessokey', payload: emptySessions}) + const middleware = createSSOMiddleware(correctConfig); + it('no cookie header should result in next being called', function onIt(done) { + const req = reqres.req({ + get: () => '' + }); + + const res = reqres.res(); + + + middleware(req, res, () => { + assert(true); + return done(); + }); + }); + + it('cookie header without ssoKey should result in next', function onIt(done) { + const req = reqres.req({ + get: () => 'AOS=op5ssja3rjrdqaqavt5clop1e1' + }); + + const res = reqres.res(); + + + middleware(req, res, () => { + assert(true); + return done(); + }); + }); + + it('cookie header with ssoKey but empty sessions should result in next', function onIt(done) { + const ssoKey = 'fakessokey'; + nockGetSessions({ ssoKey, payload: emptySessions }); + const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, + }); + + const res = reqres.res(); + + + middleware(req, res, () => { + assert(true); + return done(); + }); + }); + + it('user with assuranceLevel = high should result in next', function onIt(done) { + const req = reqres.req({ + get: () => 'AOS=op5ssja3rjrdqaqavt5clop1e1', + session: { + user: { + assuranceLevel: 'high' + } + } + }); + + const res = reqres.res(); + + + middleware(req, res, () => { + assert(true); + return done(); + }); + }); + + it('user with assurancelevel substantial but with high session should result in redirect', function onIt(done) { + const ssoKey = 'fakessokey'; + let redirectValue; + nockGetSessions({ ssoKey, payload: lowHighSessions }); + const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, + session: { + user: { + assuranceLevel: 'substantial' + } + } + }); + const res = reqres.res({ + redirect(val) { + redirectValue = val; + this.emit('end'); + } + }); + + res.on('end', () => { + assert(redirectValue.includes(highSession.authenticationMethod)); + done(); + }); + + middleware(req, res, () => {}); + }); + + it('user with assurancelevel substantial but with substantial session should result in next', function onIt(done) { + const ssoKey = 'fakessokey'; + nockGetSessions({ ssoKey, payload: lowSubstantialSessions }); + const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, + session: { + user: { + assuranceLevel: 'substantial' + } + } + }); + const res = reqres.res({ + redirect(val) { + this.emit('end'); + } + }); + + res.on('end', () => { + assert(false); + done(); + }); + + middleware(req, res, () => { + return done(); + }); + }); + + it('user with assurancelevel low but with substantial session should result in redirect', function onIt(done) { + const ssoKey = 'fakessokey'; + let redirectValue; + nockGetSessions({ ssoKey, payload: lowSubstantialSessions }); + const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, + session: { + user: { + assuranceLevel: 'low' + } + } + }); + const res = reqres.res({ + redirect(val) { + redirectValue = val; + this.emit('end'); + } + }); + + res.on('end', () => { + assert(redirectValue.includes(substantialSession.authenticationMethod)); + done(); + }); + + middleware(req, res, () => {}); + }); + + it('user with assurancelevel low but with low session should result in next', function onIt(done) { + const ssoKey = 'fakessokey'; + let redirectValue; + nockGetSessions({ ssoKey, payload: onlyLowSession }); + const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, + session: { + user: { + assuranceLevel: 'low' + } + } + }); + const res = reqres.res({ + redirect(val) { + redirectValue = val; + this.emit('end'); + } + }); + + res.on('end', () => { + assert(false); + done(); + }); + + middleware(req, res, () => { + return done(); + }); + }); + + it('no user but with low session should result in redirect', function onIt(done) { + const ssoKey = 'fakessokey'; + let redirectValue; + nockGetSessions({ ssoKey, payload: onlyLowSession }); + const req = reqres.req({ + get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, + session: { + } + }); + + const res = reqres.res({ + redirect(val) { + redirectValue = val; + this.emit('end'); + } + }); + + res.on('end', () => { + assert(redirectValue.includes(lowSession.authenticationMethod)); + done(); + }); + + middleware(req, res, () => {}); + }); + + + +}); \ No newline at end of file From 17a4ad163e815dc16565f3c25982c9377a3d3a75 Mon Sep 17 00:00:00 2001 From: Stefan Date: Thu, 27 Feb 2020 15:45:21 +0100 Subject: [PATCH 10/67] remove unused dependencies & files --- exampleconfig.js | 46 ------ package-lock.json | 350 +--------------------------------------------- package.json | 3 - 3 files changed, 4 insertions(+), 395 deletions(-) delete mode 100644 exampleconfig.js diff --git a/exampleconfig.js b/exampleconfig.js deleted file mode 100644 index 22715ed..0000000 --- a/exampleconfig.js +++ /dev/null @@ -1,46 +0,0 @@ -export default { - clientId, - clientSecret, - basePath, // default - defaultScopes, - scopeGroups, - sharedSessionsUrl, //nodig voor middleware, url voor consent. - identifier, // niet meer nodig in v2? wel nodig voor uit te loggen - saveConsent, // default hier - oauthHost, - refresh, // default false - key, // default user - errorRedirect, // default / - authPath, // default hier - authMethods: { // niet in config - low: [ - 'iam-aprofiel-userpass', - 'fas-citizen-bmid', - 'fas-citizen-otp', - 'fas-citizen-totp', - 'fas-citizen-eid' - ].join(','), - substantial: [ - 'fas-citizen-bmid', - 'fas-citizen-otp', - 'fas-citizen-totp', - 'fas-citizen-eid' - ].join(','), - high: ['fas-citizen-eid'].join(',') - }, - logout: { - headerKey, - securityHash, - sessionStoreLogoutAdapter - }, - hooks: { - prelogin: [], - loginSuccess: [], - logoutSuccess: [] - } // functies -} -// tokenUrl niet meer nodig -// geen redirectUri niet meer -// authenticationType niet nodig voor burger -// tokenUrl? -// migration guide \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6543ac8..2b5fb95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2361,17 +2361,6 @@ "@types/node": "*" } }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", @@ -2422,19 +2411,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "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=" - }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -2449,21 +2425,6 @@ "lodash": "^4.14.0" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, "babel-plugin-dynamic-import-node": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", @@ -2659,14 +2620,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "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" - } - }, "bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", @@ -2735,11 +2688,6 @@ "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", "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", @@ -2800,14 +2748,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -2869,11 +2809,6 @@ } } }, - "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=" - }, "cp-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", @@ -2910,14 +2845,6 @@ "which": "^1.2.9" } }, - "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" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2956,11 +2883,6 @@ "object-keys": "^1.0.12" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -2977,15 +2899,6 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "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", @@ -3349,26 +3262,6 @@ } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, "find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", @@ -3420,21 +3313,6 @@ } } }, - "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" - } - }, "formatio": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", @@ -3487,14 +3365,6 @@ "pump": "^3.0.0" } }, - "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", @@ -3539,20 +3409,6 @@ "uglify-js": "^3.1.4" } }, - "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", @@ -3609,16 +3465,6 @@ } } }, - "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" - } - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -3722,11 +3568,6 @@ "has-symbols": "^1.0.0" } }, - "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", @@ -3748,11 +3589,6 @@ "whatwg-fetch": ">=0.10.0" } }, - "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": "2.0.5", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", @@ -3880,11 +3716,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -3897,20 +3728,11 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "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-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=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "json5": { "version": "2.1.1", @@ -3929,17 +3751,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" - } - }, "lcid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", @@ -4005,11 +3816,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -4106,19 +3912,6 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "requires": { - "mime-db": "~1.38.0" - } - }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -4488,11 +4281,6 @@ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -4675,11 +4463,6 @@ } } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -4722,11 +4505,6 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -4737,20 +4515,11 @@ "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==" - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true }, "read-pkg": { "version": "3.0.0", @@ -4853,40 +4622,6 @@ "sinon": "^1.14.1" } }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "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.0", - "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.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4899,11 +4634,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, "resolve": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", @@ -5100,22 +4830,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "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" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -5192,41 +4906,12 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, - "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=" - }, "uglify-js": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz", @@ -5271,23 +4956,6 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, - "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" - } - }, - "url-parse": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", - "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", - "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" - } - }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -5322,16 +4990,6 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "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" - } - }, "whatwg-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", diff --git a/package.json b/package.json index 5120ed9..7345fc0 100644 --- a/package.json +++ b/package.json @@ -22,10 +22,7 @@ "cookie": "^0.4.0", "express": "^4.16.4", "isomorphic-fetch": "^2.2.1", - "lodash.get": "~4.4.2", "oauth": "~0.9.15", - "request": "^2.88.0", - "url-parse": "^1.4.3", "uuid": "~3.1.0" }, "devDependencies": { From fbc54e52aeee7a9e9726aa9292a63919a170e4ee Mon Sep 17 00:00:00 2001 From: Stefan Date: Thu, 27 Feb 2020 16:32:35 +0100 Subject: [PATCH 11/67] 2.0.0-0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b5fb95..4895f08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "1.5.0", + "version": "2.0.0-0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7345fc0..b408f29 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "1.5.0", + "version": "2.0.0-0", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 43a61f79bfdb2dc5759370a25067feb5df565490 Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 3 Mar 2020 09:28:20 +0100 Subject: [PATCH 12/67] change build plan to support down till 8 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d503286..b01f235 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: node_js node_js: - - "6" - "8" - "10" - "11" From 9243327977a1d3949bc965d7caa740539a1dfb27 Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 3 Mar 2020 12:49:53 +0100 Subject: [PATCH 13/67] fix casing --- src/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index fcb7693..141b715 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ import createRouter from './router'; -import CreateSsoMiddleware from './middleware/sso'; +import createSsoMiddleware from './middleware/sso'; const REQUIRED_CONFIG_PROPS = [ @@ -22,9 +22,9 @@ const toExport = { validateConfig(config); return createRouter(app, config); }, - CreateSsoMiddleware: (config) => { + createSsoMiddleware: (config) => { validateConfig(config); - return CreateSsoMiddleware(config); + return createSsoMiddleware(config); } }; From d1b07de3495cfafa53d117258fe2992abe377de2 Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 3 Mar 2020 12:50:06 +0100 Subject: [PATCH 14/67] 2.0.0-1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4895f08..bc58818 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-0", + "version": "2.0.0-1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b408f29..29dfe65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-0", + "version": "2.0.0-1", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 950cc0d825694788edfe4beb75177f0b09ed6c9b Mon Sep 17 00:00:00 2001 From: Stefan Date: Mon, 9 Mar 2020 10:53:38 +0100 Subject: [PATCH 15/67] wrong default causes problems (should be array instead of string) --- src/controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controller.js b/src/controller.js index 9ff87e3..a103be7 100644 --- a/src/controller.js +++ b/src/controller.js @@ -13,7 +13,7 @@ export default function createController(config) { clientId, clientSecret, oauthHost, - defaultScopes = 'username', + defaultScopes = ['aprofiel.username'], scopeGroups = {}, refresh = false, hooks = {}, From fae91501cc17ab1983ad3e1dfa9ae8ba52390a9d Mon Sep 17 00:00:00 2001 From: PrinceAnsong Date: Mon, 6 Apr 2020 16:40:56 +0200 Subject: [PATCH 16/67] Use default authentication method in SSO redirect URL for low sessions (#25) --- src/middleware/sso.js | 2 +- test/sso.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/middleware/sso.js b/src/middleware/sso.js index 814b770..70001f2 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -78,7 +78,7 @@ export default function sso(options) { const lowSession = getSessionWithAssuranceLevel(sessions, 'low') if (lowSession) { - return res.redirect(`${baseRedirectUrl}&auth_methods=${lowSession.authenticationMethod}`); + return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); } } catch (exception) { diff --git a/test/sso.js b/test/sso.js index ed7bf1a..bfbc782 100644 --- a/test/sso.js +++ b/test/sso.js @@ -210,7 +210,7 @@ describe('test sso middleware', function onDescribe() { }); res.on('end', () => { - assert(redirectValue.includes(lowSession.authenticationMethod)); + assert(redirectValue.includes('iam-aprofiel-userpass')); done(); }); From df88bb63d3eaeece1a09781bd05581d42cd2d372 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Mon, 6 Apr 2020 16:43:07 +0200 Subject: [PATCH 17/67] 2.0.0-2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc58818..632d8ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-1", + "version": "2.0.0-2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 29dfe65..45c14d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-1", + "version": "2.0.0-2", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 906f75bfd8251cff9fa683e363241af13b0f0ee0 Mon Sep 17 00:00:00 2001 From: PrinceAnsong Date: Tue, 7 Apr 2020 10:37:43 +0200 Subject: [PATCH 18/67] Fix typo in highest assurance level search loop (#26) * Use default authentication method in SSO redirect URL for low sessions * Fix typo in loop while searching for highest assurance level * Remove node 8 from travis config --- .travis.yml | 1 - src/hooks/assuranceLevelAndAuthMethod.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b01f235..a97967c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: node_js node_js: - - "8" - "10" - "11" diff --git a/src/hooks/assuranceLevelAndAuthMethod.js b/src/hooks/assuranceLevelAndAuthMethod.js index a07c41c..6ed79c6 100644 --- a/src/hooks/assuranceLevelAndAuthMethod.js +++ b/src/hooks/assuranceLevelAndAuthMethod.js @@ -15,7 +15,7 @@ function getHighestAssuranceLevelSession(sessions = []) { } if (sessions[i].assuranceLevel === 'substantial') { - highestAssuranceLevelSession = session[i]; + highestAssuranceLevelSession = sessions[i]; } } From c21aa08d892dc2b1d9466f397be97c9aa752dac3 Mon Sep 17 00:00:00 2001 From: Prince Ansong Date: Thu, 11 Jun 2020 10:31:05 +0200 Subject: [PATCH 19/67] Fix naming of authentication method param during logout --- readme.md | 29 +++++++++++++++++++++++++---- src/controller.js | 7 +++---- test/logout.js | 2 +- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/readme.md b/readme.md index a747a34..44e02e7 100644 --- a/readme.md +++ b/readme.md @@ -163,15 +163,36 @@ You should add a custom header which corresponds to the headerKey in your logout This endpoint can be used to login. There are some query parameters available to control in which ways the user can login and which scopes the user can use. #### Query parameters + - **scopeGroups** comma seperated list of the keys of the scopeGroups configured in your configuration. If none are given, only the default scopes from the configration are requested. + - **minimal_assurance_level** (default: low for context citizen, substantial for context enterprise) - possible values: low, substantial, high - determines which authentication methods are available to the user (see [Available authentication methods](available-authentication-methods)) + possible values: low, substantial, high + Determines which authentication methods are available to the user. + If specified, only authentication methods corresponding with the specified assurance level will be available for the user to log in with. See [Available authentication methods](available-authentication-methods) for info about which authentication methods correspond to which assurance levels. + - **fromUrl** (default /) - Where the user should be redirected if the login process is successfull + Where the user should be redirected if the login process is successful. + - **context** (enterprise or citizen) (default citizen) - if the user should login as a citizen or as an enterprise user. Login in with context enterprise enables the application to fetch additional roles at the authz api with the access token of the user. + Specifies whether the user should log in as a citizen or as an enterprise user. Logging in with context enterprise enables the application to fetch additional enterprise related roles from the authz api with the access token of the user. + +- **auth_methods** + A comma separated list of the auth methods to allow the user to log in with. + This limits the list of authentication methods provided to the user by the minimal_assurance_level parameter (if specified) and the context. + + Note that you cannot provide conflicting auth methods with those determined by either the minimal_assurance_level parameter or the context parameter. + + e.g.: + - auth_methods=iam-aprofiel-userpass&context=enterprise + (enterprise context requires a minimal assurance level of substantial, iam-aprofiel-userpass has an assurance level of low) + + - auth_methods=iam-aprofiel-userpass&minimal_assurance_level=high + (iam-aprofiel-userpass has an assurance level of low, which is not sufficient for the specified minimal assurance level) + + See [Available authentication methods](available-authentication-methods) for a comprehensive list of available authentication methods. + ### GET {basePath}/isloggedin The `isloggedin` endpoint can be used to check if the user is currently loggedIn diff --git a/src/controller.js b/src/controller.js index a103be7..0b0be10 100644 --- a/src/controller.js +++ b/src/controller.js @@ -75,7 +75,6 @@ export default function createController(config) { } return authMethodsConfig[context][minimal_assurance_level].join(','); - } function createLoginUrl(host, stateKey, options) { @@ -104,7 +103,7 @@ export default function createController(config) { return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; } - function createLogoutUrl({ userId, token, redirectUri, service = 'iam-aprofiel-userpass'}) { + function createLogoutUrl({ userId, token, redirectUri, authenticationMethod = 'iam-aprofiel-userpass'}) { const data = JSON.stringify({ user_id: userId, @@ -114,7 +113,7 @@ export default function createController(config) { const query = { client_id: clientId, - service, + authenticationMethod, data: logoutEncrypt(data, clientSecret), }; @@ -207,7 +206,7 @@ export default function createController(config) { redirectUri: `${getHost(req)}${basePath}/logout/callback`, token: token.accessToken, userId: req.session[objectKey].profile.id, - service: req.session[objectKey].authenticationMethod + authenticationMethod: req.session[objectKey].authenticationMethod }; const logoutUrl = createLogoutUrl(logoutParams); runHooks(preLogoutHooks, req, res, () => { diff --git a/test/logout.js b/test/logout.js index a1cb935..8a02af6 100644 --- a/test/logout.js +++ b/test/logout.js @@ -153,7 +153,7 @@ describe('GET /logout', function onDescribe() { res.redirect.bind(res); res.on('end', () => { - assert(redirectUrl.includes('service=iam-user-pass')); + assert(redirectUrl.includes('authenticationMethod=iam-user-pass')); return done(); }); From 249b58428bcf990045d917cb7eaf87a4e801d033 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 11 Jun 2020 10:58:23 +0200 Subject: [PATCH 20/67] Version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 45c14d8..9db85dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-2", + "version": "2.0.0-3", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From d2a0abe80b10d9fc7317270faf18133e85ef00ee Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 11 Jun 2020 10:58:34 +0200 Subject: [PATCH 21/67] 2.0.0-4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 632d8ba..d68ef60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-2", + "version": "2.0.0-4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 9db85dd..5460cfa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-3", + "version": "2.0.0-4", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From c3346defb1feff3e02996f53587eefdf2aefea08 Mon Sep 17 00:00:00 2001 From: Prince Ansong Date: Thu, 18 Jun 2020 11:13:46 +0200 Subject: [PATCH 22/67] Delete sessions after successful logout instead of before logout Deleting a session for an itsme authentication before the logout flow is started causes the flow to terminate in the consent app before the user is redirected to the itsme logout service. So when the user attempts to log in again, when the user reaches the itsme server to log in, the pre-existing session is used to automatically log the user in. See: https://jira.antwerpen.be/browse/AUTH-394?focusedCommentId=227930&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-227930 --- src/controller.js | 2 +- test/logoutCallback.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controller.js b/src/controller.js index a103be7..31f3774 100644 --- a/src/controller.js +++ b/src/controller.js @@ -29,7 +29,7 @@ export default function createController(config) { } = hooks; loginSuccessHooks.push(createAssuranceLevelAndAuthMethodHook(config)); - preLogoutHooks.push(createDeleteSessionsHook(config)); + logoutSuccessHooks.push(createDeleteSessionsHook(config)); const service = createService(config); diff --git a/test/logoutCallback.js b/test/logoutCallback.js index bab13ac..37a23ad 100644 --- a/test/logoutCallback.js +++ b/test/logoutCallback.js @@ -19,7 +19,7 @@ describe('GET /logout/callback', function onDescribe() { query: { state: '1234' }, - get: () => host, + get: () => undefined, session: { save: (cb) => cb(), user: {}, @@ -59,7 +59,7 @@ describe('GET /logout/callback', function onDescribe() { query: { state: '1234' }, - get: () => host, + get: () => undefined, session: { save: (cb) => cb(), user: {}, From ae15cfdf7d076f8db0264aa7c41fb59b2aa4177c Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Mon, 22 Jun 2020 09:14:20 +0200 Subject: [PATCH 23/67] 2.0.0-5 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d68ef60..abd8337 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-4", + "version": "2.0.0-5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5460cfa..e81112d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-4", + "version": "2.0.0-5", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 3c24236890d56ba7330beb3ac3a81d07e96d4723 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Thu, 29 Apr 2021 14:07:28 +0200 Subject: [PATCH 24/67] hinted login is workiung (#32) * hinted login is workiung * 2.1.0-0 * fix access token expiryu * 2.1.0-1 * make it possible to disable upgrading the user's assurancelevel * 2.1.0-2 (#35) * update & fix default query param --- .gitignore | 1 + examples/basic-mongo/index.js | 3 +- examples/node-hinted-login/.env.dist | 2 + examples/node-hinted-login/index.js | 44 + examples/node-hinted-login/package-lock.json | 134 ++ examples/node-hinted-login/package.json | 17 + package-lock.json | 1276 +++++++++--------- package.json | 4 +- readme.md | 9 +- src/accessToken.js | 2 +- src/authMethods.js | 13 +- src/controller.js | 49 +- src/hooks/assuranceLevelAndAuthMethod.js | 65 +- src/hooks/authMethodAssuranceLevelMapping.js | 45 + src/hooks/determineLoginType.js | 26 + src/middleware/sso.js | 12 +- test/sso.js | 2 - 17 files changed, 955 insertions(+), 749 deletions(-) create mode 100644 examples/node-hinted-login/.env.dist create mode 100644 examples/node-hinted-login/index.js create mode 100644 examples/node-hinted-login/package-lock.json create mode 100644 examples/node-hinted-login/package.json create mode 100644 src/hooks/authMethodAssuranceLevelMapping.js create mode 100644 src/hooks/determineLoginType.js diff --git a/.gitignore b/.gitignore index cd1ed4f..93d051b 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ nbproject/* # Sass / **\.sass-cache Gemfile.lock +.env diff --git a/examples/basic-mongo/index.js b/examples/basic-mongo/index.js index ee0fe88..aa43719 100644 --- a/examples/basic-mongo/index.js +++ b/examples/basic-mongo/index.js @@ -1,3 +1,4 @@ +// This is example is v1 const express = require('express'); const connectMongo = require('connect-mongo'); const session = require('express-session'); @@ -30,4 +31,4 @@ sessionConfig = Object.assign(sessionConfig, { app.use(session(sessionConfig)); app.use(auth(app, authConfig)); -app.listen(port, () => console.log(`express server listening on port ${port}`)); \ No newline at end of file +app.listen(port, () => console.log(`express server listening on port ${port}`)); diff --git a/examples/node-hinted-login/.env.dist b/examples/node-hinted-login/.env.dist new file mode 100644 index 0000000..a494398 --- /dev/null +++ b/examples/node-hinted-login/.env.dist @@ -0,0 +1,2 @@ +CLIENT_ID= +CLIENT_SECRET= \ No newline at end of file diff --git a/examples/node-hinted-login/index.js b/examples/node-hinted-login/index.js new file mode 100644 index 0000000..c1ae8b3 --- /dev/null +++ b/examples/node-hinted-login/index.js @@ -0,0 +1,44 @@ +const express = require('express'); +const session = require('express-session'); +// for this to work, run npm run build in the root of this repository +const { createRouter } = require('../../'); +const app = express(); + +const authConfig = { + basePath: '/auth', + clientId: process.env.CLIENT_ID || 'your-client-id', + clientSecret: process.env.CLIENT_SECRET || 'your-client-secret', + oauthHost: 'https://api-oauth2-o.antwerpen.be', + fetchAssuranceLevel: false, + consentUrl: 'https://api-gw-o.antwerpen.be/acpaas/consent/v1', + scopeGroups: { + personalInformation: [ + 'astad.aprofiel.v1.avatar', + 'astad.aprofiel.v1.email', + ], + high: ['crspersoon.nationalnumber'] + }, + defaultScopes: ['astad.aprofiel.v1.name',], + url: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1', + hooks: { + loginSuccess: [ + (req, res, next) => { + console.log(req.query); + req.session.user.hookTest = 'hello'; + return next(); + } + ] + } +}; + +app.use(session({ + secret: 'keyboard cat', +})); + +app.enable('trust proxy'); +app.use(createRouter(app, authConfig)); +app.get('/', (req, res) => { + res.send(`

${JSON.stringify(req.session, null, 2)}
`); +}); + +app.listen(2000, () => console.log('listening on port 2000')); diff --git a/examples/node-hinted-login/package-lock.json b/examples/node-hinted-login/package-lock.json new file mode 100644 index 0000000..007cf99 --- /dev/null +++ b/examples/node-hinted-login/package-lock.json @@ -0,0 +1,134 @@ +{ + "name": "node-hinted-login", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "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-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "requires": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + } + }, + "express-session": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz", + "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==", + "requires": { + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.0", + "uid-safe": "~2.1.5" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "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==", + "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==" + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "~1.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } +} diff --git a/examples/node-hinted-login/package.json b/examples/node-hinted-login/package.json new file mode 100644 index 0000000..0141b35 --- /dev/null +++ b/examples/node-hinted-login/package.json @@ -0,0 +1,17 @@ +{ + "name": "node-hinted-login", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "env-cmd -f ./.env node index.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "env-cmd": "^10.1.0", + "express-session": "^1.17.1" + } +} diff --git a/package-lock.json b/package-lock.json index abd8337..d68b20e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,9 @@ { "name": "@digipolis/auth", - "version": "2.0.0-5", + "version": "2.1.0-2", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, "@babel/compat-data": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", @@ -185,27 +176,6 @@ } } }, - "@babel/generator": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", - "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", - "dev": true, - "requires": { - "@babel/types": "^7.5.5", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "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-annotate-as-pure": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", @@ -634,26 +604,6 @@ } } }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, "@babel/helper-hoist-variables": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", @@ -1173,15 +1123,6 @@ } } }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, "@babel/helper-wrap-function": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", @@ -1463,23 +1404,6 @@ } } }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", - "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", - "dev": true - }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", @@ -2202,62 +2126,6 @@ "source-map-support": "^0.5.16" } }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", - "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.5.5", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.5.5", - "@babel/types": "^7.5.5", - "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.5.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", - "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.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", @@ -2361,6 +2229,16 @@ "@types/node": "*" } }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", @@ -2383,12 +2261,12 @@ } }, "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "requires": { - "default-require-extensions": "^2.0.0" + "default-require-extensions": "^3.0.0" } }, "archy": { @@ -2665,15 +2543,32 @@ "dev": true }, "caching-transform": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", - "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { - "hasha": "^3.0.0", - "make-dir": "^2.0.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.4.2" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "camelcase": { @@ -2716,6 +2611,12 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", @@ -2748,13 +2649,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "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, - "optional": true - }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -2773,9 +2667,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "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" @@ -2809,19 +2703,6 @@ } } }, - "cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" - } - }, "cross-env": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", @@ -2866,12 +2747,12 @@ "dev": true }, "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", "dev": true, "requires": { - "strip-bom": "^3.0.0" + "strip-bom": "^4.0.0" } }, "define-properties": { @@ -2938,15 +2819,6 @@ "once": "^1.4.0" } }, - "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==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "es-abstract": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", @@ -3292,23 +3164,54 @@ } }, "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" }, "dependencies": { "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "isexe": "^2.0.0" } } } @@ -3332,6 +3235,12 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3356,6 +3265,12 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -3386,9 +3301,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "growl": { @@ -3397,18 +3312,6 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "handlebars": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz", - "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3418,6 +3321,12 @@ "function-bind": "^1.1.1" } }, + "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 + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", @@ -3425,12 +3334,21 @@ "dev": true }, "hasha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", - "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "requires": { - "is-stream": "^1.0.1" + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "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 + } } }, "he": { @@ -3439,31 +3357,11 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hosted-git-info": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.2.tgz", - "integrity": "sha512-CyjlXII6LMsPMyUzxpTt8fzh5QwzGqPmQXgY/Jyf4Zfp27t/FvfhwoE/8laaMUcMy816CkWF20I7NeQhwwY88w==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - } - } + "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 }, "iconv-lite": { "version": "0.4.24", @@ -3479,6 +3377,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3509,12 +3413,6 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "is-buffer": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", @@ -3568,6 +3466,12 @@ "has-symbols": "^1.0.0" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3590,33 +3494,30 @@ } }, "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "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-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, "requires": { - "append-transform": "^1.0.0" + "append-transform": "^2.0.0" } }, "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "dev": true, - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "dependencies": { "semver": { @@ -3627,54 +3528,131 @@ } } }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", "dev": true, "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" }, "dependencies": { - "has-flag": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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 + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "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==", + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "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": { - "has-flag": "^3.0.0" + "isexe": "^2.0.0" + } + } + } + }, + "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": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" } + }, + "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-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "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": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", + "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==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3682,22 +3660,17 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, "istanbul-reports": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", - "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "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": { - "handlebars": "^4.1.2" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, "js-tokens": { @@ -3722,12 +3695,6 @@ "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==", - "dev": true - }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -3741,14 +3708,6 @@ "dev": true, "requires": { "minimist": "^1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "lcid": { @@ -3775,26 +3734,6 @@ "leven": "^3.1.0" } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -3806,9 +3745,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.flattendeep": { "version": "4.4.0", @@ -3840,16 +3779,6 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "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" - } - }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -3890,23 +3819,6 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -3928,26 +3840,18 @@ } }, "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } + "minimist": "^1.2.5" } }, "mocha": { @@ -4026,6 +3930,21 @@ "esprima": "^4.0.0" } }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -4040,6 +3959,16 @@ "requires": { "has-flag": "^3.0.0" } + }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -4054,18 +3983,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", - "dev": true - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -4150,6 +4067,15 @@ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, "node-releases": { "version": "1.1.48", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", @@ -4167,29 +4093,6 @@ } } }, - "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" - }, - "dependencies": { - "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4206,73 +4109,221 @@ "dev": true }, "nyc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", - "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { - "archy": "^1.0.0", - "caching-transform": "^3.0.2", - "convert-source-map": "^1.6.0", - "cp-file": "^6.2.0", - "find-cache-dir": "^2.1.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.4", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.2.3", - "uuid": "^3.3.2", - "yargs": "^13.2.2", - "yargs-parser": "^13.0.0" + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" }, "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "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 }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "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" + "color-convert": "^2.0.1" } }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "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 + }, + "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==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.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" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "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.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -4326,22 +4377,6 @@ "wrappy": "1" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-locale": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", @@ -4389,6 +4424,15 @@ "p-limit": "^2.0.0" } }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -4396,27 +4440,17 @@ "dev": true }, "package-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", - "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, "requires": { "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", + "hasha": "^5.0.0", "lodash.flattendeep": "^4.4.0", "release-zalgo": "^1.0.0" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -4446,23 +4480,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -4493,18 +4510,21 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, "propagate": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -4521,27 +4541,6 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -4644,34 +4643,18 @@ } }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "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" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "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" - } - } } }, "rollup-plugin-babel": { @@ -4779,51 +4762,45 @@ } }, "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "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" + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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" + } + } } }, - "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 - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4850,9 +4827,9 @@ } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "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 }, "strip-eof": { @@ -4867,32 +4844,24 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "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": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "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" - } - } + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" } }, "to-fast-properties": { @@ -4906,21 +4875,19 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "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 }, - "uglify-js": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz", - "integrity": "sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==", + "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, - "optional": true, "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" + "is-typedarray": "^1.0.0" } }, "unicode-canonical-property-names-ecmascript": { @@ -4975,16 +4942,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" }, - "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", @@ -5019,12 +4976,6 @@ "string-width": "^1.0.2 || 2" } }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -5079,26 +5030,21 @@ "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==", + "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": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "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==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { @@ -5149,9 +5095,9 @@ } }, "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index e81112d..bfed731 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.0.0-5", + "version": "2.1.0-2", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", @@ -36,7 +36,7 @@ "mocha": "^6.2.0", "mockery": "~2.1.0", "nock": "~9.0.14", - "nyc": "^14.1.1", + "nyc": "^15.1.0", "reqres": "~1.3.0", "rollup-plugin-babel": "^4.3.3" } diff --git a/readme.md b/readme.md index 44e02e7..12c491c 100644 --- a/readme.md +++ b/readme.md @@ -79,7 +79,10 @@ The login router & the SSO middleware use the same configuration. - **consentUrl**: *string* The url of the consent api is necessary to enable SSO (also see section [api store](#api-store-configuration)). - (e.g. https://api-gw-a.antwerpen.be/acpaas/consent/v1) + (e.g. https://api-gw-a.antwerpen.be/acpaas/consent/v1) +- **shouldUpgradeAssuranceLevel**: *boolean* default true + Whether you should upgrade to an higher assurancelevel when you already have a session in the app + defaults to true (can be disabled for performance reasons) - **defaultScopes**: *string[ ]* list of scopes you will always use (see section [scopes](#available-scopes)) Should be compatible with assurance level = low @@ -175,8 +178,8 @@ This endpoint can be used to login. There are some query parameters available to - **fromUrl** (default /) Where the user should be redirected if the login process is successful. -- **context** (enterprise or citizen) (default citizen) - Specifies whether the user should log in as a citizen or as an enterprise user. Logging in with context enterprise enables the application to fetch additional enterprise related roles from the authz api with the access token of the user. +- **context** (enterprise, citizen or enterprise-citizen) (default citizen) + Specifies whether the user should log in as a citizen or as an enterprise user. Logging in with context enterprise enables the application to fetch additional enterprise related roles from the authz api with the access token of the user. The context enterprise-citizen presents the user with a choice if they want to login with either citizen or their enterprise. - **auth_methods** A comma separated list of the auth methods to allow the user to log in with. diff --git a/src/accessToken.js b/src/accessToken.js index 37f2d10..4da8091 100644 --- a/src/accessToken.js +++ b/src/accessToken.js @@ -66,7 +66,7 @@ export function refreshToken(token, clientId, clientSecret, url) { export async function getAccessToken(clientId, clientSecret, url) { - if (tokenStore.token && tokenStore.token.expiry > Date.now()) { + if (tokenStore.token && tokenStore.token.expiresIn > Date.now()) { return tokenStore.token.accessToken; } diff --git a/src/authMethods.js b/src/authMethods.js index b79d8c3..401d582 100644 --- a/src/authMethods.js +++ b/src/authMethods.js @@ -28,4 +28,15 @@ export default { 'fas-enterprise-eid' ] }, -} \ No newline at end of file + 'enterprise-citizen': { + substantial: [ + 'fas-hintedlogin-bmid', + 'fas-hintedlogin-otp', + 'fas-hintedlogin-totp', + 'fas-hintedlogin-eid' + ], + high: [ + 'fas-hintedlogin-eid' + ] + } +} diff --git a/src/controller.js b/src/controller.js index ec09b50..ea1ad45 100644 --- a/src/controller.js +++ b/src/controller.js @@ -3,9 +3,11 @@ import qs from 'querystring'; import uuid from 'uuid'; import authMethodsConfig from './authMethods'; import createService from './service'; -import {getHost, logoutEncrypt, runHooks} from './helpers'; +import { getHost, logoutEncrypt, runHooks } from './helpers'; import createDeleteSessionsHook from './hooks/deleteSessions'; import createAssuranceLevelAndAuthMethodHook from './hooks/assuranceLevelAndAuthMethod'; +import createDetermineLoginTypeHook from './hooks/determineLoginType'; + const EXPIRY_MARGIN = 5 * 60 * 1000; export default function createController(config) { const { @@ -18,9 +20,9 @@ export default function createController(config) { refresh = false, hooks = {}, errorRedirect = '/', - key: objectKey = 'user' + key: objectKey = 'user', } = config; - + let { preLogin: preLoginHooks = [], preLogout: preLogoutHooks = [], @@ -28,21 +30,26 @@ export default function createController(config) { logoutSuccess: logoutSuccessHooks = [], } = hooks; - loginSuccessHooks.push(createAssuranceLevelAndAuthMethodHook(config)); + + loginSuccessHooks.push( + createAssuranceLevelAndAuthMethodHook(config), + createDetermineLoginTypeHook(config) + ); + logoutSuccessHooks.push(createDeleteSessionsHook(config)); const service = createService(config); - + function determineScopes(options) { let scopes = [...defaultScopes]; - if(!options.scopeGroups) { + if (!options.scopeGroups) { return scopes.join(' '); } const groups = Array.isArray(options.scopeGroups) ? scopeGroups : options.scopeGroups.split(','); groups.forEach(group => { - if(scopeGroups[group]) { + if (scopeGroups[group]) { scopes.push(...scopeGroups[group]); } }) @@ -56,21 +63,21 @@ export default function createController(config) { context = 'citizen' } = options; - if(auth_methods && auth_methods.length > 0) { + if (auth_methods && auth_methods.length > 0) { return auth_methods; } - if(!['citizen', 'enterprise'].includes(context)) { + if (!['citizen', 'enterprise', 'enterprise-citizen'].includes(context)) { console.log(`context ${context} not known, fallback to citizen`); context = 'citizen'; } - if(!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { + if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { console.log(`${minimal_assurance_level} not known, fallback to lowest available`); minimal_assurance_level = 'low'; } - - // enterprise does not have low. - if(context === 'enterprise' && minimal_assurance_level === 'low') { + + // enterprise does not have low. + if (['enterprise', 'enterprise-citizen'].includes(context) && minimal_assurance_level === 'low') { minimal_assurance_level = 'substantial'; } @@ -103,7 +110,7 @@ export default function createController(config) { return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; } - function createLogoutUrl({ userId, token, redirectUri, authenticationMethod = 'iam-aprofiel-userpass'}) { + function createLogoutUrl({ userId, token, redirectUri, authenticationMethod = 'iam-aprofiel-userpass' }) { const data = JSON.stringify({ user_id: userId, @@ -132,7 +139,7 @@ export default function createController(config) { } function isLoggedin(req, res) { - if(!req.session[objectKey]) { + if (!req.session[objectKey]) { return res.json({ isLoggedin: false }); @@ -158,13 +165,13 @@ export default function createController(config) { return res.redirect(loginUrl); } + delete req.session[`loginKey`]; try { - const { user, userToken} = await service.loginUser(req.query.code); + const { user, userToken } = await service.loginUser(req.query.code); req.session[objectKey] = user; req.session[`${objectKey}Token`] = userToken; - runHooks(loginSuccessHooks, req, res, (error) => { if (error) { console.log(error); @@ -176,7 +183,7 @@ export default function createController(config) { console.log('error during logincallback', err); return res.redirect(errorRedirect); } - + } function logoutCallback(req, res) { @@ -205,7 +212,7 @@ export default function createController(config) { const logoutParams = { redirectUri: `${getHost(req)}${basePath}/logout/callback`, token: token.accessToken, - userId: req.session[objectKey].profile.id, + userId: req.session[objectKey].profile.id, authenticationMethod: req.session[objectKey].authenticationMethod }; const logoutUrl = createLogoutUrl(logoutParams); @@ -248,14 +255,14 @@ export default function createController(config) { const tokenKey = `${objectKey}Token`; const token = req.session[tokenKey]; - if(!token) { + if (!token) { return next(); } if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN)) { return next(); } - + const newToken = await service.refresh(token); req.session = Object.assign(req.session, { [tokenKey]: newToken }); return req.session.save(() => next()); diff --git a/src/hooks/assuranceLevelAndAuthMethod.js b/src/hooks/assuranceLevelAndAuthMethod.js index 6ed79c6..c459fe2 100644 --- a/src/hooks/assuranceLevelAndAuthMethod.js +++ b/src/hooks/assuranceLevelAndAuthMethod.js @@ -1,61 +1,22 @@ import cookieParser from 'cookie'; import { getSessions } from '../sessionStore'; -import { getAccessToken } from '../accessToken'; - - -function getHighestAssuranceLevelSession(sessions = []) { - let highestAssuranceLevelSession = { - assuranceLevel: 'low', - authenticationMethod: 'iam-aprofiel-userpass' - }; - - for (let i = 0; i < sessions.length; i++) { - if (sessions[i].assuranceLevel === 'high') { - return sessions[i]; - } - - if (sessions[i].assuranceLevel === 'substantial') { - highestAssuranceLevelSession = sessions[i]; - } - } - - return highestAssuranceLevelSession; -} +import assuranceLevelMapping from './authMethodAssuranceLevelMapping'; export default function createAssuranceLevelAndAuthMethodHook({ - clientId, - clientSecret, - consentUrl, - key = 'user', - ssoCookieName = 'dgp.auth.ssokey', - }) { - - return async (req, res, next) => { - const cookieHeader = req.get('cookie'); - if (!cookieHeader) { - return next(); - } - - const cookies = cookieParser.parse(cookieHeader); - const ssoKey = cookies[ssoCookieName]; - - if (!ssoKey) { - return next(); - } - - try { - const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); - const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); - const { assuranceLevel, authenticationMethod } = getHighestAssuranceLevelSession(sessions); - req.session[key].assuranceLevel = assuranceLevel; - req.session[key].authenticationMethod = authenticationMethod; - - } catch (e) { - console.log(e); + key = 'user', +}) { + + return (req, res, next) => { + let { + method, + } = req.query; + if (method === 'astad.aprofiel.v1') { + method = 'iam-aprofiel-userpass' } + req.session[key].assuranceLevel = assuranceLevelMapping[method] || 'low'; + req.session[key].authenticationMethod = method || 'iam-aprofiel-userpass'; return next(); - } -} \ No newline at end of file +} diff --git a/src/hooks/authMethodAssuranceLevelMapping.js b/src/hooks/authMethodAssuranceLevelMapping.js new file mode 100644 index 0000000..844f57c --- /dev/null +++ b/src/hooks/authMethodAssuranceLevelMapping.js @@ -0,0 +1,45 @@ +/** + * the following script can be used to automatically generate this mapping + */ + + +// import authMethodsConfig from '../authMethods'; + +// const authMethodsAssuranceLevel = Object +// .keys(authMethodsConfig) +// .reduce((assuranceLevelMapping, currentContext) => { +// const assuranceLevelMethods = authMethodsConfig[currentContext]; +// const mapping = Object.keys(assuranceLevelMethods).reduce((acc, assuranceLevel) => { +// const extraMapping = assuranceLevelMethods[assuranceLevel].reduce((acc, authMethod) => { +// return { +// ...acc, +// [authMethod]: assuranceLevel +// } +// }, {}); +// return { +// ...acc, +// ...extraMapping, +// } +// }, {}) + +// return { +// ...assuranceLevelMapping, +// ...mapping +// } +// }, {}); + +export default { + 'iam-aprofiel-userpass': 'low', + 'fas-citizen-bmid': 'substantial', + 'fas-citizen-otp': 'substantial', + 'fas-citizen-totp': 'substantial', + 'fas-citizen-eid': 'high', + 'fas-enterprise-bmid': 'substantial', + 'fas-enterprise-otp': 'substantial', + 'fas-enterprise-totp': 'substantial', + 'fas-enterprise-eid': 'high', + 'fas-hintedlogin-bmid': 'substantial', + 'fas-hintedlogin-otp': 'substantial', + 'fas-hintedlogin-totp': 'substantial', + 'fas-hintedlogin-eid': 'high' +} diff --git a/src/hooks/determineLoginType.js b/src/hooks/determineLoginType.js new file mode 100644 index 0000000..7a2ddd4 --- /dev/null +++ b/src/hooks/determineLoginType.js @@ -0,0 +1,26 @@ + + +export default function createDetermineLoginTypeMiddleware({ + key = 'user', +}) { + + return (req, res, next) => { + let { + hinted = false, + method = '', + } = req.query; + + let type = 'citizen'; + if (hinted) { + type = hinted; + } + + if (method.indexOf('enterprise') > -1) { + type = 'enterprise'; + } + + req.session[key].type = type; + return next(); + } + +} diff --git a/src/middleware/sso.js b/src/middleware/sso.js index 70001f2..979c48e 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -26,6 +26,7 @@ export default function sso(options) { basePath = '/auth', port = false, ssoCookieName = 'dgp.auth.ssokey', + shouldUpgradeAssuranceLevel = true, } = options; const loginPath = `${basePath}/login`; @@ -36,19 +37,28 @@ export default function sso(options) { return next(); } + // if we already have a session && we do not need assurance levels, do nothing + if(req.session[key] && !shouldUpgradeAssuranceLevel) { + return next(); + } + const cookies = cookieParser.parse(cookieHeader); const ssoKey = cookies[ssoCookieName]; if (!ssoKey) { return next(); } + + const user = req.session[key] || {}; const assuranceLevel = user.assuranceLevel || 'none'; + if (assuranceLevel === 'high') { return next(); } + try { const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); @@ -58,7 +68,7 @@ export default function sso(options) { const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; const highSession = getSessionWithAssuranceLevel(sessions, 'high'); - + if (highSession) { return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); } diff --git a/test/sso.js b/test/sso.js index bfbc782..2bd7939 100644 --- a/test/sso.js +++ b/test/sso.js @@ -8,11 +8,9 @@ import { emptySessions, onlyLowSession, lowSubstantialSessions, - lowSubstantialHighSessions, lowHighSessions, highSession, substantialSession, - lowSession } from './mocks/sessionStoreResponses'; From 0f474123c5f0e797bdce5474ff27b9d620026ce6 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Thu, 29 Apr 2021 14:08:19 +0200 Subject: [PATCH 25/67] 2.1.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d68b20e..3495828 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.0-2", + "version": "2.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bfed731..f57d09c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.0-2", + "version": "2.1.0", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 757ecf19cd67bc1639b279f94482c47affcdd6a7 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 10:08:11 +0200 Subject: [PATCH 26/67] add logger --- package-lock.json | 52 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + readme.md | 2 +- src/controller.js | 17 ++++++++++++---- 4 files changed, 67 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3495828..65a2bbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2303,6 +2303,11 @@ "lodash": "^4.14.0" } }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, "babel-plugin-dynamic-import-node": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", @@ -3134,6 +3139,16 @@ } } }, + "fast-redact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", + "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, "find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", @@ -3163,6 +3178,11 @@ "is-buffer": "~2.0.3" } }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, "foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -4486,6 +4506,24 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, + "pino": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", + "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + } + }, + "pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, "pirates": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", @@ -4541,6 +4579,11 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "quick-format-unescaped": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", + "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -4745,6 +4788,15 @@ "util": ">=0.10.3 <1" } }, + "sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index f57d09c..7ccf454 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "express": "^4.16.4", "isomorphic-fetch": "^2.2.1", "oauth": "~0.9.15", + "pino": "^6.11.3", "uuid": "~3.1.0" }, "devDependencies": { diff --git a/readme.md b/readme.md index 12c491c..e7ff3bd 100644 --- a/readme.md +++ b/readme.md @@ -69,7 +69,7 @@ router ### Configuration The login router & the SSO middleware use the same configuration. - +- **logLevel**: defaults to error - **basePath**: *string* (default: '/auth') Each of the routes in the auth router will be prepended with this property - **clientId**: *string* diff --git a/src/controller.js b/src/controller.js index ea1ad45..1b81d09 100644 --- a/src/controller.js +++ b/src/controller.js @@ -1,6 +1,8 @@ import bcrypt from 'bcryptjs'; import qs from 'querystring'; import uuid from 'uuid'; +import pino from 'pino'; + import authMethodsConfig from './authMethods'; import createService from './service'; import { getHost, logoutEncrypt, runHooks } from './helpers'; @@ -21,8 +23,13 @@ export default function createController(config) { hooks = {}, errorRedirect = '/', key: objectKey = 'user', + logLevel = 'error', } = config; + const logger = pino({ + name:'@digipolis/auth-controller', + level: logLevel, + }); let { preLogin: preLoginHooks = [], preLogout: preLogoutHooks = [], @@ -67,12 +74,12 @@ export default function createController(config) { return auth_methods; } if (!['citizen', 'enterprise', 'enterprise-citizen'].includes(context)) { - console.log(`context ${context} not known, fallback to citizen`); + logger.info(`context ${context} not known, fallback to citizen`); context = 'citizen'; } if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { - console.log(`${minimal_assurance_level} not known, fallback to lowest available`); + logger.info(`${minimal_assurance_level} not known, fallback to lowest available`); minimal_assurance_level = 'low'; } @@ -153,10 +160,12 @@ export default function createController(config) { async function loginCallback(req, res) { if (!req.query.code || !req.query.state) { + logger.error(`code or state not in query params`); return res.redirect(errorRedirect); } if (req.query.state !== req.session[`loginKey`]) { + logger.error(`state ${req.query.state} does not match loginKey ${req.session['loginKey']}`); let loginUrl = `${basePath}/login`; const fromUrl = req.session.fromUrl; if (fromUrl) { @@ -174,13 +183,13 @@ export default function createController(config) { req.session[`${objectKey}Token`] = userToken; runHooks(loginSuccessHooks, req, res, (error) => { if (error) { - console.log(error); + logger.error(error); return res.redirect(errorRedirect); } req.session.save(() => res.redirect(req.session.fromUrl || '/')); }); } catch (err) { - console.log('error during logincallback', err); + logger.error('error during logincallback', err); return res.redirect(errorRedirect); } From 31081d25007a1b8bdfabfe5347add1723309f770 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 10:15:55 +0200 Subject: [PATCH 27/67] 2.1.1-0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 65a2bbf..46cc1b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.0", + "version": "2.1.1-0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7ccf454..c1b744e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.0", + "version": "2.1.1-0", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 522219335eadef39c575106d1cfb360a17807d47 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 10:49:54 +0200 Subject: [PATCH 28/67] add debug info --- src/controller.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/controller.js b/src/controller.js index 1b81d09..5c00381 100644 --- a/src/controller.js +++ b/src/controller.js @@ -159,6 +159,7 @@ export default function createController(config) { } async function loginCallback(req, res) { + logger.debug('login callback triggered'); if (!req.query.code || !req.query.state) { logger.error(`code or state not in query params`); return res.redirect(errorRedirect); @@ -178,14 +179,17 @@ export default function createController(config) { delete req.session[`loginKey`]; try { + logger.debug('fetch user with code'); const { user, userToken } = await service.loginUser(req.query.code); req.session[objectKey] = user; req.session[`${objectKey}Token`] = userToken; + logger.debug('run hooks'); runHooks(loginSuccessHooks, req, res, (error) => { if (error) { logger.error(error); return res.redirect(errorRedirect); } + logger.debug('finished hooks, redirecting to fromUrl or /'); req.session.save(() => res.redirect(req.session.fromUrl || '/')); }); } catch (err) { From 2e0add836fefe3fe61ef875ef9096b029a0cd6ce Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 10:50:03 +0200 Subject: [PATCH 29/67] 2.1.1-1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46cc1b9..352a9d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-0", + "version": "2.1.1-1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c1b744e..69a2f0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-0", + "version": "2.1.1-1", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 76ab0ff2025f9288606255388a1edc55e9d7ec98 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 12:02:02 +0200 Subject: [PATCH 30/67] update logging --- src/controller.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/controller.js b/src/controller.js index 5c00381..ed82d1d 100644 --- a/src/controller.js +++ b/src/controller.js @@ -189,11 +189,11 @@ export default function createController(config) { logger.error(error); return res.redirect(errorRedirect); } - logger.debug('finished hooks, redirecting to fromUrl or /'); + logger.debug(`finished hooks, redirecting to ${req.session.fromUrl || '/'}`); req.session.save(() => res.redirect(req.session.fromUrl || '/')); }); } catch (err) { - logger.error('error during logincallback', err); + logger.error(err, 'error during logincallback'); return res.redirect(errorRedirect); } From f6297ebf74f85f8e3644a25866750a08f521b757 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 12:02:12 +0200 Subject: [PATCH 31/67] 2.1.1-2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 352a9d3..966de37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-1", + "version": "2.1.1-2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 69a2f0b..a17302e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-1", + "version": "2.1.1-2", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 65bb907f21db5fd9e11e2757176472390e3f2a4e Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 12:10:21 +0200 Subject: [PATCH 32/67] add additional login, change itsme to high --- package-lock.json | 5 +++++ package.json | 1 + src/authMethods.js | 2 ++ src/controller.js | 7 +++++-- src/hooks/authMethodAssuranceLevelMapping.js | 6 +++--- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 966de37..cfa90fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3775,6 +3775,11 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", diff --git a/package.json b/package.json index a17302e..2a56c18 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "cookie": "^0.4.0", "express": "^4.16.4", "isomorphic-fetch": "^2.2.1", + "lodash.get": "^4.4.2", "oauth": "~0.9.15", "pino": "^6.11.3", "uuid": "~3.1.0" diff --git a/src/authMethods.js b/src/authMethods.js index 401d582..7fe214a 100644 --- a/src/authMethods.js +++ b/src/authMethods.js @@ -14,6 +14,7 @@ export default { 'fas-citizen-eid' ], high: [ + 'fas-citizen-bmid', 'fas-citizen-eid' ] }, @@ -36,6 +37,7 @@ export default { 'fas-hintedlogin-eid' ], high: [ + 'fas-citizen-bmid', 'fas-hintedlogin-eid' ] } diff --git a/src/controller.js b/src/controller.js index ed82d1d..21cb89d 100644 --- a/src/controller.js +++ b/src/controller.js @@ -2,6 +2,7 @@ import bcrypt from 'bcryptjs'; import qs from 'querystring'; import uuid from 'uuid'; import pino from 'pino'; +import getProp from 'lodash.get'; import authMethodsConfig from './authMethods'; import createService from './service'; @@ -27,7 +28,7 @@ export default function createController(config) { } = config; const logger = pino({ - name:'@digipolis/auth-controller', + name: '@digipolis/auth-controller', level: logLevel, }); let { @@ -189,7 +190,9 @@ export default function createController(config) { logger.error(error); return res.redirect(errorRedirect); } - logger.debug(`finished hooks, redirecting to ${req.session.fromUrl || '/'}`); + + const username = getProp(user, 'dataSources.aprofiel.username'); + logger.debug(`finished hooks, redirecting ${username} to ${req.session.fromUrl || '/'}`); req.session.save(() => res.redirect(req.session.fromUrl || '/')); }); } catch (err) { diff --git a/src/hooks/authMethodAssuranceLevelMapping.js b/src/hooks/authMethodAssuranceLevelMapping.js index 844f57c..c747a3a 100644 --- a/src/hooks/authMethodAssuranceLevelMapping.js +++ b/src/hooks/authMethodAssuranceLevelMapping.js @@ -30,15 +30,15 @@ export default { 'iam-aprofiel-userpass': 'low', - 'fas-citizen-bmid': 'substantial', + 'fas-citizen-bmid': 'high', 'fas-citizen-otp': 'substantial', 'fas-citizen-totp': 'substantial', 'fas-citizen-eid': 'high', - 'fas-enterprise-bmid': 'substantial', + 'fas-enterprise-bmid': 'high', 'fas-enterprise-otp': 'substantial', 'fas-enterprise-totp': 'substantial', 'fas-enterprise-eid': 'high', - 'fas-hintedlogin-bmid': 'substantial', + 'fas-hintedlogin-bmid': 'high', 'fas-hintedlogin-otp': 'substantial', 'fas-hintedlogin-totp': 'substantial', 'fas-hintedlogin-eid': 'high' From 377cfdea3f6446fec823d2144b3dd46382b02d78 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 12:10:26 +0200 Subject: [PATCH 33/67] 2.1.1-3 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfa90fd..6cb5e52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-2", + "version": "2.1.1-3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2a56c18..23a6a3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-2", + "version": "2.1.1-3", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 672adce0551fbd22ce43911bbc6615d39d0fe098 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 12:32:56 +0200 Subject: [PATCH 34/67] revert itsme to high --- src/authMethods.js | 2 -- src/hooks/authMethodAssuranceLevelMapping.js | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/authMethods.js b/src/authMethods.js index 7fe214a..401d582 100644 --- a/src/authMethods.js +++ b/src/authMethods.js @@ -14,7 +14,6 @@ export default { 'fas-citizen-eid' ], high: [ - 'fas-citizen-bmid', 'fas-citizen-eid' ] }, @@ -37,7 +36,6 @@ export default { 'fas-hintedlogin-eid' ], high: [ - 'fas-citizen-bmid', 'fas-hintedlogin-eid' ] } diff --git a/src/hooks/authMethodAssuranceLevelMapping.js b/src/hooks/authMethodAssuranceLevelMapping.js index c747a3a..844f57c 100644 --- a/src/hooks/authMethodAssuranceLevelMapping.js +++ b/src/hooks/authMethodAssuranceLevelMapping.js @@ -30,15 +30,15 @@ export default { 'iam-aprofiel-userpass': 'low', - 'fas-citizen-bmid': 'high', + 'fas-citizen-bmid': 'substantial', 'fas-citizen-otp': 'substantial', 'fas-citizen-totp': 'substantial', 'fas-citizen-eid': 'high', - 'fas-enterprise-bmid': 'high', + 'fas-enterprise-bmid': 'substantial', 'fas-enterprise-otp': 'substantial', 'fas-enterprise-totp': 'substantial', 'fas-enterprise-eid': 'high', - 'fas-hintedlogin-bmid': 'high', + 'fas-hintedlogin-bmid': 'substantial', 'fas-hintedlogin-otp': 'substantial', 'fas-hintedlogin-totp': 'substantial', 'fas-hintedlogin-eid': 'high' From f6f11eb6a1afa93cec020cf7111d42611354dca3 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 8 Jun 2021 12:33:02 +0200 Subject: [PATCH 35/67] 2.1.1-4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6cb5e52..f68a065 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-3", + "version": "2.1.1-4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 23a6a3b..759ac67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-3", + "version": "2.1.1-4", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 17ce05e5001f354340fac24d2da6eafc9173ac7f Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Mon, 21 Jun 2021 16:54:35 +0200 Subject: [PATCH 36/67] add logs to sso middleware --- package-lock.json | 10440 ++++++++++++++++++++-------------------- package.json | 90 +- src/controller.js | 1 + src/middleware/sso.js | 12 +- 4 files changed, 5276 insertions(+), 5267 deletions(-) diff --git a/package-lock.json b/package-lock.json index f68a065..5a6185a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5220 +1,5220 @@ -{ - "name": "@digipolis/auth", - "version": "2.1.1-4", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", - "dev": true, - "requires": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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" - } - }, - "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 - }, - "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-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", - "dev": true, - "requires": { - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-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" - }, - "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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "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/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - }, - "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/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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.8.3", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@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/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/register": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", - "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - } - }, - "@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-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" - } - }, - "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/nyc-config-babel": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", - "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", - "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 - }, - "@rollup/plugin-node-resolve": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", - "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.6", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } - }, - "@rollup/pluginutils": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", - "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", - "dev": true, - "requires": { - "estree-walker": "^1.0.1" - } - }, - "@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", - "dev": true - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "requires": { - "lodash": "^4.14.0" - } - }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.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" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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" - } - }, - "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" - } - }, - "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 - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "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" - } - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" - } - }, - "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==", - "dev": true - }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", - "dev": true - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "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=", - "dev": true - }, - "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==", - "dev": true, - "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=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "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=", - "dev": true - }, - "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-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", - "dev": true, - "requires": { - "browserslist": "^4.8.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "is-windows": "^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" - } - }, - "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=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "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" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.346", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", - "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", - "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 - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "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=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "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" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "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" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "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.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "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==" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "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" - } - } - } - }, - "fast-redact": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", - "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "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" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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" - } - } - } - }, - "formatio": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", - "dev": true, - "requires": { - "samsam": "~1.1" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": 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 - }, - "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==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "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" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "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" - } - }, - "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 - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "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 - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "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 - }, - "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" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "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=" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "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 - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "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 - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "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-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@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-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "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 - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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 - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "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" - } - } - } - }, - "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": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "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-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.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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" - } - }, - "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==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "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=", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.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 - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "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" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "lolex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", - "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.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" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "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==", - "dev": true - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "mockery": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", - "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "nock": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", - "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", - "dev": true, - "requires": { - "chai": ">=1.9.2 <4.0.0", - "debug": "^2.2.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "~4.17.2", - "mkdirp": "^0.5.0", - "propagate": "0.4.0", - "qs": "^6.0.2", - "semver": "^5.3.0" - }, - "dependencies": { - "chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true, - "requires": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" - } - }, - "deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", - "dev": true, - "requires": { - "type-detect": "0.1.1" - }, - "dependencies": { - "type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true - } - } - }, - "type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", - "dev": true - } - } - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "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-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "node-releases": { - "version": "1.1.48", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", - "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", - "dev": true, - "requires": { - "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 - } - } - }, - "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" - } - }, - "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=", - "dev": true - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "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.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.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 - }, - "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==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.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" - } - }, - "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" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "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" - } - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "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.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" - }, - "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.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.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "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=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "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-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "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-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.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 - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "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=", - "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==", - "dev": true - }, - "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=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pino": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", - "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.7", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - } - }, - "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "propagate": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", - "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", - "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" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "dev": true, - "requires": { - "private": "^0.1.6" - } - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", - "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "reqres": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", - "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", - "dev": true, - "requires": { - "express": "^4.15.2", - "sinon": "^1.14.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "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==", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "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 - }, - "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" - } - }, - "rollup-plugin-babel": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", - "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", - "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "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 - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "sinon": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", - "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", - "dev": true, - "requires": { - "formatio": "1.1.1", - "lolex": "1.3.2", - "samsam": "1.1.2", - "util": ">=0.10.3 <1" - } - }, - "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "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" - } - }, - "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 - }, - "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-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.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" - } - }, - "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 - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "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 - }, - "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" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" - }, - "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=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "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" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "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": "^13.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 - }, - "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" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "dependencies": { - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - } - } -} +{ + "name": "@digipolis/auth", + "version": "2.1.1-4", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "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 + }, + "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-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-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" + }, + "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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "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/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + }, + "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/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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@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/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", + "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/register": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", + "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@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-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" + } + }, + "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/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "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 + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", + "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.6", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/pluginutils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", + "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "dev": true, + "requires": { + "estree-walker": "^1.0.1" + } + }, + "@types/node": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", + "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "requires": { + "lodash": "^4.14.0" + } + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.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" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "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" + } + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", + "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001023", + "electron-to-chromium": "^1.3.341", + "node-releases": "^1.1.47" + } + }, + "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==", + "dev": true + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001027", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", + "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "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=", + "dev": true + }, + "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-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "is-windows": "^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" + } + }, + "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=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + } + }, + "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" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.346", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", + "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "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 + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "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=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "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" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "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" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "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.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "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==" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "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" + } + } + } + }, + "fast-redact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", + "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "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" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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" + } + } + } + }, + "formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", + "dev": true, + "requires": { + "samsam": "~1.1" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": 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 + }, + "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==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "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" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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" + } + }, + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "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 + } + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "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=" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "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 + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "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 + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "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-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@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-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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 + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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 + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "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" + } + } + } + }, + "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": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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-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.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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=", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.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 + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "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" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.2.2", + "yargs-parser": "13.0.0", + "yargs-unparser": "1.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" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "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==", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "nock": { + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", + "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", + "dev": true, + "requires": { + "chai": ">=1.9.2 <4.0.0", + "debug": "^2.2.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "~4.17.2", + "mkdirp": "^0.5.0", + "propagate": "0.4.0", + "qs": "^6.0.2", + "semver": "^5.3.0" + }, + "dependencies": { + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true, + "requires": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + } + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + }, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + } + } + }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "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-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "1.1.48", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", + "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", + "dev": true, + "requires": { + "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 + } + } + }, + "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" + } + }, + "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=", + "dev": true + }, + "nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.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 + }, + "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==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.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" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "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.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" + }, + "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.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.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "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=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "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-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "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-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.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 + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "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=", + "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==", + "dev": true + }, + "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=" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pino": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", + "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + } + }, + "pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, + "propagate": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", + "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", + "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" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "quick-format-unescaped": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", + "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "reqres": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", + "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", + "dev": true, + "requires": { + "express": "^4.15.2", + "sinon": "^1.14.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "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==", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "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 + }, + "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" + } + }, + "rollup-plugin-babel": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", + "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", + "dev": true + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "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 + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "dev": true, + "requires": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": ">=0.10.3 <1" + } + }, + "sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "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" + } + }, + "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 + }, + "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-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.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" + } + }, + "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 + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "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 + }, + "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" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "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=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "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" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "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": "^13.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 + }, + "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" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + }, + "dependencies": { + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + } + } +} diff --git a/package.json b/package.json index 759ac67..c3a7c0f 100644 --- a/package.json +++ b/package.json @@ -1,45 +1,45 @@ -{ - "name": "@digipolis/auth", - "version": "2.1.1-4", - "description": "", - "main": "dist/index.cjs.js", - "module": "dist/index.es.js", - "scripts": { - "build": "npx rollup -c", - "prepublish": "npm run build", - "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" - }, - "repository": { - "type": "git", - "url": "https://github.com/digipolisantwerp/auth_module_nodejs.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "async": "~2.5.0", - "bcryptjs": "^2.4.3", - "cookie": "^0.4.0", - "express": "^4.16.4", - "isomorphic-fetch": "^2.2.1", - "lodash.get": "^4.4.2", - "oauth": "~0.9.15", - "pino": "^6.11.3", - "uuid": "~3.1.0" - }, - "devDependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/register": "^7.8.3", - "@istanbuljs/nyc-config-babel": "^3.0.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-istanbul": "^6.0.0", - "cross-env": "~5.2.0", - "mocha": "^6.2.0", - "mockery": "~2.1.0", - "nock": "~9.0.14", - "nyc": "^15.1.0", - "reqres": "~1.3.0", - "rollup-plugin-babel": "^4.3.3" - } -} +{ + "name": "@digipolis/auth", + "version": "2.1.1-4", + "description": "", + "main": "dist/index.cjs.js", + "module": "dist/index.es.js", + "scripts": { + "build": "npx rollup -c", + "prepublish": "npm run build", + "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" + }, + "repository": { + "type": "git", + "url": "https://github.com/digipolisantwerp/auth_module_nodejs.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "async": "~2.5.0", + "bcryptjs": "^2.4.3", + "cookie": "^0.4.0", + "express": "^4.16.4", + "isomorphic-fetch": "^2.2.1", + "lodash.get": "^4.4.2", + "oauth": "~0.9.15", + "pino": "^6.11.3", + "uuid": "~3.1.0" + }, + "devDependencies": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/register": "^7.8.3", + "@istanbuljs/nyc-config-babel": "^3.0.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "babel-plugin-istanbul": "^6.0.0", + "cross-env": "~5.2.0", + "mocha": "^6.2.0", + "mockery": "~2.1.0", + "nock": "~9.0.14", + "nyc": "^15.1.0", + "reqres": "~1.3.0", + "rollup-plugin-babel": "^4.3.3" + } +} diff --git a/src/controller.js b/src/controller.js index 21cb89d..76d6f25 100644 --- a/src/controller.js +++ b/src/controller.js @@ -31,6 +31,7 @@ export default function createController(config) { name: '@digipolis/auth-controller', level: logLevel, }); + let { preLogin: preLoginHooks = [], preLogout: preLogoutHooks = [], diff --git a/src/middleware/sso.js b/src/middleware/sso.js index 979c48e..2dfcabb 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -1,4 +1,5 @@ import cookieParser from 'cookie'; +import pino from 'pino'; import { getSessions } from '../sessionStore'; import { getAccessToken } from '../accessToken'; @@ -24,13 +25,17 @@ export default function sso(options) { key = 'user', consentUrl, basePath = '/auth', + logLevel = 'error', port = false, ssoCookieName = 'dgp.auth.ssokey', shouldUpgradeAssuranceLevel = true, } = options; const loginPath = `${basePath}/login`; - + const logger = pino({ + name: '@digipolis/auth-sso-middleware', + level: logLevel, + }); return async (req, res, next) => { const cookieHeader = req.get('cookie'); if (!cookieHeader) { @@ -38,7 +43,7 @@ export default function sso(options) { } // if we already have a session && we do not need assurance levels, do nothing - if(req.session[key] && !shouldUpgradeAssuranceLevel) { + if (req.session[key] && !shouldUpgradeAssuranceLevel) { return next(); } @@ -62,6 +67,7 @@ export default function sso(options) { try { const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); + logger.debug({ sessions }); if (!sessions || sessions.length === 0) { return next(); } @@ -70,6 +76,7 @@ export default function sso(options) { const highSession = getSessionWithAssuranceLevel(sessions, 'high'); if (highSession) { + logger.debug(`redirect with ${highSession.authenticationMethod}`) return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); } @@ -79,6 +86,7 @@ export default function sso(options) { const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); if (substantialSession) { + logger.debug(`redirect with ${substantialSession.authenticationMethod}`) return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); } From b3754961cbb8c3a73dc2b4ba0e6472ef3966d76e Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Thu, 18 Nov 2021 14:45:42 +0100 Subject: [PATCH 37/67] give users the ability to seit save_consent to false Give user the ability to override the save_consent default --- package-lock.json | 6311 +++++++++++++++++++++- package.json | 2 +- readme.md | 3 + src/controller.js | 5 +- src/hooks/assuranceLevelAndAuthMethod.js | 2 +- test/login.js | 37 + 6 files changed, 6353 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a6185a..0ceb080 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,6312 @@ { "name": "@digipolis/auth", - "version": "2.1.1-4", - "lockfileVersion": 1, + "version": "2.1.1-5", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@digipolis/auth", + "version": "2.1.1-5", + "license": "ISC", + "dependencies": { + "async": "~2.5.0", + "bcryptjs": "^2.4.3", + "cookie": "^0.4.0", + "express": "^4.16.4", + "isomorphic-fetch": "^2.2.1", + "lodash.get": "^4.4.2", + "oauth": "~0.9.15", + "pino": "^6.11.3", + "uuid": "~3.1.0" + }, + "devDependencies": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/register": "^7.8.3", + "@istanbuljs/nyc-config-babel": "^3.0.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "babel-plugin-istanbul": "^6.0.0", + "cross-env": "~5.2.0", + "mocha": "^6.2.0", + "mockery": "~2.1.0", + "nock": "~9.0.14", + "nyc": "^15.1.0", + "reqres": "~1.3.0", + "rollup-plugin-babel": "^4.3.3" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "dependencies": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/core/node_modules/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, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/core/node_modules/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 + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/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 + }, + "node_modules/@babel/helper-call-delegate/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "dependencies": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/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 + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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 + }, + "node_modules/@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/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 + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/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 + }, + "node_modules/@babel/helper-replace-supers/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/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 + }, + "node_modules/@babel/helper-wrap-function/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helpers/node_modules/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 + }, + "node_modules/@babel/helpers/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "dependencies": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-parameters/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", + "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/register": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", + "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "@babel/register": "*", + "babel-plugin-istanbul": ">=5" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", + "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.0.6", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", + "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "dev": true, + "dependencies": { + "estree-walker": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0" + } + }, + "node_modules/@types/node": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", + "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dependencies": { + "lodash": "^4.14.0" + } + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/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, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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 + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", + "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001023", + "electron-to-chromium": "^1.3.341", + "node-releases": "^1.1.47" + }, + "bin": { + "browserslist": "cli.js" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001027", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", + "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "dependencies": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/electron-to-chromium": { + "version": "1.3.346", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", + "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express/node_modules/ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/express/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dependencies": { + "mime-db": "1.40.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/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==" + }, + "node_modules/express/node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/express/node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/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==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/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==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/express/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fast-redact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", + "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/foreground-child/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/foreground-child/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/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, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", + "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", + "dev": true, + "dependencies": { + "samsam": "~1.1" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/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, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/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 + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/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, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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 + }, + "node_modules/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, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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 + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.2.2", + "yargs-parser": "13.0.0", + "yargs-unparser": "1.5.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/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==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", + "dev": true + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/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_modules/nock": { + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", + "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", + "dev": true, + "engines": [ + "node >= 4.0" + ], + "dependencies": { + "chai": ">=1.9.2 <4.0.0", + "debug": "^2.2.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "~4.17.2", + "mkdirp": "^0.5.0", + "propagate": "0.4.0", + "qs": "^6.0.2", + "semver": "^5.3.0" + } + }, + "node_modules/nock/node_modules/chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nock/node_modules/deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": "0.1.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nock/node_modules/deep-eql/node_modules/type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/nock/node_modules/type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "1.1.48", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", + "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/node-releases/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/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 + }, + "node_modules/nyc/node_modules/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==", + "dev": true + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/nyc/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "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.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/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=" + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", + "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", + "dependencies": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/propagate": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", + "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", + "dev": true, + "engines": [ + "node >= 0.8.1" + ] + }, + "node_modules/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, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", + "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + }, + "node_modules/regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "dependencies": { + "private": "^0.1.6" + } + }, + "node_modules/regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reqres": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", + "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", + "dev": true, + "dependencies": { + "express": "^4.15.2", + "sinon": "^1.14.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup-plugin-babel": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", + "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + }, + "peerDependencies": { + "@babel/core": "7 || ^7.0.0-rc.2", + "rollup": ">=0.60.0 <2" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/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==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", + "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/sinon": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "dev": true, + "dependencies": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": ">=0.10.3 <1" + }, + "engines": { + "node": ">=0.1.103" + } + }, + "node_modules/sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/spawn-wrap/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/spawn-wrap/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/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=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "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": "^13.0.0" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "node_modules/yargs-unparser/node_modules/yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + } + }, "dependencies": { "@babel/compat-data": { "version": "7.8.5", @@ -2184,7 +8488,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", - "dev": true + "dev": true, + "requires": {} }, "@istanbuljs/schema": { "version": "0.1.2", diff --git a/package.json b/package.json index c3a7c0f..2c43d39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-4", + "version": "2.1.1-5", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", diff --git a/readme.md b/readme.md index e7ff3bd..9a55cf7 100644 --- a/readme.md +++ b/readme.md @@ -181,6 +181,9 @@ This endpoint can be used to login. There are some query parameters available to - **context** (enterprise, citizen or enterprise-citizen) (default citizen) Specifies whether the user should log in as a citizen or as an enterprise user. Logging in with context enterprise enables the application to fetch additional enterprise related roles from the authz api with the access token of the user. The context enterprise-citizen presents the user with a choice if they want to login with either citizen or their enterprise. +- **save_consent** (default: true) + optional query parameter that can be used if you do not want to save the consent. + - **auth_methods** A comma separated list of the auth methods to allow the user to log in with. This limits the list of authentication methods provided to the user by the minimal_assurance_level parameter (if specified) and the context. diff --git a/src/controller.js b/src/controller.js index 76d6f25..80d2db2 100644 --- a/src/controller.js +++ b/src/controller.js @@ -95,12 +95,13 @@ export default function createController(config) { function createLoginUrl(host, stateKey, options) { const fallbackAssuranceLevel = options.context === 'enterprise' ? 'substantial' : 'low'; + const { save_consent = true } = options; const query = { client_id: clientId, redirect_uri: `${host}${basePath}/login/callback`, state: stateKey, scope: determineScopes(options), - save_consent: true, + save_consent, response_type: 'code', auth_methods: determineAuthMethods(options), minimal_assurance_level: options.minimal_assurance_level || fallbackAssuranceLevel @@ -111,7 +112,7 @@ export default function createController(config) { } Object.keys(query).forEach(key => { - if (!query[key]) { + if (query[key] == null) { delete query[key]; } }); diff --git a/src/hooks/assuranceLevelAndAuthMethod.js b/src/hooks/assuranceLevelAndAuthMethod.js index c459fe2..e357fa7 100644 --- a/src/hooks/assuranceLevelAndAuthMethod.js +++ b/src/hooks/assuranceLevelAndAuthMethod.js @@ -12,7 +12,7 @@ export default function createAssuranceLevelAndAuthMethodHook({ method, } = req.query; if (method === 'astad.aprofiel.v1') { - method = 'iam-aprofiel-userpass' + method = 'iam-aprofiel-userpass'; } req.session[key].assuranceLevel = assuranceLevelMapping[method] || 'low'; req.session[key].authenticationMethod = method || 'iam-aprofiel-userpass'; diff --git a/test/login.js b/test/login.js index 0ed33a1..50ed3e6 100644 --- a/test/login.js +++ b/test/login.js @@ -301,6 +301,43 @@ describe('GET /login', function onDescribe() { assert(redirectUrl); assert(redirectUrl.includes('level=high')); assert(redirectUrl.includes('fas-enterprise-eid')); + assert(redirectUrl.includes('save_consent=true')); + return done(); + }); + router.handle(req, res); + }); + + it('save_consent = false should result in a loginUrl which does not save consent', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + minimal_assurance_level: 'high', + context: 'enterprise', + save_consent: false, + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('level=high')); + assert(redirectUrl.includes('save_consent=false')); + assert(redirectUrl.includes('fas-enterprise-eid')); return done(); }); router.handle(req, res); From 4de04376548a38f369c2e616d43b1da1879098db Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Thu, 18 Nov 2021 14:52:33 +0100 Subject: [PATCH 38/67] 2.1.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0ceb080..e37c2de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.1.1-5", + "version": "2.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.1.1-5", + "version": "2.1.1", "license": "ISC", "dependencies": { "async": "~2.5.0", diff --git a/package.json b/package.json index 2c43d39..6b9634b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1-5", + "version": "2.1.1", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 81c01cca1674bb2292d21fbd351561565b37c072 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Thu, 18 Nov 2021 14:52:37 +0100 Subject: [PATCH 39/67] 2.2.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e37c2de..1032316 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.1.1", + "version": "2.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.1.1", + "version": "2.2.0", "license": "ISC", "dependencies": { "async": "~2.5.0", diff --git a/package.json b/package.json index 6b9634b..4f4996f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.1.1", + "version": "2.2.0", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 56a0ba7f04c2243ac6ac491f51a3f8e4ef65fd7c Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 30 Nov 2021 22:09:06 +0100 Subject: [PATCH 40/67] add force auth param --- readme.md | 3 +++ src/controller.js | 6 +++++- test/login.js | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 9a55cf7..8e3364d 100644 --- a/readme.md +++ b/readme.md @@ -184,6 +184,9 @@ This endpoint can be used to login. There are some query parameters available to - **save_consent** (default: true) optional query parameter that can be used if you do not want to save the consent. +- **force_auth** (default: false) + optional query parameter that can be used to force the login screen to show, even if a user is loggedin on the identity provider. + - **auth_methods** A comma separated list of the auth methods to allow the user to log in with. This limits the list of authentication methods provided to the user by the minimal_assurance_level parameter (if specified) and the context. diff --git a/src/controller.js b/src/controller.js index 80d2db2..e843c76 100644 --- a/src/controller.js +++ b/src/controller.js @@ -95,7 +95,7 @@ export default function createController(config) { function createLoginUrl(host, stateKey, options) { const fallbackAssuranceLevel = options.context === 'enterprise' ? 'substantial' : 'low'; - const { save_consent = true } = options; + const { save_consent = true, force_auth = false } = options; const query = { client_id: clientId, redirect_uri: `${host}${basePath}/login/callback`, @@ -111,6 +111,10 @@ export default function createController(config) { query.lng = options.lng; } + if(force_auth) { + query.force_auth = true; + } + Object.keys(query).forEach(key => { if (query[key] == null) { delete query[key]; diff --git a/test/login.js b/test/login.js index 50ed3e6..0ed90e7 100644 --- a/test/login.js +++ b/test/login.js @@ -337,10 +337,47 @@ describe('GET /login', function onDescribe() { assert(redirectUrl); assert(redirectUrl.includes('level=high')); assert(redirectUrl.includes('save_consent=false')); + assert(!redirectUrl.includes('force_auth=false')); assert(redirectUrl.includes('fas-enterprise-eid')); return done(); }); router.handle(req, res); }); + + it('force_auth = true should result in a loginUrl which forces a login', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + minimal_assurance_level: 'high', + context: 'enterprise', + save_consent: false, + force_auth: true, + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('force_auth=true')); + return done(); + }); + router.handle(req, res); + }); + }); }); From 95dbb4f1725b83e989b04a6657704ba47af27fe9 Mon Sep 17 00:00:00 2001 From: Stefan Pante Date: Tue, 30 Nov 2021 22:09:48 +0100 Subject: [PATCH 41/67] 2.3.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1032316..ace4c40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.2.0", + "version": "2.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.2.0", + "version": "2.3.0", "license": "ISC", "dependencies": { "async": "~2.5.0", diff --git a/package.json b/package.json index 4f4996f..c05d893 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.2.0", + "version": "2.3.0", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From f0c43951df146c9e820fa98f1cdcef9fc171cace Mon Sep 17 00:00:00 2001 From: Olivier Van den Mooter Date: Mon, 23 May 2022 12:23:24 +0200 Subject: [PATCH 42/67] iam-aprofiel-phone method --- readme.md | 1 + src/authMethods.js | 1 + 2 files changed, 2 insertions(+) diff --git a/readme.md b/readme.md index 8e3364d..3a01185 100644 --- a/readme.md +++ b/readme.md @@ -259,6 +259,7 @@ after logout. | Name | Assurance level | Context | Description | | --------------------- | --------------- | -----------|--------------------------------------------------------------- | | iam-aprofiel-userpass | low | citizen | Our default aprofiel authentication with username and password | +| iam-aprofiel-phone | low | citizen | Our aprofiel authentication with phone and code | | fas-citizen-bmid | substantial | citizen | Belgian Mobile ID (e.g. Itsme) | | fas-citizen-otp | substantial | citizen | Authentication with one time password (e.g. sms) | | fas-citizen-totp | substantial | citizen | Time-based one time password (e.g. Google Authenticator) | diff --git a/src/authMethods.js b/src/authMethods.js index 401d582..d08ef37 100644 --- a/src/authMethods.js +++ b/src/authMethods.js @@ -2,6 +2,7 @@ export default { citizen: { low: [ 'iam-aprofiel-userpass', + 'iam-aprofiel-phone', 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', From d35431ca91ca09c129ae3bab1a94ab879d12f036 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Tue, 28 Jun 2022 15:10:47 +0200 Subject: [PATCH 43/67] 2.3.1 --- package.json | 90 ++++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index c05d893..022ea69 100644 --- a/package.json +++ b/package.json @@ -1,45 +1,45 @@ -{ - "name": "@digipolis/auth", - "version": "2.3.0", - "description": "", - "main": "dist/index.cjs.js", - "module": "dist/index.es.js", - "scripts": { - "build": "npx rollup -c", - "prepublish": "npm run build", - "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" - }, - "repository": { - "type": "git", - "url": "https://github.com/digipolisantwerp/auth_module_nodejs.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "async": "~2.5.0", - "bcryptjs": "^2.4.3", - "cookie": "^0.4.0", - "express": "^4.16.4", - "isomorphic-fetch": "^2.2.1", - "lodash.get": "^4.4.2", - "oauth": "~0.9.15", - "pino": "^6.11.3", - "uuid": "~3.1.0" - }, - "devDependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/register": "^7.8.3", - "@istanbuljs/nyc-config-babel": "^3.0.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-istanbul": "^6.0.0", - "cross-env": "~5.2.0", - "mocha": "^6.2.0", - "mockery": "~2.1.0", - "nock": "~9.0.14", - "nyc": "^15.1.0", - "reqres": "~1.3.0", - "rollup-plugin-babel": "^4.3.3" - } -} +{ + "name": "@digipolis/auth", + "version": "2.3.1", + "description": "", + "main": "dist/index.cjs.js", + "module": "dist/index.es.js", + "scripts": { + "build": "npx rollup -c", + "prepublish": "npm run build", + "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" + }, + "repository": { + "type": "git", + "url": "https://github.com/digipolisantwerp/auth_module_nodejs.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "async": "~2.5.0", + "bcryptjs": "^2.4.3", + "cookie": "^0.4.0", + "express": "^4.16.4", + "isomorphic-fetch": "^2.2.1", + "lodash.get": "^4.4.2", + "oauth": "~0.9.15", + "pino": "^6.11.3", + "uuid": "~3.1.0" + }, + "devDependencies": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/register": "^7.8.3", + "@istanbuljs/nyc-config-babel": "^3.0.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "babel-plugin-istanbul": "^6.0.0", + "cross-env": "~5.2.0", + "mocha": "^6.2.0", + "mockery": "~2.1.0", + "nock": "~9.0.14", + "nyc": "^15.1.0", + "reqres": "~1.3.0", + "rollup-plugin-babel": "^4.3.3" + } +} From 379e15003148451fad44da73160c0070904cd252 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 11 Aug 2022 13:32:30 +0200 Subject: [PATCH 44/67] Update package.lock + add dist folder for release --- package-lock.json | 6311 +-------------------------------------------- 1 file changed, 3 insertions(+), 6308 deletions(-) diff --git a/package-lock.json b/package-lock.json index ace4c40..ab05ad2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6312 +1,8 @@ { "name": "@digipolis/auth", - "version": "2.3.0", - "lockfileVersion": 2, + "version": "2.3.1", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "@digipolis/auth", - "version": "2.3.0", - "license": "ISC", - "dependencies": { - "async": "~2.5.0", - "bcryptjs": "^2.4.3", - "cookie": "^0.4.0", - "express": "^4.16.4", - "isomorphic-fetch": "^2.2.1", - "lodash.get": "^4.4.2", - "oauth": "~0.9.15", - "pino": "^6.11.3", - "uuid": "~3.1.0" - }, - "devDependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/register": "^7.8.3", - "@istanbuljs/nyc-config-babel": "^3.0.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-istanbul": "^6.0.0", - "cross-env": "~5.2.0", - "mocha": "^6.2.0", - "mockery": "~2.1.0", - "nock": "~9.0.14", - "nyc": "^15.1.0", - "reqres": "~1.3.0", - "rollup-plugin-babel": "^4.3.3" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", - "dev": true, - "dependencies": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/core/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/core/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/core/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/core/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/core/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/core/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/core/node_modules/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, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/core/node_modules/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 - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helper-call-delegate/node_modules/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 - }, - "node_modules/@babel/helper-call-delegate/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", - "dev": true, - "dependencies": { - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/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 - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@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 - }, - "node_modules/@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/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 - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/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 - }, - "node_modules/@babel/helper-replace-supers/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/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 - }, - "node_modules/@babel/helper-wrap-function/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helpers/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helpers/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helpers/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helpers/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helpers/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helpers/node_modules/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 - }, - "node_modules/@babel/helpers/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", - "dev": true, - "dependencies": { - "@babel/helper-call-delegate": "^7.8.3", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/@babel/plugin-transform-parameters/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/register": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", - "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", - "dev": true, - "dependencies": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@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, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/nyc-config-babel": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", - "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "@babel/register": "*", - "babel-plugin-istanbul": ">=5" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", - "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.0.6", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", - "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", - "dev": true, - "dependencies": { - "estree-walker": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0" - } - }, - "node_modules/@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dependencies": { - "lodash": "^4.14.0" - } - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/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, - "dependencies": { - "@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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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, - "dependencies": { - "@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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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 - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" - }, - "bin": { - "browserslist": "cli.js" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caching-transform/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", - "dev": true, - "dependencies": { - "browserslist": "^4.8.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.5", - "is-windows": "^1.0.0" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/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, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.346", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", - "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/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==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/express/node_modules/ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/express/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/express/node_modules/mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dependencies": { - "mime-db": "1.40.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/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==" - }, - "node_modules/express/node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/express/node_modules/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/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==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/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==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/express/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fast-redact": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", - "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", - "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/foreground-child/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/foreground-child/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/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, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/formatio": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", - "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", - "dev": true, - "dependencies": { - "samsam": "~1.1" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/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, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/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 - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "dependencies": { - "has": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/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, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/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, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/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 - }, - "node_modules/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, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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=", - "dev": true - }, - "node_modules/json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "dependencies": { - "leven": "^3.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/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, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lolex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", - "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", - "dev": true, - "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/mocha/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha/node_modules/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==", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/mockery": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", - "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", - "dev": true - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/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_modules/nock": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", - "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", - "dev": true, - "engines": [ - "node >= 4.0" - ], - "dependencies": { - "chai": ">=1.9.2 <4.0.0", - "debug": "^2.2.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "~4.17.2", - "mkdirp": "^0.5.0", - "propagate": "0.4.0", - "qs": "^6.0.2", - "semver": "^5.3.0" - } - }, - "node_modules/nock/node_modules/chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true, - "dependencies": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nock/node_modules/deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", - "dev": true, - "dependencies": { - "type-detect": "0.1.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/nock/node_modules/deep-eql/node_modules/type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/nock/node_modules/type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "1.1.48", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", - "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - } - }, - "node_modules/node-releases/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/nyc/node_modules/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 - }, - "node_modules/nyc/node_modules/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==", - "dev": true - }, - "node_modules/nyc/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "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.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" - }, - "node_modules/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, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/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, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/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=" - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pino": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", - "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.7", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/propagate": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", - "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", - "dev": true, - "engines": [ - "node >= 0.8.1" - ] - }, - "node_modules/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, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "node_modules/regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "dev": true, - "dependencies": { - "private": "^0.1.6" - } - }, - "node_modules/regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", - "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reqres": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", - "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", - "dev": true, - "dependencies": { - "express": "^4.15.2", - "sinon": "^1.14.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup-plugin-babel": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", - "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - }, - "peerDependencies": { - "@babel/core": "7 || ^7.0.0-rc.2", - "rollup": ">=0.60.0 <2" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/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==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/samsam": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", - "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", - "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", - "dev": true - }, - "node_modules/semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "node_modules/sinon": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", - "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", - "dev": true, - "dependencies": { - "formatio": "1.1.1", - "lolex": "1.3.2", - "samsam": "1.1.2", - "util": ">=0.10.3 <1" - }, - "engines": { - "node": ">=0.1.103" - } - }, - "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/spawn-wrap/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/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=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "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": "^13.0.0" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "dev": true, - "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "node_modules/yargs-unparser/node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/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, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/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, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - } - }, "dependencies": { "@babel/compat-data": { "version": "7.8.5", @@ -8488,8 +2184,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", - "dev": true, - "requires": {} + "dev": true }, "@istanbuljs/schema": { "version": "0.1.2", From cd3590b47d6ccdf961eb40943b72913e5c4bace4 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 11 Aug 2022 13:33:05 +0200 Subject: [PATCH 45/67] Added dist --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index ab05ad2..7ba001f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.3.1", + "version": "2.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 022ea69..0108102 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.3.1", + "version": "2.3.2", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 4f7cad070c7559dc25cc6b7022bfee54a00b3398 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 11 Aug 2022 13:42:44 +0200 Subject: [PATCH 46/67] =?UTF-8?q?=F0=9F=94=A7=20Added=20publishConfig=20to?= =?UTF-8?q?=20prevent=20publishing=20to=20internal=20registry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 0108102..7d6e5fd 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,9 @@ "prepublish": "npm run build", "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" }, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, "repository": { "type": "git", "url": "https://github.com/digipolisantwerp/auth_module_nodejs.git" From d9b4a53a3a4d00a114013a8158c253d2c4ed8a10 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 17 Nov 2022 09:19:08 +0100 Subject: [PATCH 47/67] Fix auth_method astad.aprofiel.v1 --- package-lock.json | 16806 ++++++++++++++++++++++++++++++-------------- src/controller.js | 6 + 2 files changed, 11592 insertions(+), 5220 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7ba001f..2678641 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5220 +1,11586 @@ -{ - "name": "@digipolis/auth", - "version": "2.3.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", - "dev": true, - "requires": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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" - } - }, - "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 - }, - "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-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", - "dev": true, - "requires": { - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@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-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-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" - }, - "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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "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/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - }, - "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/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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.8.3", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "dependencies": { - "@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/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/register": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", - "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - } - }, - "@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-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" - } - }, - "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/nyc-config-babel": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", - "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", - "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 - }, - "@rollup/plugin-node-resolve": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", - "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.6", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } - }, - "@rollup/pluginutils": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", - "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", - "dev": true, - "requires": { - "estree-walker": "^1.0.1" - } - }, - "@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", - "dev": true - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "requires": { - "lodash": "^4.14.0" - } - }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.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" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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" - } - }, - "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" - } - }, - "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 - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "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" - } - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" - } - }, - "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==", - "dev": true - }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", - "dev": true - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "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=", - "dev": true - }, - "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==", - "dev": true, - "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=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "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=", - "dev": true - }, - "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-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", - "dev": true, - "requires": { - "browserslist": "^4.8.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "is-windows": "^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" - } - }, - "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=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "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" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.346", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", - "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", - "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 - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "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=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "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" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "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" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "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.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "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==" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "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" - } - } - } - }, - "fast-redact": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", - "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "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" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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" - } - } - } - }, - "formatio": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", - "dev": true, - "requires": { - "samsam": "~1.1" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": 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 - }, - "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==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "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" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "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" - } - }, - "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 - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "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 - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "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 - }, - "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" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "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=" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "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 - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "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 - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "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-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@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-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "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 - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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 - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "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" - } - } - } - }, - "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": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "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-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.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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" - } - }, - "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==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "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=", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.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 - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "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" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "lolex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", - "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.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" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "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==", - "dev": true - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "mockery": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", - "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "nock": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", - "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", - "dev": true, - "requires": { - "chai": ">=1.9.2 <4.0.0", - "debug": "^2.2.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "~4.17.2", - "mkdirp": "^0.5.0", - "propagate": "0.4.0", - "qs": "^6.0.2", - "semver": "^5.3.0" - }, - "dependencies": { - "chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true, - "requires": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" - } - }, - "deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", - "dev": true, - "requires": { - "type-detect": "0.1.1" - }, - "dependencies": { - "type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true - } - } - }, - "type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", - "dev": true - } - } - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "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-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "node-releases": { - "version": "1.1.48", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", - "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", - "dev": true, - "requires": { - "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 - } - } - }, - "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" - } - }, - "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=", - "dev": true - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "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.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.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 - }, - "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==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.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" - } - }, - "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" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "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" - } - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "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.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" - }, - "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.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.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "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=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "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-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "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-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.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 - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "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=", - "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==", - "dev": true - }, - "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=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pino": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", - "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.7", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - } - }, - "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "propagate": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", - "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", - "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" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "dev": true, - "requires": { - "private": "^0.1.6" - } - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", - "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "reqres": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", - "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", - "dev": true, - "requires": { - "express": "^4.15.2", - "sinon": "^1.14.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "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==", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "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 - }, - "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" - } - }, - "rollup-plugin-babel": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", - "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", - "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "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 - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "sinon": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", - "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", - "dev": true, - "requires": { - "formatio": "1.1.1", - "lolex": "1.3.2", - "samsam": "1.1.2", - "util": ">=0.10.3 <1" - } - }, - "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "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" - } - }, - "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 - }, - "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-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.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" - } - }, - "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 - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "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 - }, - "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" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" - }, - "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=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "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" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "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": "^13.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 - }, - "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" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "dependencies": { - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - } - } -} +{ + "name": "@digipolis/auth", + "version": "2.3.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@digipolis/auth", + "version": "2.3.2", + "license": "ISC", + "dependencies": { + "async": "~2.5.0", + "bcryptjs": "^2.4.3", + "cookie": "^0.4.0", + "express": "^4.16.4", + "isomorphic-fetch": "^2.2.1", + "lodash.get": "^4.4.2", + "oauth": "~0.9.15", + "pino": "^6.11.3", + "uuid": "~3.1.0" + }, + "devDependencies": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/register": "^7.8.3", + "@istanbuljs/nyc-config-babel": "^3.0.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "babel-plugin-istanbul": "^6.0.0", + "cross-env": "~5.2.0", + "mocha": "^6.2.0", + "mockery": "~2.1.0", + "nock": "~9.0.14", + "nyc": "^15.1.0", + "reqres": "~1.3.0", + "rollup-plugin-babel": "^4.3.3" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "dependencies": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/core/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/core/node_modules/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, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/core/node_modules/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 + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-call-delegate/node_modules/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 + }, + "node_modules/@babel/helper-call-delegate/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "dependencies": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-define-map/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/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 + }, + "node_modules/@babel/helper-explode-assignable-expression/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@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 + }, + "node_modules/@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/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 + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/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 + }, + "node_modules/@babel/helper-replace-supers/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/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 + }, + "node_modules/@babel/helper-wrap-function/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/helpers/node_modules/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 + }, + "node_modules/@babel/helpers/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "dependencies": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/@babel/plugin-transform-parameters/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", + "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/register": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", + "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "@babel/register": "*", + "babel-plugin-istanbul": ">=5" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", + "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.0.6", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", + "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "dev": true, + "dependencies": { + "estree-walker": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/node": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", + "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dependencies": { + "lodash": "^4.14.0" + } + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/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, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@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, + "dependencies": { + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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, + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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 + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/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, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", + "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001023", + "electron-to-chromium": "^1.3.341", + "node-releases": "^1.1.47" + }, + "bin": { + "browserslist": "cli.js" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001027", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", + "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "dependencies": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/electron-to-chromium": { + "version": "1.3.346", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", + "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express/node_modules/ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/express/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dependencies": { + "mime-db": "1.40.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/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==" + }, + "node_modules/express/node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/express/node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/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==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/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==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/express/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fast-redact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", + "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/foreground-child/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/foreground-child/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/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, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", + "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", + "dev": true, + "dependencies": { + "samsam": "~1.1" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/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, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/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 + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/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, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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 + }, + "node_modules/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, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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 + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.2.2", + "yargs-parser": "13.0.0", + "yargs-unparser": "1.5.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/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==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", + "dev": true + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/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_modules/nock": { + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", + "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", + "dev": true, + "engines": [ + "node >= 4.0" + ], + "dependencies": { + "chai": ">=1.9.2 <4.0.0", + "debug": "^2.2.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "~4.17.2", + "mkdirp": "^0.5.0", + "propagate": "0.4.0", + "qs": "^6.0.2", + "semver": "^5.3.0" + } + }, + "node_modules/nock/node_modules/chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nock/node_modules/deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": "0.1.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nock/node_modules/deep-eql/node_modules/type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/nock/node_modules/type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "1.1.48", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", + "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/node-releases/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/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 + }, + "node_modules/nyc/node_modules/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==", + "dev": true + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/nyc/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "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.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/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=" + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", + "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", + "dependencies": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/propagate": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", + "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", + "dev": true, + "engines": [ + "node >= 0.8.1" + ] + }, + "node_modules/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, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", + "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + }, + "node_modules/regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "dependencies": { + "private": "^0.1.6" + } + }, + "node_modules/regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reqres": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", + "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", + "dev": true, + "dependencies": { + "express": "^4.15.2", + "sinon": "^1.14.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + }, + "bin": { + "rollup": "dist/bin/rollup" + } + }, + "node_modules/rollup-plugin-babel": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", + "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + }, + "peerDependencies": { + "@babel/core": "7 || ^7.0.0-rc.2", + "rollup": ">=0.60.0 <2" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/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==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", + "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/sinon": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "dev": true, + "dependencies": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": ">=0.10.3 <1" + }, + "engines": { + "node": ">=0.1.103" + } + }, + "node_modules/sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/spawn-wrap/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/spawn-wrap/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/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=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "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": "^13.0.0" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "node_modules/yargs-unparser/node_modules/yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "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 + }, + "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-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@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-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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-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" + }, + "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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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 + }, + "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/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "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/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + }, + "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/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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "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/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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@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/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", + "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/register": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", + "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@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-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" + } + }, + "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/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "dev": true, + "requires": {} + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", + "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.6", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/pluginutils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", + "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "dev": true, + "requires": { + "estree-walker": "^1.0.1" + } + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true, + "peer": true + }, + "@types/node": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", + "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "requires": { + "lodash": "^4.14.0" + } + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.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" + }, + "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/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@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-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/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "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" + } + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", + "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001023", + "electron-to-chromium": "^1.3.341", + "node-releases": "^1.1.47" + } + }, + "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==", + "dev": true + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001027", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", + "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "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=", + "dev": true + }, + "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-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "is-windows": "^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" + } + }, + "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=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + } + }, + "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" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.346", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", + "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "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 + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "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=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "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" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "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" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "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.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "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==" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "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" + } + } + } + }, + "fast-redact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", + "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "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" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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" + } + } + } + }, + "formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", + "dev": true, + "requires": { + "samsam": "~1.1" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": 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 + }, + "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==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "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" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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" + } + }, + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "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 + } + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "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=" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "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 + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "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 + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "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-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@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-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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 + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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 + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "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" + } + } + } + }, + "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": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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-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.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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=", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.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 + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "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" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.2.2", + "yargs-parser": "13.0.0", + "yargs-unparser": "1.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" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "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==", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "nock": { + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", + "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", + "dev": true, + "requires": { + "chai": ">=1.9.2 <4.0.0", + "debug": "^2.2.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "~4.17.2", + "mkdirp": "^0.5.0", + "propagate": "0.4.0", + "qs": "^6.0.2", + "semver": "^5.3.0" + }, + "dependencies": { + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true, + "requires": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + } + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + }, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + } + } + }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "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-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "1.1.48", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", + "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", + "dev": true, + "requires": { + "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 + } + } + }, + "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" + } + }, + "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=", + "dev": true + }, + "nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.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 + }, + "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==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.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" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "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.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" + }, + "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.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.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "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=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "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-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "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-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.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 + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "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=", + "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==", + "dev": true + }, + "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=" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pino": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", + "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + } + }, + "pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, + "propagate": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", + "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", + "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" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "quick-format-unescaped": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", + "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "reqres": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", + "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", + "dev": true, + "requires": { + "express": "^4.15.2", + "sinon": "^1.14.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "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==", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "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 + }, + "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" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "dev": true, + "peer": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-babel": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", + "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", + "dev": true + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "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 + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", + "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "dev": true, + "requires": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": ">=0.10.3 <1" + } + }, + "sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "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" + } + }, + "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 + }, + "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-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.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" + } + }, + "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 + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "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 + }, + "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" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "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=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "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" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "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": "^13.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 + }, + "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" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + }, + "dependencies": { + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + } + } +} diff --git a/src/controller.js b/src/controller.js index e843c76..99bd2d1 100644 --- a/src/controller.js +++ b/src/controller.js @@ -75,6 +75,12 @@ export default function createController(config) { if (auth_methods && auth_methods.length > 0) { return auth_methods; } + + if (auth_methods && auth_methods.length > 0) { + auth_methods = auth_methods.replace('astad.aprofiel.v1', 'iam-aprofiel-userpass'); + return auth_methods; + } + if (!['citizen', 'enterprise', 'enterprise-citizen'].includes(context)) { logger.info(`context ${context} not known, fallback to citizen`); context = 'citizen'; From 8d53a09a060a444bfb5f5885ad88f9dc97672440 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 17 Nov 2022 09:21:32 +0100 Subject: [PATCH 48/67] 2.3.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2678641..1aeb734 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.3.2", + "version": "2.3.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.3.2", + "version": "2.3.3", "license": "ISC", "dependencies": { "async": "~2.5.0", diff --git a/package.json b/package.json index 7d6e5fd..54c300f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.3.2", + "version": "2.3.3", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 35ad62cfaa1eeec9a2fdfa394ad2669e836752cf Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 17 Nov 2022 13:56:31 +0100 Subject: [PATCH 49/67] Added test and documentation upgrade --- assets/callback.png | Bin 128319 -> 355180 bytes assets/consent.png | Bin 78295 -> 137934 bytes assets/oauth-config.png | Bin 167198 -> 0 bytes assets/shared-identity.png | Bin 73288 -> 153010 bytes package-lock.json | 1486 +++++++++--------------------------- readme.md | 8 +- src/controller.js | 4 - test/login.js | 35 + 8 files changed, 400 insertions(+), 1133 deletions(-) delete mode 100644 assets/oauth-config.png diff --git a/assets/callback.png b/assets/callback.png index ee16a952fee429b0f8536502839242fb74a88531..56f9f970703c3c568cdee4e465c34be837aa70b3 100644 GIT binary patch literal 355180 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%0D)jvT zhu-aLxW+qRc7RJEL86!&9ahtQkn{y5nykN4ro;Ur2InE;pkp58zJ>s`j#4Uaovq?? z&`B01lsPBAwe?BPPtVx+bX?u1yK@}wI^`oNq^sxmb$`FLGHPkWzw0)ea)B8S4{t`$ z>%LFysVU?HAyvC~aW&mF6of|2)mz(nA6YBdYZI^MJICV|l2JVPc*$Cm=LPTH2ct*> z$yzPrALO0;P;(ouC28j5bRK=V4>u{7=zK?fxQ`z-FXtP7-U-|2Ly@US#Dom1Idb|tc3>|WbqU9$%;Tx%{Rb@Z;tnWoxGZ+_ za@*g8)^_seKfiHKEyW+D3;1}w)a8b1>p40d2L+Bau_i)5{PfvSrepUENs+F60@bhy zB~VQaGvMD+k?GI{*efJI$+}@S@>mbAjTStyyG9$__a9jD7GE{bHNw3{^e#9N!4yXny?R>2%ZISe*Shdej-Dg^{c-{>8*$N&~8!`_%9btWxwtl44S&X(X-LTC* zg=aA+wf_C3@8{HfZNx>|(*kH6y2$iOsIBZ@bKRwB=GUwM*D{s7q2%0AEFR+{B&Gi{ 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 literal 128319 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 z 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

B&gz#C1xEi1HMw5YdJXthO-%= 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 diff --git a/assets/consent.png b/assets/consent.png index 86a2ee3e31e3312e03ca9be0b2fcdbcb187949e2..44bfa598db4ea7b9d86d065940c220a564185f89 100644 GIT binary patch literal 137934 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

SY(-f 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 Pfq!~hM#poGp8fUzA8`l> literal 78295 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

-;PGfg~?-zj~-?(VrNs7b;@OAXcU2r&@ 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 diff --git a/assets/oauth-config.png b/assets/oauth-config.png deleted file mode 100644 index a9598c43052e06e9b2c86a2d6d45df4248ce2a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167198 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

    SU=UDAxVRj#jB?*ifr@BE=8xUQZFs2m0~G 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

    n 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≷+Dm+_9 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 VD_X)81=F9Hne5&!F#hiNzW{5lym$Zr diff --git a/package-lock.json b/package-lock.json index 1aeb734..72a8e26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -188,15 +188,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@babel/core/node_modules/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, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, "node_modules/@babel/core/node_modules/debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -2441,15 +2432,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/nyc-config-babel": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", @@ -2564,9 +2546,9 @@ } }, "node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "engines": { "node": ">=4" @@ -2666,193 +2648,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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, - "dependencies": { - "@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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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 - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/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, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -2881,21 +2676,31 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, "node_modules/buffer-from": { @@ -2962,10 +2767,20 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", - "dev": true + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/chalk": { "version": "2.4.2", @@ -3012,23 +2827,49 @@ } }, "node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "node_modules/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=", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/color-convert": { @@ -3219,9 +3060,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.3.346", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", - "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/emoji-regex": { @@ -3246,15 +3087,6 @@ "iconv-lite": "~0.4.13" } }, - "node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/es-abstract": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", @@ -3292,6 +3124,15 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3342,24 +3183,6 @@ "node": ">= 0.6" } }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -3451,14 +3274,6 @@ "node": ">= 0.6" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -3491,17 +3306,6 @@ "node": ">= 0.6" } }, - "node_modules/express/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/express/node_modules/ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", @@ -3705,10 +3509,9 @@ } }, "node_modules/flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, "dependencies": { "is-buffer": "~2.0.3" @@ -3879,18 +3682,6 @@ "node": ">=8.0.0" } }, - "node_modules/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, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -4058,20 +3849,25 @@ "loose-envify": "^1.0.0" } }, - "node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { "node": ">=4" } @@ -4165,7 +3961,7 @@ "node_modules/isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", "dependencies": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" @@ -4467,18 +4263,6 @@ "node": ">=6" } }, - "node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -4572,18 +4356,6 @@ "node": ">=6" } }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -4592,20 +4364,6 @@ "node": ">= 0.6" } }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -4619,15 +4377,6 @@ "node": ">= 0.6" } }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -4641,10 +4390,13 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp": { "version": "0.5.5", @@ -4659,9 +4411,9 @@ } }, "node_modules/mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", + "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", "dev": true, "dependencies": { "ansi-colors": "3.2.3", @@ -4676,7 +4428,7 @@ "js-yaml": "3.13.1", "log-symbols": "2.2.0", "minimatch": "3.0.4", - "mkdirp": "0.5.1", + "mkdirp": "0.5.4", "ms": "2.1.1", "node-environment-flags": "1.0.5", "object.assign": "4.1.0", @@ -4684,9 +4436,9 @@ "supports-color": "6.0.0", "which": "1.3.1", "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" }, "bin": { "_mocha": "bin/_mocha", @@ -4706,19 +4458,6 @@ "ms": "^2.1.1" } }, - "node_modules/mocha/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mocha/node_modules/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -4736,6 +4475,18 @@ "node": "*" } }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mocha/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4745,33 +4496,14 @@ "node": ">=4" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { - "minimist": "0.0.8" + "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" @@ -4795,16 +4527,6 @@ "node": ">=6" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, "node_modules/mockery": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", @@ -4927,43 +4649,10 @@ } }, "node_modules/node-releases": { - "version": "1.1.48", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", - "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - } - }, - "node_modules/node-releases/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true }, "node_modules/nyc": { "version": "15.1.0", @@ -5007,9 +4696,9 @@ } }, "node_modules/nyc/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" @@ -5310,47 +4999,6 @@ "wrappy": "1" } }, - "node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/p-limit": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", @@ -5439,9 +5087,9 @@ } }, "node_modules/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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "node_modules/path-to-regexp": { @@ -5449,6 +5097,12 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -5533,16 +5187,6 @@ "node >= 0.8.1" ] }, - "node_modules/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, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -5944,15 +5588,6 @@ "node": ">=8" } }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -6071,6 +5706,32 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -6138,63 +5799,52 @@ } }, "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "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, "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/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=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^4.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/wrappy": { @@ -6222,22 +5872,21 @@ "dev": true }, "node_modules/yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "dependencies": { - "cliui": "^4.0.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", "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": "^13.0.0" + "yargs-parser": "^13.1.2" } }, "node_modules/yargs-parser": { @@ -6251,68 +5900,26 @@ } }, "node_modules/yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "dependencies": { "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" + "lodash": "^4.17.15", + "yargs": "^13.3.0" }, "engines": { "node": ">=6" } }, - "node_modules/yargs-unparser/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "node_modules/yargs-unparser/node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs/node_modules/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, - "engines": { - "node": ">=6" + "engines": { + "node": ">=6" } }, "node_modules/yargs/node_modules/string-width": { @@ -6483,15 +6090,6 @@ "to-fast-properties": "^2.0.0" } }, - "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" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -8510,12 +8108,6 @@ "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 } } }, @@ -8600,9 +8192,9 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true }, "ansi-styles": { @@ -8682,173 +8274,6 @@ "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^4.0.0", "test-exclude": "^6.0.0" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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" - } - }, - "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" - } - }, - "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 - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "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" - } - } } }, "balanced-match": { @@ -8879,14 +8304,15 @@ "dev": true }, "browserslist": { - "version": "4.8.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", - "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001023", - "electron-to-chromium": "^1.3.341", - "node-releases": "^1.1.47" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, "buffer-from": { @@ -8937,9 +8363,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001027", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", - "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", "dev": true }, "chalk": { @@ -8977,22 +8403,44 @@ "dev": true }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "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" + } + } } }, - "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=", - "dev": true - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -9145,9 +8593,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.346", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.346.tgz", - "integrity": "sha512-Yy4jF5hJd57BWmGPt0KjaXc25AmWZeQK75kdr4zIzksWVtiT6DwaNtvTb9dt+LkQKwUpvBfCyyPsXXtbY/5GYw==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "emoji-regex": { @@ -9169,15 +8617,6 @@ "iconv-lite": "~0.4.13" } }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "es-abstract": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", @@ -9209,6 +8648,12 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -9243,21 +8688,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "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" - } - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -9334,11 +8764,6 @@ "safe-buffer": "5.1.2" } }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -9365,14 +8790,6 @@ "toidentifier": "1.0.0" } }, - "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" - } - }, "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", @@ -9524,9 +8941,9 @@ } }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, "requires": { "is-buffer": "~2.0.3" @@ -9645,15 +9062,6 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "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" - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -9781,16 +9189,10 @@ "loose-envify": "^1.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true }, "is-callable": { @@ -9861,7 +9263,7 @@ "isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", "requires": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" @@ -10084,15 +9486,6 @@ "minimist": "^1.2.0" } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -10168,31 +9561,11 @@ "semver": "^5.6.0" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -10203,12 +9576,6 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, - "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", @@ -10219,9 +9586,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, "mkdirp": { @@ -10234,9 +9601,9 @@ } }, "mocha": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", - "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", + "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -10251,7 +9618,7 @@ "js-yaml": "3.13.1", "log-symbols": "2.2.0", "minimatch": "3.0.4", - "mkdirp": "0.5.1", + "mkdirp": "0.5.4", "ms": "2.1.1", "node-environment-flags": "1.0.5", "object.assign": "4.1.0", @@ -10259,9 +9626,9 @@ "supports-color": "6.0.0", "which": "1.3.1", "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" }, "dependencies": { "debug": { @@ -10273,12 +9640,6 @@ "ms": "^2.1.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -10291,6 +9652,17 @@ "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "has-flag": { @@ -10299,29 +9671,13 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "ms": { @@ -10338,16 +9694,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -10456,35 +9802,9 @@ } }, "node-releases": { - "version": "1.1.48", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz", - "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==", - "dev": true, - "requires": { - "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 - } - } - }, - "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" - } - }, - "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=", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "nyc": { @@ -10523,9 +9843,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -10756,35 +10076,6 @@ "wrappy": "1" } }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "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-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, "p-limit": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", @@ -10849,9 +10140,9 @@ "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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { @@ -10859,6 +10150,12 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -10922,16 +10219,6 @@ "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", "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" - } - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -11255,12 +10542,6 @@ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "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-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -11346,6 +10627,16 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -11400,48 +10691,40 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "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": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, - "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=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^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=", + "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": "^2.0.0" + "ansi-regex": "^4.1.0" } } } @@ -11471,28 +10754,27 @@ "dev": true }, "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "^4.0.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", "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": "^13.0.0" + "yargs-parser": "^13.1.2" }, "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==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "string-width": { @@ -11528,58 +10810,14 @@ } }, "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "dependencies": { - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "lodash": "^4.17.15", + "yargs": "^13.3.0" } } } diff --git a/readme.md b/readme.md index 3a01185..b53f0aa 100644 --- a/readme.md +++ b/readme.md @@ -133,12 +133,10 @@ After creating your application on the api store, you should create a contract w and the Consent API (if you want to enable SSO) ![Create Contract consent](/assets/consent.png "Create contract consent") -The next step is to navigate to your applications and clicking on actions +The next step is to navigate to your applications in the publisher and clicking on Instellingen > Client Keys > `` -![actions](/assets/oauth-config.png "actions") - -Click on oauth2 config. You'll find your clientId and secret here. +You'll find your clientId and secret here. ![configure callback](/assets/callback.png "callback") @@ -259,7 +257,7 @@ after logout. | Name | Assurance level | Context | Description | | --------------------- | --------------- | -----------|--------------------------------------------------------------- | | iam-aprofiel-userpass | low | citizen | Our default aprofiel authentication with username and password | -| iam-aprofiel-phone | low | citizen | Our aprofiel authentication with phone and code | +| iam-aprofiel-phone | low | citizen | Our aprofiel authentication with phone and code | | fas-citizen-bmid | substantial | citizen | Belgian Mobile ID (e.g. Itsme) | | fas-citizen-otp | substantial | citizen | Authentication with one time password (e.g. sms) | | fas-citizen-totp | substantial | citizen | Time-based one time password (e.g. Google Authenticator) | diff --git a/src/controller.js b/src/controller.js index 99bd2d1..da2e23c 100644 --- a/src/controller.js +++ b/src/controller.js @@ -72,10 +72,6 @@ export default function createController(config) { context = 'citizen' } = options; - if (auth_methods && auth_methods.length > 0) { - return auth_methods; - } - if (auth_methods && auth_methods.length > 0) { auth_methods = auth_methods.replace('astad.aprofiel.v1', 'iam-aprofiel-userpass'); return auth_methods; diff --git a/test/login.js b/test/login.js index 0ed90e7..6769ce3 100644 --- a/test/login.js +++ b/test/login.js @@ -86,6 +86,41 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); + it('should replace auth method "astad.aprofiel.v1" with "iam-aprofiel-userpass"', function onIt(done) { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + let redirectUrl = false; + + const req = reqres.req({ + url: '/auth/login', + query: { + auth_methods: 'astad.aprofiel.v1' + }, + get: () => host, + session: { + save: (cb) => cb(), + }, + }); + + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val + this.emit('end'); + } + }); + + res.redirect.bind(res); + + res.on('end', () => { + assert(redirectUrl); + assert(redirectUrl.includes('auth_methods=iam-aprofiel-userpass')); + return done(); + }); + + router.handle(req, res); + }); + it('should redirect to login with extra scopes if scopeGroups query param is supplied', function onIt(done) { const config = Object.assign({}, correctConfig, { scopeGroups: { From dcf7f1ff9d0a4f0560c291d0c8d36f6b34444ae9 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 17 Nov 2022 13:57:01 +0100 Subject: [PATCH 50/67] 2.3.4 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 72a8e26..5af540f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.3.3", + "version": "2.3.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.3.3", + "version": "2.3.4", "license": "ISC", "dependencies": { "async": "~2.5.0", diff --git a/package.json b/package.json index 54c300f..a0bcbff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.3.3", + "version": "2.3.4", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 28c8e978d07137dcd5af62f7aebe8f2f2bbbefdf Mon Sep 17 00:00:00 2001 From: horstenwillem Date: Mon, 30 Jan 2023 09:05:45 +0100 Subject: [PATCH 51/67] chore: update dependencies + add lintr + add github workflows --- .babelrc | 36 +- .eslintignore | 5 + .eslintrc | 292 +- .github/workflows/pull-request.yaml | 26 + .npmignore | 13 + .travis.yml | 18 - examples/basic-mongo/Dockerfile | 2 +- examples/basic-mongo/config.js | 14 +- examples/basic-mongo/index.js | 8 +- examples/basic-mongo/package-lock.json | 4742 +++++ examples/basic-mongo/package.json | 6 +- examples/node-hinted-login/index.js | 13 +- examples/node-hinted-login/package-lock.json | 223 +- examples/node-hinted-login/package.json | 2 +- package-lock.json | 15644 ++++++++++------- package.json | 51 +- rollup.config.js | 13 +- src/accessToken.js | 29 +- src/authMethods.js | 24 +- src/controller.js | 107 +- src/helpers.js | 14 +- src/hooks/assuranceLevelAndAuthMethod.js | 8 +- src/hooks/authMethodAssuranceLevelMapping.js | 5 +- src/hooks/deleteSessions.js | 9 +- src/hooks/determineLoginType.js | 10 +- src/index.js | 14 +- src/middleware/sso.js | 19 +- src/router.js | 11 +- src/service.js | 15 +- src/sessionStore.js | 4 +- test/isLoggedin.js | 37 +- test/loggedout.js | 89 +- test/login.js | 151 +- test/loginCallback.js | 116 +- test/logout.js | 55 +- test/logoutCallback.js | 28 +- test/mocks/auth20Config.js | 17 +- test/mocks/correctConfig.js | 4 +- test/mocks/oauth.js | 9 +- test/mocks/sessionStore.js | 8 +- test/mocks/sessionStoreResponses.js | 30 +- test/mocks/user.js | 2 - test/refresh.js | 39 +- test/sso.js | 93 +- 44 files changed, 14391 insertions(+), 7664 deletions(-) create mode 100644 .eslintignore create mode 100644 .github/workflows/pull-request.yaml delete mode 100644 .travis.yml create mode 100644 examples/basic-mongo/package-lock.json diff --git a/.babelrc b/.babelrc index 0c9c2fc..b8e4169 100644 --- a/.babelrc +++ b/.babelrc @@ -1,17 +1,27 @@ { - "presets": [ - [ - "@babel/preset-env", - { - "targets": { - "node": "8" - } + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "18" } - ] - ], - "env": { - "test": { - "plugins": ["istanbul"] } + ] + ], + "env": { + "test": { + "plugins": [ + "istanbul" + ] } - } \ No newline at end of file + }, + "plugins": [ + [ + "@babel/plugin-transform-runtime", + { + "corejs": 2 + } + ] + ] +} \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e184e3d --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +node_modules +dist +coverage +.nyc_output +examples \ No newline at end of file diff --git a/.eslintrc b/.eslintrc index 5097c02..1f44532 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,273 +1,19 @@ -{ "ecmaVersion" : 6, - "env" : { "es6" : true, - "mocha" : true, - "node" : true - }, - "globals" : { "__base" : true }, - "parserOptions" : { "ecmaFeatures" : { "arrowFunctions" : true, - "binaryLiterals" : false, - "blockBindings" : true, - "generators" : true, - "octalLiterals" : false, - "templateStrings" : true - } }, - "rules" : { "accessor-pairs" : 0, - "array-bracket-spacing" : 0, - "block-scoped-var" : 2, - "brace-style" : [ 2, - "1tbs", - { "allowSingleLine" : true } - ], - "callback-return" : 0, - "camelcase" : [ 2, - { "properties" : "never" } - ], - "comma-dangle" : [ 2, - "never" - ], - "comma-spacing" : [ 2, - { "after" : true, - "before" : false - } - ], - "comma-style" : [ 2, - "last" - ], - "complexity" : [ 0, - 11 - ], - "computed-property-spacing" : 0, - "consistent-return" : 0, - "consistent-this" : 0, - "curly" : [ 2, - "multi-line" - ], - "default-case" : 2, - "dot-location" : 0, - "dot-notation" : [ 2, - { "allowKeywords" : true } - ], - "eol-last" : 2, - "eqeqeq" : [ 2, - "allow-null" - ], - "func-names" : 1, - "func-style" : 0, - "guard-for-in" : 2, - "handle-callback-err" : 0, - "id-length" : [ 2, - { "exceptions" : [ "_" ], - "min" : 2, - "properties" : "never" - } - ], - "id-match" : 0, - "indent" : [ 2, - 2 - ], - "init-declarations" : 0, - "jsx-quotes" : 2, - "key-spacing" : [ 2, - { "afterColon" : true, - "beforeColon" : false - } - ], - "keyword-spacing" : [ 2, - { "after" : true, - "before" : true, - "overrides" : { "case" : { "after" : true }, - "return" : { "after" : true }, - "throw" : { "after" : true } - } - } - ], - "linebreak-style" : 0, - "lines-around-comment" : 0, - "max-depth" : [ 0, - 4 - ], - "max-len" : [ 0, - 80, - 4 - ], - "max-nested-callbacks" : 0, - "max-params" : [ 0, - 3 - ], - "max-statements" : [ 0, - 10 - ], - "new-cap" : [ 2, - { "newIsCap" : true } - ], - "new-parens" : 0, - "newline-after-var" : 0, - "no-alert" : 1, - "no-array-constructor" : 0, - "no-bitwise" : 0, - "no-caller" : 2, - "no-catch-shadow" : 0, - "no-cond-assign" : [ 2, - "always" - ], - "no-console" : 0, - "no-constant-condition" : 1, - "no-continue" : 0, - "no-control-regex" : 2, - "no-debugger" : 1, - "no-delete-var" : 2, - "no-div-regex" : 0, - "no-dupe-args" : 2, - "no-dupe-keys" : 2, - "no-duplicate-case" : 2, - "no-else-return" : 2, - "no-empty" : 2, - "no-eq-null" : 0, - "no-eval" : 2, - "no-ex-assign" : 2, - "no-extend-native" : 2, - "no-extra-bind" : 2, - "no-extra-boolean-cast" : 0, - "no-extra-parens" : [ 2, - "functions" - ], - "no-extra-semi" : 2, - "no-fallthrough" : 2, - "no-floating-decimal" : 2, - "no-func-assign" : 2, - "no-implicit-coercion" : 0, - "no-implied-eval" : 2, - "no-inline-comments" : 0, - "no-inner-declarations" : 2, - "no-invalid-regexp" : 2, - "no-invalid-this" : 0, - "no-irregular-whitespace" : 2, - "no-iterator" : 2, - "no-label-var" : 0, - "no-labels" : 2, - "no-lone-blocks" : 2, - "no-lonely-if" : 0, - "no-loop-func" : 2, - "no-mixed-requires" : [ 0, - false - ], - "no-mixed-spaces-and-tabs" : 2, - "no-multi-spaces" : 2, - "no-multi-str" : 2, - "no-multiple-empty-lines" : [ 2, - { - "max" : 2, - "maxBOF" : 1, - "maxEOF" : 1 - } - ], - "no-native-reassign" : 2, - "no-negated-in-lhs" : 2, - "no-nested-ternary" : 2, - "no-new" : 2, - "no-new-func" : 2, - "no-new-object" : 2, - "no-new-require" : 0, - "no-new-wrappers" : 2, - "no-obj-calls" : 2, - "no-octal" : 2, - "no-octal-escape" : 2, - "no-param-reassign" : 0, - "no-path-concat" : 0, - "no-plusplus" : 0, - "no-process-env" : 0, - "no-process-exit" : 0, - "no-proto" : 2, - "no-redeclare" : 2, - "no-regex-spaces" : 2, - "no-restricted-modules" : 0, - "no-return-assign" : 2, - "no-script-url" : 2, - "no-self-compare" : 2, - "no-sequences" : 2, - "no-shadow" : 2, - "no-shadow-restricted-names" : 2, - "no-spaced-func" : 2, - "no-sparse-arrays" : 2, - "no-sync" : 0, - "no-ternary" : 0, - "no-throw-literal" : 2, - "no-trailing-spaces" : 2, - "no-undef" : 2, - "no-undef-init" : 0, - "no-undefined" : 0, - "no-underscore-dangle" : 0, - "no-unexpected-multiline" : 0, - "no-unneeded-ternary" : 0, - "no-unreachable" : 2, - "no-unused-expressions" : 2, - "no-unused-vars" : [ 2, - { "args" : "after-used", - "vars" : "local" - } - ], - "no-use-before-define" : 2, - "no-useless-call" : 0, - "no-void" : 0, - "no-warning-comments" : [ 0, - { "location" : "start", - "terms" : [ "todo", - "fixme", - "xxx" - ] - } - ], - "no-with" : 2, - "object-curly-spacing" : 0, - "one-var" : [ 2, - "never" - ], - "operator-assignment" : 0, - "operator-linebreak" : 0, - "padded-blocks" : 0, - "quote-props" : 0, - "quotes" : [ 2, - "single", - "avoid-escape" - ], - "radix" : 2, - "semi" : [ 2, - "always" - ], - "semi-spacing" : [ 2, - { "after" : true, - "before" : false - } - ], - "sort-vars" : 0, - "space-before-blocks" : 2, - "space-before-function-paren" : [ 2, - "never" - ], - "space-in-parens" : 0, - "space-infix-ops" : 2, - "space-unary-ops" : 0, - "spaced-comment" : [ 2, - "always", - { "exceptions" : [ "-", - "+" - ], - "markers" : [ "=", - "!" - ] - } - ], - "strict" : [ 2, - "global" - ], - "use-isnan" : 2, - "valid-jsdoc" : 0, - "valid-typeof" : 2, - "vars-on-top" : 0, - "wrap-iife" : [ 2, - "any" - ], - "wrap-regex" : 0, - "yoda" : 2 - } -} +{ + "extends": "airbnb-base", + "env": { + "es6": true, + "node": true, + "mocha": true + }, + "rules": { + "import/prefer-default-export": "off", + "object-curly-newline": "off", + "no-throw-literal": "off", + "no-unused-vars": [ + "warn", + { + "argsIgnorePattern": "^_" + } + ] + } +} \ No newline at end of file diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml new file mode 100644 index 0000000..80cbe47 --- /dev/null +++ b/.github/workflows/pull-request.yaml @@ -0,0 +1,26 @@ +name: Continuous Integration + +on: [pull_request] + +jobs: + build: + name: Sanitize & Tests + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [14.x, 16.x, 18.x] + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - run: npm run lint + - run: npm run build + - run: npm run test diff --git a/.npmignore b/.npmignore index b726568..4358776 100644 --- a/.npmignore +++ b/.npmignore @@ -1 +1,14 @@ +# Eslint configuration +.eslintignore +.eslintrc + +# Build configuration +.babelrc +rollup.config.js +.travis.yml + +# Tests +test + +# Examples examples \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a97967c..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: node_js - -node_js: - - "10" - - "11" - -sudo: false - -cache: - directories: - - "node_modules" -script: - - npm install - - npm run test - -after_script: - - "npm install coveralls" - - "cat ./backend/coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js" diff --git a/examples/basic-mongo/Dockerfile b/examples/basic-mongo/Dockerfile index b315ca4..b2f589f 100644 --- a/examples/basic-mongo/Dockerfile +++ b/examples/basic-mongo/Dockerfile @@ -1,4 +1,4 @@ -FROM node:dubnium +FROM node:18 RUN mkdir /app diff --git a/examples/basic-mongo/config.js b/examples/basic-mongo/config.js index 086e0e2..2937a34 100644 --- a/examples/basic-mongo/config.js +++ b/examples/basic-mongo/config.js @@ -12,17 +12,17 @@ module.exports = { 'astad.aprofiel.v1.avatar', 'astad.aprofiel.v1.email', ], - high: ['crspersoon.nationalnumber'] + high: ['crspersoon.nationalnumber'], }, - defaultScopes: ['astad.aprofiel.v1.name',], + defaultScopes: ['astad.aprofiel.v1.name'], url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', hooks: { loginSuccess: [ (req, res, next) => { req.session.user.hookTest = 'hello'; return next(); - } - ] - } - } -} \ No newline at end of file + }, + ], + }, + }, +}; diff --git a/examples/basic-mongo/index.js b/examples/basic-mongo/index.js index aa43719..6a99ec3 100644 --- a/examples/basic-mongo/index.js +++ b/examples/basic-mongo/index.js @@ -4,15 +4,13 @@ const connectMongo = require('connect-mongo'); const session = require('express-session'); const auth = require('@digipolis/auth'); - let { session: sessionConfig, auth: authConfig, mongoConnectionString, - port = 2000 + port = 2000, } = require('./old-config'); - const app = express(); const MongoStore = connectMongo(session); @@ -23,8 +21,8 @@ app.enable('trust proxy'); // append the session store to the sessionconfig sessionConfig = Object.assign(sessionConfig, { store: new MongoStore({ - url: mongoConnectionString - }) + url: mongoConnectionString, + }), }); // use the s diff --git a/examples/basic-mongo/package-lock.json b/examples/basic-mongo/package-lock.json new file mode 100644 index 0000000..b7888aa --- /dev/null +++ b/examples/basic-mongo/package-lock.json @@ -0,0 +1,4742 @@ +{ + "name": "basic-digipolis-auth-example", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "basic-digipolis-auth-example", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@digipolis/auth": "git+https://github.com/digipolisantwerp/auth_module_nodejs.git", + "connect-mongo": "^4.6.0", + "express": "^4.18.2", + "express-session": "^1.17.3" + } + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + }, + "node_modules/@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + }, + "node_modules/@aws-sdk/abort-controller": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.257.0.tgz", + "integrity": "sha512-ekWy391lOerS0ZECdhp/c+X7AToJIpfNrCPjuj3bKr+GMQYckGsYsdbm6AUD4sxBmfvuaQmVniSXWovaxwcFcQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.259.0.tgz", + "integrity": "sha512-7rx+zh1HwiBiMqGGgYnwsp5vIzFBYHNmCVIn7rAXSzuG4c5H5DjgfKonQ/zUwa3SHtnahSBpH7cD3jsBq4tKmw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.259.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/credential-provider-node": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.259.0.tgz", + "integrity": "sha512-TKi9Lj0zqxsrQWOZ+e4WchNDtLDz6B+ahMzYDIOFlglDPPEzbZE//PBMZCba/AAIe6U3xaUQSnni+4mNbRLg7Q==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.259.0.tgz", + "integrity": "sha512-TKpUX55qLM35sQXx96VnB/ZcQCcBxVU/0j0wqL8Hij+blD7fy6KrGGJPORzRphmFg8Ehf1IoCivFxrQwLrjZ6A==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.259.0.tgz", + "integrity": "sha512-LXqua4FoXxR30sM4BSwmPI6x0YmDTw6yQhxQQXA5hrx+YwUf8CSpa0K6Xwfv8M5+zP0uHfY1iVxx/rnT8FOEmA==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/credential-provider-node": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-sdk-sts": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "fast-xml-parser": "4.0.11", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.259.0.tgz", + "integrity": "sha512-gViMRsc4Ye6+nzJ0OYTZIT8m4glIAdtugN2Sr/t6P2iJW5X0bSL/EcbcHBgsve1lHjeGPeyzVkT7UnyGOZ5Z/A==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.259.0.tgz", + "integrity": "sha512-MkA+eektWXkszb1ZNyXAc4lfMB5GLbKAA7nDKYuX/HkjaXyTTCL+qcMXftpr4j4w4LAfJudc1VN7GiPOjNaIPQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.257.0.tgz", + "integrity": "sha512-GsmBi5Di6hk1JAi1iB6/LCY8o+GmlCvJoB7wuoVmXI3VxRVwptUVjuj8EtJbIrVGrF9dSuIRPCzUoSuzEzYGlg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.259.0.tgz", + "integrity": "sha512-yCxoYWZAaDrCUEWxRfrpB0Mp1cFgJEMYW8T6GIb/+DQ5QLpZmorgaVD/j90QXupqFrR5tlxwuskBIkdD2E9YNg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.259.0.tgz", + "integrity": "sha512-/sjZv+XvcSMnvDTsau0cHxMFcbz4f4ksvgu10JQ1PpcH5CPQJviDJjZRzzijcOuMZ3SOO0skyuYU6tjY18cgIg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.259.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.259.0.tgz", + "integrity": "sha512-7doM6hCPTZD0H+A7VtElLY4Ztuhg3MbjoHs00TyPZNCym7f/AKmKi9Exiw1tGgxTJkfn/SzcAWz+TyqMP078ow==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/credential-provider-ini": "3.259.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.259.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.257.0.tgz", + "integrity": "sha512-xK8uYeNXaclaBCGrLi4z2pxPRngqLf5BM5jg2fn57zqvlL9V5gJF972FehrVBL0bfp1/laG0ZJtD2K2sapyWAw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.259.0.tgz", + "integrity": "sha512-cz+8aNKxvZ8ikd0JDcB9MZredOJNRZkbco8QAM0gXfy6ziyX+23oU8+aekZljDzQR5QNRouvMz1KKmBxZLpNyg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/client-sso": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/token-providers": "3.259.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.257.0.tgz", + "integrity": "sha512-Cm0uvRv4JuIbD0Kp3W0J/vwjADIyCx8HoZi5yg+QIi5nilocuTQ3ajvLeuPVSvFvdy+yaxSc5FxNXquWt7Mngw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.259.0.tgz", + "integrity": "sha512-i8zL9D8vmsGe2CsDKOqriUjiwMFaGVzITPUIxfC99ZFHwbtABipur9CQFS56ifGm0VacsmMIUaUjEIrur6Jazw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.259.0", + "@aws-sdk/client-sso": "3.259.0", + "@aws-sdk/client-sts": "3.259.0", + "@aws-sdk/credential-provider-cognito-identity": "3.259.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/credential-provider-ini": "3.259.0", + "@aws-sdk/credential-provider-node": "3.259.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.259.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.257.0.tgz", + "integrity": "sha512-zOF+RzQ+wfF7tq7tGUdPcqUTh3+k2f8KCVJE07A8kCopVq4nBu4NH6Eq29Tjpwdya3YlKvE+kFssuQRRRRex+Q==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/hash-node": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.257.0.tgz", + "integrity": "sha512-W/USUuea5Ep3OJ2U7Ve8/5KN1YsDun2WzOFUxc1PyxXP5pW6OgC15/op0e+bmWPG851clvp5S8ZuroUr3aKi3Q==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-buffer-from": "3.208.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.257.0.tgz", + "integrity": "sha512-T68SAPRNMEhpke0wlxURgogL7q0B8dfqZsSeS20BVR/lksJxLse9+pbmCDxiu1RrXoEIsEwl5rbLN+Hw8BFFYw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.257.0.tgz", + "integrity": "sha512-yiawbV2azm6QnMY1L2ypG8PDRdjOcEIvFmT0T7y0F49rfbKJOu21j1ONAoCkLrINK6kMqcD5JSQLVCoURxiTxQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-endpoint": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.257.0.tgz", + "integrity": "sha512-RQNQe/jeVuWZtXXfcOm+e3qMFICY6ERsXUrbt0rjHgvajZCklcrRJgxJSCwrcS7Le3nl9azFPMAMj9L7uSK28g==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.257.0.tgz", + "integrity": "sha512-gEi9AJdJfRfU8Qr6HK1hfhxTzyV3Giq4B/h7um99hIFAT/GCg9xiPvAOKPo6UeuiKEv3b7RpSL4s6cBvnJMJBA==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.257.0.tgz", + "integrity": "sha512-8RDXW/VbMKBsXDfcCLmROZcWKyrekyiPa3J1aIaBy0tq9o4xpGoXw/lwwIrNVvISAFslb57rteup34bfn6ta6w==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.257.0.tgz", + "integrity": "sha512-rUCih6zHh8k9Edf5N5Er4s508FYbwLM0MWTD2axzlj9TjLqEQ9OKED3wHaLffXSDzodd3oTAfJCLPbWQyoZ3ZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.259.0.tgz", + "integrity": "sha512-pVh1g8e84MAi7eVtWLiiiCtn82LzxOP7+LxTRHatmgIeN22yGQBZILliPDJypUPvDYlwxI1ekiK+oPTcte0Uww==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/service-error-classification": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "tslib": "^2.3.1", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.257.0.tgz", + "integrity": "sha512-d6IJCLRi3O2tm4AFK60WNhIwmMmspj1WzKR1q1TaoPzoREPG2xg+Am18wZBRkCyYuRPPrbizmkvAmAJiUolMAw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.257.0.tgz", + "integrity": "sha512-/JasfXPWFq24mnCrx9fxW/ISBSp07RJwhsF14qzm8Qy3Z0z470C+QRM6otTwAkYuuVt1wuLjja5agq3Jtzq7dQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.257.0.tgz", + "integrity": "sha512-hCH3D83LHmm6nqmtNrGTWZCVjsQXrGHIXbd17/qrw7aPFvcAhsiiCncGFP+XsUXEKa2ZqcSNMUyPrx69ofNRZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-stack": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.257.0.tgz", + "integrity": "sha512-awg2F0SvwACBaw4HIObK8pQGfSqAc4Vy+YFzWSfZNVC35oRO6RsRdKHVU99lRC0LrT2Ptmfghl2DMPSrRDbvlQ==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.257.0.tgz", + "integrity": "sha512-37rt75LZyD0UWpbcFuxEGqwF3DZKSixQPl7AsDe6q3KtrO5gGQB+diH5vbY0txNNYyv5IK9WMwvY73mVmoWRmw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.259.0.tgz", + "integrity": "sha512-DUOqr71oonBvM6yKPdhDBmraqgXHCFrVWFw7hc5ZNxL2wS/EsbKfGPJp+C+SUgpn1upIWPNnh/bNoLAbBkcLsA==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.257.0.tgz", + "integrity": "sha512-8KnWHVVwaGKyTlkTU9BSOAiSovNDoagxemU2l10QqBbzUCVpljCUMUkABEGRJ1yoQCl6DJ7RtNkAyZ8Ne/E15A==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/abort-controller": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/property-provider": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.257.0.tgz", + "integrity": "sha512-3rUbRAcF0GZ5PhDiXhS4yREfZ5hOEtvYEa9S/19OdM5eoypOaLU5XnFcCKfnccSP8SkdgpJujzxOMRWNWadlAQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.257.0.tgz", + "integrity": "sha512-xt7LGOgZIvbLS3418AYQLacOqx+mo5j4mPiIMz7f6AaUg+/fBUgESVsncKDqxbEJVwwCXSka8Ca0cntJmoeMSw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.257.0.tgz", + "integrity": "sha512-mZHWLP7XIkzx1GIXO5WfX/iJ+aY9TWs02RE9FkdL2+by0HEMR65L3brQTbU1mIBJ7BjaPwYH24dljUOSABX7yg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.257.0.tgz", + "integrity": "sha512-UDrE1dEwWrWT8dG2VCrGYrPxCWOkZ1fPTPkjpkR4KZEdQDZBqU5gYZF2xPj8Nz7pjQVHFuW2wFm3XYEk56GEjg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/service-error-classification": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.257.0.tgz", + "integrity": "sha512-FAyR0XsueGkkqDtkP03cTJQk52NdQ9sZelLynmmlGPUP75LApRPvFe1riKrou6+LsDbwVNVffj6mbDfIcOhaOw==", + "optional": true, + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.257.0.tgz", + "integrity": "sha512-HNjC1+Wx3xHiJc+CP14GhIdVhfQGSjroAsWseRxAhONocA9Fl1ZX4hx7+sA5c9nOoMVOovi6ivJ/6lCRPTDRrQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.257.0.tgz", + "integrity": "sha512-aLQQN59X/D0+ShzPD3Anj5ntdMA/RFeNLOUCDyDvremViGi6yxUS98usQ/8bG5Rq0sW2GGMdbFUFmrDvqdiqEQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-hex-encoding": "3.201.0", + "@aws-sdk/util-middleware": "3.257.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/smithy-client": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.257.0.tgz", + "integrity": "sha512-Vy/en+llpslHG6WZ2yuN+On6u7p2hROEURwAST/lpReAwBETjbsxylkWvP8maeGKQ54u9uC6lIZAOJut2I3INw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.259.0.tgz", + "integrity": "sha512-61lbk+vjlHBtNK7ZOTdR0rgk9dQ6++tklHpXZY3AQWAl3xx6K4y00HsyAtcP6k24s8B356QwXlrQJrQY5nnkQQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.257.0.tgz", + "integrity": "sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/url-parser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.257.0.tgz", + "integrity": "sha512-Qe/AcFe/NFZHa6cN2afXEQn9ehXxh57dWGdRjfjd2lQqNV4WW1R2pl2Tm1ZJ1dwuCNLJi4NHLMk8lrD3QQ8rdg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/querystring-parser": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-base64": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", + "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-body-length-browser": { + "version": "3.188.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", + "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-body-length-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", + "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-buffer-from": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/is-array-buffer": "3.201.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-config-provider": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", + "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.257.0.tgz", + "integrity": "sha512-nkfK+MNacVd3Px/fcAvU0hDeh+r7d+RLLt3sJ5Zc0gGd+i3OQEP58V8QzR9PYMvUvSvGQP16fQVQHSbRZtuWyQ==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.259.0.tgz", + "integrity": "sha512-wRiiwT7ayIcTYGHUg/Ho9UN/Kd4V37OAxP2IbkG9rPZJNuvtKopQJhUSMDERXaMQ47dG5US8G4YVYJIEO4cKgw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.257.0.tgz", + "integrity": "sha512-3bvmRn5XGYzPPWjLuvHBKdJOb+fijnb8Ungu9bfXnTYFsng/ndHUWeHC22O/p8w3OWoRYUIMaZHxdxe27BFozg==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-hex-encoding": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", + "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", + "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-middleware": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.257.0.tgz", + "integrity": "sha512-F9ieon8B8eGVs5tyZtAIG3DZEObDvujkspho0qRbUTHUosM0ylJLsMU800fmC/uRHLRrZvb/RSp59+kNDwSAMw==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-retry": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.257.0.tgz", + "integrity": "sha512-l9TOsOAYtZxwW3q5fQKW4rsD9t2HVaBfQ4zBamHkNTfB4vBVvCnz4oxkvSvA2MlxCA6am+K1K/oj917Tpqk53g==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/service-error-classification": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/util-uri-escape": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", + "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.257.0.tgz", + "integrity": "sha512-YdavWK6/8Cw6mypEgysGGX/dT9p9qnzFbnN5PQsUY+JJk2Nx8fKFydjGiQ+6rWPeW17RAv9mmbboh9uPVWxVlw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.257.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.259.0.tgz", + "integrity": "sha512-R0VTmNs+ySDDebU98BUbsLyeIM5YmAEr9esPpy15XfSy3AWmAeru8nLlztdaLilHZzLIDzvM2t7NGk/FzZFCvA==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==", + "optional": true, + "peer": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@digipolis/auth": { + "version": "1.6.0", + "resolved": "git+ssh://git@github.com/digipolisantwerp/auth_module_nodejs.git#b157dfa2e2b696c2d080c7446d665edde639ce07", + "license": "ISC", + "dependencies": { + "async": "~2.5.0", + "bcryptjs": "^2.4.3", + "express": "^4.16.4", + "lodash.get": "~4.4.2", + "oauth": "~0.9.15", + "request": "^2.88.0", + "url-parse": "^1.4.3", + "uuid": "~3.1.0" + } + }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "peer": true + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==", + "peer": true + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dependencies": { + "lodash": "^4.14.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "optional": true, + "peer": true + }, + "node_modules/bson": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "peer": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect-mongo": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-4.6.0.tgz", + "integrity": "sha512-8new4Z7NLP3CGP65Aw6ls3xDBeKVvHRSh39CXuDZTQsvpeeU9oNMzfFgvqmHqZ6gWpxIl663RyoVEmCAGf1yOg==", + "dependencies": { + "debug": "^4.3.1", + "kruptein": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "mongodb": "^4.1.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express-session/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/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==" + }, + "node_modules/fast-xml-parser": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", + "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "optional": true, + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "peer": true + }, + "node_modules/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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/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==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/kruptein": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-3.0.5.tgz", + "integrity": "sha512-c1pyg/HKep8y5l+AoiicTs94k4bnzBSiS1b8NQcnQDtv9Yh45rNLuDIUwEwawmuFYpcA5xqhG7k0LqiMhrBPXw==", + "dependencies": { + "asn1.js": "^5.4.1" + }, + "engines": { + "node": ">8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true, + "peer": true + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/mongodb": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.13.0.tgz", + "integrity": "sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==", + "peer": true, + "dependencies": { + "bson": "^4.7.0", + "mongodb-connection-string-url": "^2.5.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "@aws-sdk/credential-providers": "^3.186.0", + "saslprep": "^1.0.3" + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "peer": true, + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "peer": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "peer": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "peer": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "peer": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "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" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "optional": true, + "peer": true + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/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==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "optional": true, + "peer": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "peer": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + } + } + }, + "@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + } + } + }, + "@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + } + } + }, + "@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + } + } + }, + "@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true, + "peer": true + } + } + }, + "@aws-sdk/abort-controller": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.257.0.tgz", + "integrity": "sha512-ekWy391lOerS0ZECdhp/c+X7AToJIpfNrCPjuj3bKr+GMQYckGsYsdbm6AUD4sxBmfvuaQmVniSXWovaxwcFcQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-cognito-identity": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.259.0.tgz", + "integrity": "sha512-7rx+zh1HwiBiMqGGgYnwsp5vIzFBYHNmCVIn7rAXSzuG4c5H5DjgfKonQ/zUwa3SHtnahSBpH7cD3jsBq4tKmw==", + "optional": true, + "peer": true, + "requires": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.259.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/credential-provider-node": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sso": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.259.0.tgz", + "integrity": "sha512-TKi9Lj0zqxsrQWOZ+e4WchNDtLDz6B+ahMzYDIOFlglDPPEzbZE//PBMZCba/AAIe6U3xaUQSnni+4mNbRLg7Q==", + "optional": true, + "peer": true, + "requires": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sso-oidc": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.259.0.tgz", + "integrity": "sha512-TKpUX55qLM35sQXx96VnB/ZcQCcBxVU/0j0wqL8Hij+blD7fy6KrGGJPORzRphmFg8Ehf1IoCivFxrQwLrjZ6A==", + "optional": true, + "peer": true, + "requires": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sts": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.259.0.tgz", + "integrity": "sha512-LXqua4FoXxR30sM4BSwmPI6x0YmDTw6yQhxQQXA5hrx+YwUf8CSpa0K6Xwfv8M5+zP0uHfY1iVxx/rnT8FOEmA==", + "optional": true, + "peer": true, + "requires": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/credential-provider-node": "3.259.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.259.0", + "@aws-sdk/middleware-sdk-sts": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "@aws-sdk/util-body-length-browser": "3.188.0", + "@aws-sdk/util-body-length-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.259.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.259.0", + "@aws-sdk/util-utf8": "3.254.0", + "fast-xml-parser": "4.0.11", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/config-resolver": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.259.0.tgz", + "integrity": "sha512-gViMRsc4Ye6+nzJ0OYTZIT8m4glIAdtugN2Sr/t6P2iJW5X0bSL/EcbcHBgsve1lHjeGPeyzVkT7UnyGOZ5Z/A==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-cognito-identity": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.259.0.tgz", + "integrity": "sha512-MkA+eektWXkszb1ZNyXAc4lfMB5GLbKAA7nDKYuX/HkjaXyTTCL+qcMXftpr4j4w4LAfJudc1VN7GiPOjNaIPQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/client-cognito-identity": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-env": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.257.0.tgz", + "integrity": "sha512-GsmBi5Di6hk1JAi1iB6/LCY8o+GmlCvJoB7wuoVmXI3VxRVwptUVjuj8EtJbIrVGrF9dSuIRPCzUoSuzEzYGlg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-imds": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.259.0.tgz", + "integrity": "sha512-yCxoYWZAaDrCUEWxRfrpB0Mp1cFgJEMYW8T6GIb/+DQ5QLpZmorgaVD/j90QXupqFrR5tlxwuskBIkdD2E9YNg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-ini": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.259.0.tgz", + "integrity": "sha512-/sjZv+XvcSMnvDTsau0cHxMFcbz4f4ksvgu10JQ1PpcH5CPQJviDJjZRzzijcOuMZ3SOO0skyuYU6tjY18cgIg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.259.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-node": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.259.0.tgz", + "integrity": "sha512-7doM6hCPTZD0H+A7VtElLY4Ztuhg3MbjoHs00TyPZNCym7f/AKmKi9Exiw1tGgxTJkfn/SzcAWz+TyqMP078ow==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/credential-provider-ini": "3.259.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.259.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-process": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.257.0.tgz", + "integrity": "sha512-xK8uYeNXaclaBCGrLi4z2pxPRngqLf5BM5jg2fn57zqvlL9V5gJF972FehrVBL0bfp1/laG0ZJtD2K2sapyWAw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-sso": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.259.0.tgz", + "integrity": "sha512-cz+8aNKxvZ8ikd0JDcB9MZredOJNRZkbco8QAM0gXfy6ziyX+23oU8+aekZljDzQR5QNRouvMz1KKmBxZLpNyg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/client-sso": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/token-providers": "3.259.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-web-identity": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.257.0.tgz", + "integrity": "sha512-Cm0uvRv4JuIbD0Kp3W0J/vwjADIyCx8HoZi5yg+QIi5nilocuTQ3ajvLeuPVSvFvdy+yaxSc5FxNXquWt7Mngw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-providers": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.259.0.tgz", + "integrity": "sha512-i8zL9D8vmsGe2CsDKOqriUjiwMFaGVzITPUIxfC99ZFHwbtABipur9CQFS56ifGm0VacsmMIUaUjEIrur6Jazw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/client-cognito-identity": "3.259.0", + "@aws-sdk/client-sso": "3.259.0", + "@aws-sdk/client-sts": "3.259.0", + "@aws-sdk/credential-provider-cognito-identity": "3.259.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/credential-provider-ini": "3.259.0", + "@aws-sdk/credential-provider-node": "3.259.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.259.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/fetch-http-handler": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.257.0.tgz", + "integrity": "sha512-zOF+RzQ+wfF7tq7tGUdPcqUTh3+k2f8KCVJE07A8kCopVq4nBu4NH6Eq29Tjpwdya3YlKvE+kFssuQRRRRex+Q==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-base64": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/hash-node": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.257.0.tgz", + "integrity": "sha512-W/USUuea5Ep3OJ2U7Ve8/5KN1YsDun2WzOFUxc1PyxXP5pW6OgC15/op0e+bmWPG851clvp5S8ZuroUr3aKi3Q==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-buffer-from": "3.208.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/invalid-dependency": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.257.0.tgz", + "integrity": "sha512-T68SAPRNMEhpke0wlxURgogL7q0B8dfqZsSeS20BVR/lksJxLse9+pbmCDxiu1RrXoEIsEwl5rbLN+Hw8BFFYw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/is-array-buffer": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", + "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-content-length": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.257.0.tgz", + "integrity": "sha512-yiawbV2azm6QnMY1L2ypG8PDRdjOcEIvFmT0T7y0F49rfbKJOu21j1ONAoCkLrINK6kMqcD5JSQLVCoURxiTxQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-endpoint": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.257.0.tgz", + "integrity": "sha512-RQNQe/jeVuWZtXXfcOm+e3qMFICY6ERsXUrbt0rjHgvajZCklcrRJgxJSCwrcS7Le3nl9azFPMAMj9L7uSK28g==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", + "@aws-sdk/util-config-provider": "3.208.0", + "@aws-sdk/util-middleware": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-host-header": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.257.0.tgz", + "integrity": "sha512-gEi9AJdJfRfU8Qr6HK1hfhxTzyV3Giq4B/h7um99hIFAT/GCg9xiPvAOKPo6UeuiKEv3b7RpSL4s6cBvnJMJBA==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-logger": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.257.0.tgz", + "integrity": "sha512-8RDXW/VbMKBsXDfcCLmROZcWKyrekyiPa3J1aIaBy0tq9o4xpGoXw/lwwIrNVvISAFslb57rteup34bfn6ta6w==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-recursion-detection": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.257.0.tgz", + "integrity": "sha512-rUCih6zHh8k9Edf5N5Er4s508FYbwLM0MWTD2axzlj9TjLqEQ9OKED3wHaLffXSDzodd3oTAfJCLPbWQyoZ3ZQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-retry": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.259.0.tgz", + "integrity": "sha512-pVh1g8e84MAi7eVtWLiiiCtn82LzxOP7+LxTRHatmgIeN22yGQBZILliPDJypUPvDYlwxI1ekiK+oPTcte0Uww==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/service-error-classification": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "tslib": "^2.3.1", + "uuid": "^8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "peer": true + } + } + }, + "@aws-sdk/middleware-sdk-sts": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.257.0.tgz", + "integrity": "sha512-d6IJCLRi3O2tm4AFK60WNhIwmMmspj1WzKR1q1TaoPzoREPG2xg+Am18wZBRkCyYuRPPrbizmkvAmAJiUolMAw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-serde": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.257.0.tgz", + "integrity": "sha512-/JasfXPWFq24mnCrx9fxW/ISBSp07RJwhsF14qzm8Qy3Z0z470C+QRM6otTwAkYuuVt1wuLjja5agq3Jtzq7dQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-signing": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.257.0.tgz", + "integrity": "sha512-hCH3D83LHmm6nqmtNrGTWZCVjsQXrGHIXbd17/qrw7aPFvcAhsiiCncGFP+XsUXEKa2ZqcSNMUyPrx69ofNRZQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-stack": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.257.0.tgz", + "integrity": "sha512-awg2F0SvwACBaw4HIObK8pQGfSqAc4Vy+YFzWSfZNVC35oRO6RsRdKHVU99lRC0LrT2Ptmfghl2DMPSrRDbvlQ==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-user-agent": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.257.0.tgz", + "integrity": "sha512-37rt75LZyD0UWpbcFuxEGqwF3DZKSixQPl7AsDe6q3KtrO5gGQB+diH5vbY0txNNYyv5IK9WMwvY73mVmoWRmw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/node-config-provider": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.259.0.tgz", + "integrity": "sha512-DUOqr71oonBvM6yKPdhDBmraqgXHCFrVWFw7hc5ZNxL2wS/EsbKfGPJp+C+SUgpn1upIWPNnh/bNoLAbBkcLsA==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/node-http-handler": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.257.0.tgz", + "integrity": "sha512-8KnWHVVwaGKyTlkTU9BSOAiSovNDoagxemU2l10QqBbzUCVpljCUMUkABEGRJ1yoQCl6DJ7RtNkAyZ8Ne/E15A==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/abort-controller": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/property-provider": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.257.0.tgz", + "integrity": "sha512-3rUbRAcF0GZ5PhDiXhS4yREfZ5hOEtvYEa9S/19OdM5eoypOaLU5XnFcCKfnccSP8SkdgpJujzxOMRWNWadlAQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/protocol-http": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.257.0.tgz", + "integrity": "sha512-xt7LGOgZIvbLS3418AYQLacOqx+mo5j4mPiIMz7f6AaUg+/fBUgESVsncKDqxbEJVwwCXSka8Ca0cntJmoeMSw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/querystring-builder": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.257.0.tgz", + "integrity": "sha512-mZHWLP7XIkzx1GIXO5WfX/iJ+aY9TWs02RE9FkdL2+by0HEMR65L3brQTbU1mIBJ7BjaPwYH24dljUOSABX7yg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/querystring-parser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.257.0.tgz", + "integrity": "sha512-UDrE1dEwWrWT8dG2VCrGYrPxCWOkZ1fPTPkjpkR4KZEdQDZBqU5gYZF2xPj8Nz7pjQVHFuW2wFm3XYEk56GEjg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/service-error-classification": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.257.0.tgz", + "integrity": "sha512-FAyR0XsueGkkqDtkP03cTJQk52NdQ9sZelLynmmlGPUP75LApRPvFe1riKrou6+LsDbwVNVffj6mbDfIcOhaOw==", + "optional": true, + "peer": true + }, + "@aws-sdk/shared-ini-file-loader": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.257.0.tgz", + "integrity": "sha512-HNjC1+Wx3xHiJc+CP14GhIdVhfQGSjroAsWseRxAhONocA9Fl1ZX4hx7+sA5c9nOoMVOovi6ivJ/6lCRPTDRrQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/signature-v4": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.257.0.tgz", + "integrity": "sha512-aLQQN59X/D0+ShzPD3Anj5ntdMA/RFeNLOUCDyDvremViGi6yxUS98usQ/8bG5Rq0sW2GGMdbFUFmrDvqdiqEQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/is-array-buffer": "3.201.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-hex-encoding": "3.201.0", + "@aws-sdk/util-middleware": "3.257.0", + "@aws-sdk/util-uri-escape": "3.201.0", + "@aws-sdk/util-utf8": "3.254.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/smithy-client": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.257.0.tgz", + "integrity": "sha512-Vy/en+llpslHG6WZ2yuN+On6u7p2hROEURwAST/lpReAwBETjbsxylkWvP8maeGKQ54u9uC6lIZAOJut2I3INw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/token-providers": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.259.0.tgz", + "integrity": "sha512-61lbk+vjlHBtNK7ZOTdR0rgk9dQ6++tklHpXZY3AQWAl3xx6K4y00HsyAtcP6k24s8B356QwXlrQJrQY5nnkQQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/client-sso-oidc": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/types": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.257.0.tgz", + "integrity": "sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/url-parser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.257.0.tgz", + "integrity": "sha512-Qe/AcFe/NFZHa6cN2afXEQn9ehXxh57dWGdRjfjd2lQqNV4WW1R2pl2Tm1ZJ1dwuCNLJi4NHLMk8lrD3QQ8rdg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/querystring-parser": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-base64": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", + "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-body-length-browser": { + "version": "3.188.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", + "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-body-length-node": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", + "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-buffer-from": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", + "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/is-array-buffer": "3.201.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-config-provider": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", + "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-defaults-mode-browser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.257.0.tgz", + "integrity": "sha512-nkfK+MNacVd3Px/fcAvU0hDeh+r7d+RLLt3sJ5Zc0gGd+i3OQEP58V8QzR9PYMvUvSvGQP16fQVQHSbRZtuWyQ==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-defaults-mode-node": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.259.0.tgz", + "integrity": "sha512-wRiiwT7ayIcTYGHUg/Ho9UN/Kd4V37OAxP2IbkG9rPZJNuvtKopQJhUSMDERXaMQ47dG5US8G4YVYJIEO4cKgw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/config-resolver": "3.259.0", + "@aws-sdk/credential-provider-imds": "3.259.0", + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-endpoints": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.257.0.tgz", + "integrity": "sha512-3bvmRn5XGYzPPWjLuvHBKdJOb+fijnb8Ungu9bfXnTYFsng/ndHUWeHC22O/p8w3OWoRYUIMaZHxdxe27BFozg==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-hex-encoding": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", + "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-locate-window": { + "version": "3.208.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", + "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-middleware": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.257.0.tgz", + "integrity": "sha512-F9ieon8B8eGVs5tyZtAIG3DZEObDvujkspho0qRbUTHUosM0ylJLsMU800fmC/uRHLRrZvb/RSp59+kNDwSAMw==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-retry": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.257.0.tgz", + "integrity": "sha512-l9TOsOAYtZxwW3q5fQKW4rsD9t2HVaBfQ4zBamHkNTfB4vBVvCnz4oxkvSvA2MlxCA6am+K1K/oj917Tpqk53g==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/service-error-classification": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-uri-escape": { + "version": "3.201.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", + "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-user-agent-browser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.257.0.tgz", + "integrity": "sha512-YdavWK6/8Cw6mypEgysGGX/dT9p9qnzFbnN5PQsUY+JJk2Nx8fKFydjGiQ+6rWPeW17RAv9mmbboh9uPVWxVlw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/types": "3.257.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-user-agent-node": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.259.0.tgz", + "integrity": "sha512-R0VTmNs+ySDDebU98BUbsLyeIM5YmAEr9esPpy15XfSy3AWmAeru8nLlztdaLilHZzLIDzvM2t7NGk/FzZFCvA==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/node-config-provider": "3.259.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==", + "optional": true, + "peer": true, + "requires": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "optional": true, + "peer": true, + "requires": { + "tslib": "^2.3.1" + } + }, + "@digipolis/auth": { + "version": "git+ssh://git@github.com/digipolisantwerp/auth_module_nodejs.git#b157dfa2e2b696c2d080c7446d665edde639ce07", + "from": "@digipolis/auth@git+https://github.com/digipolisantwerp/auth_module_nodejs.git", + "requires": { + "async": "~2.5.0", + "bcryptjs": "^2.4.3", + "express": "^4.16.4", + "lodash.get": "~4.4.2", + "oauth": "~0.9.15", + "request": "^2.88.0", + "url-parse": "^1.4.3", + "uuid": "~3.1.0" + } + }, + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "peer": true + }, + "@types/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==", + "peer": true + }, + "@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "peer": true, + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "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": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "requires": { + "lodash": "^4.14.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "peer": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "optional": true, + "peer": true + }, + "bson": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "peer": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "peer": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "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" + } + }, + "connect-mongo": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-4.6.0.tgz", + "integrity": "sha512-8new4Z7NLP3CGP65Aw6ls3xDBeKVvHRSh39CXuDZTQsvpeeU9oNMzfFgvqmHqZ6gWpxIl663RyoVEmCAGf1yOg==", + "requires": { + "debug": "^4.3.1", + "kruptein": "^3.0.0" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "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": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "requires": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "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-xml-parser": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", + "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "optional": true, + "peer": true, + "requires": { + "strnum": "^1.0.5" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "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==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "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" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "peer": true + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "peer": 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-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "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-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "kruptein": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-3.0.5.tgz", + "integrity": "sha512-c1pyg/HKep8y5l+AoiicTs94k4bnzBSiS1b8NQcnQDtv9Yh45rNLuDIUwEwawmuFYpcA5xqhG7k0LqiMhrBPXw==", + "requires": { + "asn1.js": "^5.4.1" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true, + "peer": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "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.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "mongodb": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.13.0.tgz", + "integrity": "sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==", + "peer": true, + "requires": { + "@aws-sdk/credential-providers": "^3.186.0", + "bson": "^4.7.0", + "mongodb-connection-string-url": "^2.5.4", + "saslprep": "^1.0.3", + "socks": "^2.7.1" + } + }, + "mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "peer": true, + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.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==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==" + }, + "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.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "peer": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "peer": true + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "peer": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "peer": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "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" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "optional": true, + "peer": true + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "peer": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "optional": true, + "peer": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "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" + } + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "~1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "peer": true + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "peer": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } + } +} diff --git a/examples/basic-mongo/package.json b/examples/basic-mongo/package.json index 251ec0d..aecdc74 100644 --- a/examples/basic-mongo/package.json +++ b/examples/basic-mongo/package.json @@ -10,8 +10,8 @@ "license": "ISC", "dependencies": { "@digipolis/auth": "git+https://github.com/digipolisantwerp/auth_module_nodejs.git", - "connect-mongo": "^2.0.3", - "express": "^4.17.1", - "express-session": "^1.16.2" + "connect-mongo": "^4.6.0", + "express": "^4.18.2", + "express-session": "^1.17.3" } } diff --git a/examples/node-hinted-login/index.js b/examples/node-hinted-login/index.js index c1ae8b3..49b6034 100644 --- a/examples/node-hinted-login/index.js +++ b/examples/node-hinted-login/index.js @@ -1,7 +1,8 @@ const express = require('express'); const session = require('express-session'); // for this to work, run npm run build in the root of this repository -const { createRouter } = require('../../'); +const { createRouter } = require('../..'); + const app = express(); const authConfig = { @@ -16,9 +17,9 @@ const authConfig = { 'astad.aprofiel.v1.avatar', 'astad.aprofiel.v1.email', ], - high: ['crspersoon.nationalnumber'] + high: ['crspersoon.nationalnumber'], }, - defaultScopes: ['astad.aprofiel.v1.name',], + defaultScopes: ['astad.aprofiel.v1.name'], url: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1', hooks: { loginSuccess: [ @@ -26,9 +27,9 @@ const authConfig = { console.log(req.query); req.session.user.hookTest = 'hello'; return next(); - } - ] - } + }, + ], + }, }; app.use(session({ diff --git a/examples/node-hinted-login/package-lock.json b/examples/node-hinted-login/package-lock.json index 007cf99..79edb19 100644 --- a/examples/node-hinted-login/package-lock.json +++ b/examples/node-hinted-login/package-lock.json @@ -1,8 +1,207 @@ { "name": "node-hinted-login", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "node-hinted-login", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "env-cmd": "^10.1.0", + "express-session": "^1.17.3" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "dependencies": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + }, + "bin": { + "env-cmd": "bin/env-cmd.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/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==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + } + }, "dependencies": { "commander": { "version": "4.1.1", @@ -10,9 +209,9 @@ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" }, "cookie-signature": { "version": "1.0.6", @@ -52,17 +251,17 @@ } }, "express-session": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz", - "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==", + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", "requires": { - "cookie": "0.4.0", + "cookie": "0.4.2", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~2.0.0", "on-headers": "~1.0.2", "parseurl": "~1.3.3", - "safe-buffer": "5.2.0", + "safe-buffer": "5.2.1", "uid-safe": "~2.1.5" } }, @@ -97,9 +296,9 @@ "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "shebang-command": { "version": "2.0.0", diff --git a/examples/node-hinted-login/package.json b/examples/node-hinted-login/package.json index 0141b35..250f080 100644 --- a/examples/node-hinted-login/package.json +++ b/examples/node-hinted-login/package.json @@ -12,6 +12,6 @@ "license": "ISC", "dependencies": { "env-cmd": "^10.1.0", - "express-session": "^1.17.1" + "express-session": "^1.17.3" } } diff --git a/package-lock.json b/package-lock.json index 5af540f..0b9430a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,64 +9,93 @@ "version": "2.3.4", "license": "ISC", "dependencies": { - "async": "~2.5.0", - "bcryptjs": "^2.4.3", - "cookie": "^0.4.0", - "express": "^4.16.4", - "isomorphic-fetch": "^2.2.1", - "lodash.get": "^4.4.2", - "oauth": "~0.9.15", - "pino": "^6.11.3", - "uuid": "~3.1.0" + "async": "~3.2.4", + "bcryptjs": "~2.4.3", + "cookie": "~0.5.0", + "express": "~4.18.2", + "isomorphic-fetch": "~3.0.0", + "lodash.get": "~4.4.2", + "oauth": "~0.10.0", + "pino": "~8.8.0", + "uuid": "~9.0.0" }, "devDependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/register": "^7.8.3", - "@istanbuljs/nyc-config-babel": "^3.0.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-istanbul": "^6.0.0", - "cross-env": "~5.2.0", - "mocha": "^6.2.0", + "@babel/core": "~7.20.12", + "@babel/plugin-transform-runtime": "~7.19.6", + "@babel/preset-env": "~7.20.2", + "@babel/register": "~7.18.9", + "@babel/runtime-corejs2": "~7.20.13", + "@istanbuljs/nyc-config-babel": "~3.0.0", + "@rollup/plugin-babel": "~6.0.3", + "@rollup/plugin-commonjs": "~24.0.1", + "@rollup/plugin-node-resolve": "~15.0.1", + "babel-plugin-istanbul": "~6.1.1", + "cross-env": "~7.0.3", + "eslint": "~8.33.0", + "eslint-config-airbnb-base": "~15.0.0", + "eslint-plugin-import": "~2.27.5", + "mocha": "~10.2.0", "mockery": "~2.1.0", - "nock": "~9.0.14", - "nyc": "^15.1.0", - "reqres": "~1.3.0", - "rollup-plugin-babel": "^4.3.3" + "nock": "~13.3.0", + "nyc": "~15.1.0", + "reqres": "~3.0.1" } }, - "node_modules/@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, "dependencies": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -76,2590 +105,3175 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@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==", + "node_modules/@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/core/node_modules/@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==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/@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==", + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/@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==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/core/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", + "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/core/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/core/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/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 - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", + "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@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==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@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==", + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@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==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@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==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/helpers": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-call-delegate/node_modules/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 - }, - "node_modules/@babel/helper-call-delegate/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/parser": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "dependencies": { - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-map/node_modules/@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==", + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-map/node_modules/@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==", + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", + "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/helper-define-map/node_modules/@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==", + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-map/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-map/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-define-map/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-map/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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==", + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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==", + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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==", + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", + "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@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==", + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/traverse": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/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 - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/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-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-hoist-variables": { + "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@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==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@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==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "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, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-split-export-declaration": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "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==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/highlight": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@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==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@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 - }, - "node_modules/@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", + "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", "dev": true, "dependencies": { - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", + "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@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==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", + "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/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 - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@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==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@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==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@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==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@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==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/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 - }, - "node_modules/@babel/helper-replace-supers/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@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==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, "dependencies": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access/node_modules/@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==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "node_modules/@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@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==", + "node_modules/@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@babel/runtime-corejs2": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.20.13.tgz", + "integrity": "sha512-K2yRNithMJG4epI509n4ljPjogMhmYCB887iSD7rRecxWC9dkbfJZCPGj0BQaqG3d3Qkpb1SotEmyeMmtnvxhw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "core-js": "^2.6.12", + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@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==", + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@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==", + "node_modules/@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@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==", + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@babel/helper-wrap-function/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/@babel/helper-wrap-function/node_modules/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 - }, - "node_modules/@babel/helper-wrap-function/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@babel/helpers/node_modules/@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==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/helpers/node_modules/@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/@babel/helpers/node_modules/@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==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@babel/helpers/node_modules/@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==", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@babel/helpers/node_modules/@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==", + "node_modules/@istanbuljs/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", "dev": true, - "dependencies": { - "@babel/types": "^7.8.3" + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "@babel/register": "*", + "babel-plugin-istanbul": ">=5" } }, - "node_modules/@babel/helpers/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/helpers/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, - "node_modules/@babel/helpers/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/helpers/node_modules/@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@babel/helpers/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@babel/helpers/node_modules/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 - }, - "node_modules/@babel/helpers/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 8" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "node_modules/@rollup/plugin-babel": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz", + "integrity": "sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "node_modules/@rollup/plugin-commonjs": { + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz", + "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "type-detect": "4.0.8" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "node_modules/@sinonjs/formatio": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", + "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@sinonjs/samsam": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", + "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@sinonjs/commons": "^1.3.0", + "array-from": "^2.1.1", + "lodash": "^4.17.15" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "event-target-shim": "^5.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6.5" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "bin": { + "acorn": "bin/acorn" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@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==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "color-convert": "^1.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=4" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" + "default-require-extensions": "^3.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "sprintf-js": "~1.0.2" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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==", + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { - "@babel/highlight": "^7.8.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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==", + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@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, - "dependencies": { - "@babel/types": "^7.8.3" + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "dev": true, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "dev": true, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "ms": "2.0.0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "balanced-match": "^1.0.0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "fill-range": "^7.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.8.3" - } + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@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==", + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@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, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "@babel/types": "^7.8.3" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" } }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "node_modules/caching-transform/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "semver": "^6.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "node_modules/caniuse-lite": { + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=4" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" + "engines": { + "node": ">= 8.10.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { - "@babel/helper-call-delegate": "^7.8.3", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-parameters/node_modules/@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==", + "node_modules/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==", "dev": true, "dependencies": { - "@babel/types": "^7.8.3" + "color-name": "1.1.3" } }, - "node_modules/@babel/plugin-transform-parameters/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", - "dev": true, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dependencies": { - "regenerator-transform": "^0.14.0" + "safe-buffer": "5.2.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/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==", + "engines": { + "node": ">= 0.6" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "hasInstallScript": true }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "node_modules/core-js-compat": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "browserslist": "^4.21.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "cross-spawn": "^7.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "ms": "2.1.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "engines": { + "node": ">=6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@babel/preset-env/node_modules/@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@babel/register": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", - "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/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, - "dependencies": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@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==", + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "strip-bom": "^4.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "engines": { - "node": ">=8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "node_modules/@istanbuljs/nyc-config-babel": { + "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", - "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "esutils": "^2.0.2" }, - "peerDependencies": { - "@babel/register": "*", - "babel-plugin-istanbul": ">=5" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/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==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", - "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^3.0.6", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 0.4" }, - "peerDependencies": { - "rollup": "^1.20.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@rollup/pluginutils": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", - "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, "dependencies": { - "estree-walker": "^1.0.1" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0" + "node": ">= 0.4" } }, - "node_modules/@types/estree": { + "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true, - "peer": true - }, - "node_modules/@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, "dependencies": { - "@types/node": "*" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "has": "^1.0.3" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/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, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.8.0" } }, - "node_modules/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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" + "node_modules/eslint": { + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "dependencies": { - "default-require-extensions": "^3.0.0" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" }, "engines": { - "node": ">=8" + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" } }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", "dependencies": { - "lodash": "^4.14.0" + "ms": "^2.1.1" } }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, "engines": { - "node": ">=8.0.0" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "object.assign": "^4.1.0" + "ms": "^2.1.1" } }, - "node_modules/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==", + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "dependencies": { - "@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" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" - }, - "node_modules/brace-expansion": { + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", @@ -2669,552 +3283,445 @@ "concat-map": "0.0.1" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - }, - "bin": { - "browserslist": "cli.js" + "esutils": "^2.0.2" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=0.10.0" } }, - "node_modules/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==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/caching-transform/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=10" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/eslint/node_modules/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, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } + "node_modules/eslint/node_modules/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 }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/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==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=6" + "node": ">=10.13.0" } }, - "node_modules/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==", + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/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==", + "node_modules/eslint/node_modules/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, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/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==", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.1" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "browserslist": "^4.8.3", - "semver": "7.0.0" + "brace-expansion": "^1.1.7" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "engines": { + "node": "*" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "cross-spawn": "^6.0.5", - "is-windows": "^1.0.0" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4.8" + "node": ">=8" } }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { - "strip-bom": "^4.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/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==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" + "node": ">=4.0" } }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=4.0" } }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=0.10.0" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/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 - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, - "node_modules/es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "engines": { "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/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=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "engines": { - "node": ">= 0.6" + "node": ">=0.8.x" } }, "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.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", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -3223,537 +3730,508 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/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==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-redact": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8" + "reusify": "^1.0.4" } }, - "node_modules/express/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">= 0.8" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "node_modules/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==", + "dev": true, "dependencies": { - "safe-buffer": "5.1.2" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, - "node_modules/express/node_modules/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==", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" + "ms": "2.0.0" } }, - "node_modules/express/node_modules/ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, "engines": { - "node": ">= 0.10" + "node": ">=6" } }, - "node_modules/express/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" + "node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/express/node_modules/mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "engines": { - "node": ">= 0.6" + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" } }, - "node_modules/express/node_modules/mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, "dependencies": { - "mime-db": "1.40.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.6" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/express/node_modules/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==" - }, - "node_modules/express/node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true }, - "node_modules/express/node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" } }, - "node_modules/express/node_modules/proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">= 0.10" + "node": ">=8.0.0" } }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "engines": { - "node": ">=0.6" + "node": ">= 0.6" } }, - "node_modules/express/node_modules/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==", + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } }, - "node_modules/express/node_modules/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==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.8" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/express/node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, "dependencies": { - "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" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/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==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "node": ">= 0.4" }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/express/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" } }, - "node_modules/fast-redact": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", - "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==", + "node_modules/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==", + "dev": true, "engines": { - "node": ">=6" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">=8.0.0" } }, - "node_modules/flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "dependencies": { - "is-buffer": "~2.0.3" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, - "bin": { - "flat": "cli.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "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" }, "engines": { - "node": ">=8.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 8" + "node": ">= 6" } }, - "node_modules/foreground-child/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/foreground-child/node_modules/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==", + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/foreground-child/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/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, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/foreground-child/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "define-properties": "^1.1.3" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/formatio": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", - "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, "dependencies": { - "samsam": "~1.1" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "node_modules/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, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4.0" } }, - "node_modules/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==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, "dependencies": { - "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" - }, - "engines": { - "node": "*" + "get-intrinsic": "^1.1.1" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { - "node": ">=4.x" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "has-symbols": "^1.0.2" }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hasha": { @@ -3773,12 +4251,15 @@ } }, "node_modules/hasha/node_modules/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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/he": { @@ -3796,6 +4277,21 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -3807,10 +4303,63 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/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, + "engines": { + "node": ">=4" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -3828,7 +4377,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -3836,291 +4385,458 @@ } }, "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "dependencies": { - "loose-envify": "^1.0.0" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/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==", "engines": { - "node": ">=4" + "node": ">= 0.10" } }, - "node_modules/is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/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=", + "node_modules/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==", "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "has": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.0" + "builtin-modules": "^3.3.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/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==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/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==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-hook": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "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, - "dependencies": { - "append-transform": "^2.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-instrument": { + "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true }, - "node_modules/istanbul-lib-processinfo": { + "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-lib-processinfo/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">=0.12.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-lib-processinfo/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/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==", + "node_modules/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, "dependencies": { - "shebang-regex": "^3.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/shebang-regex": { + "node_modules/isomorphic-fetch": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, - "bin": { - "uuid": "bin/uuid" + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, - "bin": { - "node-which": "bin/node-which" + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" }, "engines": { - "node": ">= 8" + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/istanbul-lib-report": { @@ -4137,6 +4853,15 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/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, + "engines": { + "node": ">=8" + } + }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4152,56 +4877,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "ms": "2.1.2" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/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 - }, "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4211,6 +4916,16 @@ "node": ">=8" } }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4218,9 +4933,9 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { "argparse": "^1.0.7", @@ -4242,20 +4957,29 @@ "node": ">=4" } }, + "node_modules/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==", + "dev": true + }, + "node_modules/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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/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=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, "bin": { "json5": "lib/cli.js" }, @@ -4263,84 +4987,186 @@ "node": ">=6" } }, - "node_modules/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==", + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/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, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "leven": "^3.1.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.8.0" } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "chalk": "^2.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lolex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", - "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "color-convert": "^2.0.1" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/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 + }, + "node_modules/log-symbols/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lolex": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", + "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" } }, "node_modules/make-dir": { @@ -4356,10 +5182,19 @@ "node": ">=6" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } @@ -4367,26 +5202,56 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, "engines": { "node": ">= 0.6" } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/minimist": { @@ -4398,133 +5263,165 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/mocha": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", - "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "dependencies": { - "ansi-colors": "3.2.3", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.4", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "node_modules/mocha/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "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" - }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "argparse": "^2.0.1" }, "bin": { - "mkdirp": "bin/cmd.js" + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/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==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mocha/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/mockery": { @@ -4534,106 +5431,100 @@ "dev": true }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/nock": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", - "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, - "engines": [ - "node >= 4.0" - ], - "dependencies": { - "chai": ">=1.9.2 <4.0.0", - "debug": "^2.2.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "~4.17.2", - "mkdirp": "^0.5.0", - "propagate": "0.4.0", - "qs": "^6.0.2", - "semver": "^5.3.0" + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nock/node_modules/chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true, - "dependencies": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" - }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { - "node": ">= 0.4.0" + "node": ">= 0.6" } }, - "node_modules/nock/node_modules/deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "node_modules/nise": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", + "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", "dev": true, "dependencies": { - "type-detect": "0.1.1" - }, - "engines": { - "node": "*" + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "lolex": "^5.0.1", + "path-to-regexp": "^1.7.0" } }, - "node_modules/nock/node_modules/deep-eql/node_modules/type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "node_modules/nise/node_modules/lolex": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", "dev": true, - "engines": { - "node": "*" + "dependencies": { + "@sinonjs/commons": "^1.7.0" } }, - "node_modules/nock/node_modules/type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "node_modules/nise/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, - "engines": { - "node": "*" + "dependencies": { + "isarray": "0.0.1" } }, - "node_modules/node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "node_modules/nock": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dev": true, "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.21", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" } }, "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/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, + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-preload": { @@ -4649,11 +5540,20 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/nyc": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", @@ -4695,15 +5595,6 @@ "node": ">=8.9" } }, - "node_modules/nyc/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4748,16 +5639,10 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/nyc/node_modules/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==", - "dev": true - }, "node_modules/nyc/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { "commondir": "^1.0.1", @@ -4771,35 +5656,16 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/nyc/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "engines": { "node": ">=8" @@ -4820,27 +5686,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -4853,41 +5698,6 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -4902,6 +5712,12 @@ "node": ">=8" } }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, "node_modules/nyc/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -4938,9 +5754,17 @@ } }, "node_modules/oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.10.0.tgz", + "integrity": "sha512-1orQ9MT1vHFGQxhuy7E/0gECD3fd2fCC+PIX+/jgmU/gI3EpRocXtmtvxCO5x3WZ443FLTLFWNDjl5MPJf9u+Q==" + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/object-keys": { "version": "1.1.1", @@ -4952,37 +5776,63 @@ } }, "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-exit-leak-free": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", + "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" + }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -4993,34 +5843,54 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/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==", + "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, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/p-map": { @@ -5059,31 +5929,51 @@ "node": ">=8" } }, + "node_modules/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, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/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=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-parse": { @@ -5095,7 +5985,7 @@ "node_modules/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=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -5103,6 +5993,18 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -5113,34 +6015,45 @@ } }, "node_modules/pino": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", - "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.7", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz", + "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" }, "bin": { "pino": "bin.js" } }, + "node_modules/pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz", + "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==" }, "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, "engines": { "node": ">= 6" } @@ -5157,125 +6070,330 @@ "node": ">=6" } }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "node_modules/pkg-dir/node_modules/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, "dependencies": { - "fromentries": "^1.2.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/propagate": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", - "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", - "dev": true, - "engines": [ - "node >= 0.8.1" - ] - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-limit": "^2.0.0" + }, "engines": { - "node": ">=0.6" + "node": ">=6" } }, - "node_modules/quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "node_modules/regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "dependencies": { - "regenerate": "^1.4.0" - }, "engines": { "node": ">=4" } }, - "node_modules/regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "private": "^0.1.6" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "fromentries": "^1.2.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true + "node_modules/process-warning": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz", + "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==" }, - "node_modules/regjsparser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", - "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dependencies": { - "jsesc": "~0.5.0" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, - "bin": { - "regjsparser": "bin/parser" + "engines": { + "node": ">= 0.10" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "engines": { + "node": ">=6" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", + "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, "dependencies": { "es6-error": "^4.0.1" @@ -5285,19 +6403,19 @@ } }, "node_modules/reqres": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", - "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reqres/-/reqres-3.0.1.tgz", + "integrity": "sha512-1MVCeWvmNPykvIJxcnwMSC1SDKiiLWQoX9rpohXOCoqP0vXpQnscfxNmBo5xs+qhapU4oduSS5amOf41IG+VQw==", "dev": true, "dependencies": { - "express": "^4.15.2", - "sinon": "^1.14.1" + "express": "^4.17.1", + "sinon": "^7.5.0" } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5310,12 +6428,17 @@ "dev": true }, "node_modules/resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5330,6 +6453,16 @@ "node": ">=8" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -5346,131 +6479,257 @@ } }, "node_modules/rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", - "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, + "optional": true, "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - }, "bin": { "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-babel": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", - "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - }, - "peerDependencies": { - "@babel/core": "7 || ^7.0.0-rc.2", - "rollup": ">=0.60.0 <2" + "queue-microtask": "^1.2.2" } }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, "dependencies": { - "estree-walker": "^0.6.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/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==" + "node_modules/safe-stable-stringify": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", + "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", + "engines": { + "node": ">=10" + } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/samsam": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", - "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", - "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", - "dev": true - }, "node_modules/semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/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, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { - "shebang-regex": "^1.0.0" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "node_modules/sinon": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", - "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { - "formatio": "1.1.1", - "lolex": "1.3.2", - "samsam": "1.1.2", - "util": ">=0.10.3 <1" + "kind-of": "^6.0.2" }, "engines": { - "node": ">=0.1.103" + "node": ">=8" } }, - "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "node_modules/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, "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sinon": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz", + "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.4.0", + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/samsam": "^3.3.3", + "diff": "^3.5.0", + "lolex": "^4.2.0", + "nise": "^1.5.2", + "supports-color": "^5.5.0" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/sonic-boom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz", + "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==", + "dependencies": { + "atomic-sleep": "^1.0.0" } }, "node_modules/source-map": { @@ -5483,9 +6742,9 @@ } }, "node_modules/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==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -5524,59 +6783,80 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/spawn-wrap/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, + "node_modules/split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", "engines": { - "node": ">= 8" + "node": ">= 10.x" } }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-bom": { @@ -5589,24 +6869,39 @@ } }, "node_modules/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=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/test-exclude": { @@ -5623,23 +6918,130 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thread-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", + "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/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=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" } }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -5649,6 +7051,32 @@ "node": ">=8" } }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -5658,41 +7086,56 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -5701,7 +7144,7 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } @@ -5732,125 +7175,184 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { - "inherits": "2.0.3" + "punycode": "^2.1.0" } }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { - "uuid": "bin/uuid" + "uuid": "dist/bin/uuid" } }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/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==", + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/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, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/wrap-ansi/node_modules/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==", + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/wrap-ansi/node_modules/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, "dependencies": { - "ansi-regex": "^4.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, + "node_modules/wrap-ansi/node_modules/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 + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/write-file-atomic": { @@ -5866,1560 +7368,615 @@ } }, "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "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": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "engines": { + "node": ">=10" } }, "node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yargs/node_modules/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==", + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } } }, "dependencies": { - "@babel/compat-data": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", - "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, "requires": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true + }, + "@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } } } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" } }, "@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", + "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dev": true, "requires": { - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" } }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" } }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@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==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", + "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.20.7" } }, "@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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" } }, "@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==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@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==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, "requires": { - "lodash": "^4.17.13" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" } }, - "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/types": "^7.20.2" } }, - "@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==", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.20.0" } }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - }, - "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/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@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-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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "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 - }, - "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/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", + "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", + "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-async-generators": { @@ -7431,6 +7988,24 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -7440,6 +8015,24 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -7449,6 +8042,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", @@ -7458,6 +8060,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@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", @@ -7467,1459 +8078,2129 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", + "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", + "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", + "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "regenerator-runtime": "^0.13.11" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "@babel/runtime-corejs2": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.20.13.tgz", + "integrity": "sha512-K2yRNithMJG4epI509n4ljPjogMhmYCB887iSD7rRecxWC9dkbfJZCPGj0BQaqG3d3Qkpb1SotEmyeMmtnvxhw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "core-js": "^2.6.12", + "regenerator-runtime": "^0.13.11" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" } }, - "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "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" - } + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "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==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "@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==", + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "type-fest": "^0.20.2" } }, - "@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==", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "argparse": "^2.0.1" } }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "brace-expansion": "^1.1.7" } }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "brace-expansion": "^1.1.7" } } } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "@istanbuljs/nyc-config-babel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", + "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", + "dev": true, + "requires": {} + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "@rollup/plugin-babel": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz", + "integrity": "sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" } }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "@rollup/plugin-commonjs": { + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz", + "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" }, "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/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/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } } } }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "type-detect": "4.0.8" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "@sinonjs/formatio": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", + "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "@sinonjs/samsam": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", + "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.3.0", + "array-from": "^2.1.1", + "lodash": "^4.17.15" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" } }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, - "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", - "dev": true, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "requires": { - "@babel/helper-call-delegate": "^7.8.3", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { - "@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, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "@babel/types": "^7.8.3" + "ms": "2.0.0" } }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "balanced-match": "^1.0.0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "fill-range": "^7.0.1" } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "dev": true, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "@babel/register": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", - "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.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==", + "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==", "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-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" - } - }, - "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 - } + "color-name": "1.1.3" } }, - "@istanbuljs/nyc-config-babel": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz", - "integrity": "sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==", - "dev": true, - "requires": {} + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "@rollup/plugin-node-resolve": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz", - "integrity": "sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.6", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, - "@rollup/pluginutils": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.8.tgz", - "integrity": "sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==", - "dev": true, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "requires": { - "estree-walker": "^1.0.1" + "safe-buffer": "5.2.1" } }, - "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true, - "peer": true + "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.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", "dev": true }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "core-js-compat": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", "dev": true, "requires": { - "@types/node": "*" + "browserslist": "^4.21.4" } }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, - "peer": true + "requires": { + "cross-spawn": "^7.0.1" + } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "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==", + "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 + }, + "default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "strip-bom": "^4.0.0" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "default-require-extensions": "^3.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "esutils": "^2.0.2" } }, - "array-flatten": { + "ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "requires": { - "lodash": "^4.14.0" - } + "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==", + "dev": true }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, "requires": { - "object.assign": "^4.1.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==", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "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" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" } }, - "balanced-match": { + "es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "has": "^1.0.3" } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "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": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "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==", + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" }, "dependencies": { - "make-dir": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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 + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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 + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "semver": "^6.0.0" + "has-flag": "^4.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "dev": true + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "ms": "^2.1.1" } } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "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==", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "esutils": "^2.0.2" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "brace-expansion": "^1.1.7" } } } }, - "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==", - "dev": true, - "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=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "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=", - "dev": true - }, - "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==", + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, - "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-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "browserslist": "^4.8.3", - "semver": "7.0.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, - "cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "is-windows": "^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" - } - }, - "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=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "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==", + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" } }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "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==", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" + "estraverse": "^5.1.0" } }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "estraverse": "^5.2.0" } }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "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=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "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=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.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", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "dependencies": { - "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" - } - }, - "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" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "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" - } - }, - "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" - } - }, - "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==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "ms": "2.0.0" } }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "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.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "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==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fast-redact": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==" + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "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==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "mime-db": "1.40.0" + "ms": "2.0.0" } }, "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==" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "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" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, - "fast-redact": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", - "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, "find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", @@ -8932,27 +10213,45 @@ } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "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": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "is-buffer": "~2.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } }, "foreground-child": { "version": "2.0.0", @@ -8962,69 +10261,17 @@ "requires": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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" - } - } - } - }, - "formatio": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", - "dev": true, - "requires": { - "samsam": "~1.1" } }, "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "fromentries": { "version": "1.3.2", @@ -9035,19 +10282,43 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "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==", + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, "get-caller-file": { @@ -9056,16 +10327,36 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -9074,6 +10365,36 @@ "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" } }, "globals": { @@ -9082,39 +10403,85 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "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-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, - "has-symbols": { + "has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -9126,9 +10493,9 @@ }, "dependencies": { "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true } } @@ -9145,6 +10512,18 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -9153,10 +10532,39 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { @@ -9168,7 +10576,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -9176,103 +10584,284 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "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-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "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 }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "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==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "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-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "@types/estree": "*" } }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, - "is-callable": { + "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.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 + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, - "is-regex": { + "is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has": "^1.0.1" + "has-symbols": "^1.0.2" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "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 }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" } }, "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==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-hook": { @@ -9285,101 +10874,37 @@ } }, "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { - "@babel/core": "^7.7.5", + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-coverage": "^3.2.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-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, "requires": { "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", "p-map": "^3.0.0", "rimraf": "^3.0.0", - "uuid": "^3.3.3" + "uuid": "^8.3.2" }, "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "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 - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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 - }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "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" - } } } }, @@ -9394,6 +10919,12 @@ "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 + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -9403,52 +10934,44 @@ "semver": "^6.0.0" } }, - "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.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "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==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, + "js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9456,9 +10979,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -9471,84 +10994,173 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "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==", + "dev": true + }, + "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "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=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true }, - "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==", + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "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 + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "leven": "^3.1.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "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": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "chalk": "^2.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "lolex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", - "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", + "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", "dev": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "@jridgewell/sourcemap-codec": "^1.4.13" } }, "make-dir": { @@ -9559,30 +11171,56 @@ "requires": { "pify": "^4.0.1", "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "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.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" } }, "minimist": { @@ -9591,108 +11229,112 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "mocha": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", - "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "requires": { - "ansi-colors": "3.2.3", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.4", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "ms": "^2.1.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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 + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "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" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "argparse": "^2.0.1" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "minimist": "^1.2.5" + "yocto-queue": "^0.1.0" } }, - "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==", - "dev": true + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } }, "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } @@ -9704,94 +11346,81 @@ "dev": true }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, - "nock": { - "version": "9.0.28", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.0.28.tgz", - "integrity": "sha512-MXGP3NA+I8BpwF8r2LnK9N1Dwz69N82peP9Ht3G9EMUAKHK73relYI8Pjik9AwvGSVV0kAo6KA20IbKsCjNyIA==", + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "nise": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", + "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", "dev": true, "requires": { - "chai": ">=1.9.2 <4.0.0", - "debug": "^2.2.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "~4.17.2", - "mkdirp": "^0.5.0", - "propagate": "0.4.0", - "qs": "^6.0.2", - "semver": "^5.3.0" + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "lolex": "^5.0.1", + "path-to-regexp": "^1.7.0" }, "dependencies": { - "chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "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": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" + "@sinonjs/commons": "^1.7.0" } }, - "deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { - "type-detect": "0.1.1" - }, - "dependencies": { - "type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true - } + "isarray": "0.0.1" } - }, - "type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", - "dev": true } } }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "nock": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dev": true, "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.21", + "propagate": "^2.0.0" } }, "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "whatwg-url": "^5.0.0" } }, - "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-preload": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", @@ -9802,9 +11431,15 @@ } }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "nyc": { @@ -9842,12 +11477,6 @@ "yargs": "^15.0.2" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -9883,16 +11512,10 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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==", - "dev": true - }, "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { "commondir": "^1.0.1", @@ -9900,29 +11523,16 @@ "pkg-dir": "^4.1.0" } }, - "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" - } - }, - "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 - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" } }, "make-dir": { @@ -9934,21 +11544,6 @@ "semver": "^6.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" - } - }, - "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", @@ -9958,32 +11553,6 @@ "find-up": "^4.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "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" - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -9995,6 +11564,12 @@ "strip-ansi": "^6.0.0" } }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -10027,9 +11602,14 @@ } }, "oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.10.0.tgz", + "integrity": "sha512-1orQ9MT1vHFGQxhuy7E/0gECD3fd2fCC+PIX+/jgmU/gI3EpRocXtmtvxCO5x3WZ443FLTLFWNDjl5MPJf9u+Q==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "object-keys": { "version": "1.1.1", @@ -10038,31 +11618,48 @@ "dev": true }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, + "on-exit-leak-free": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", + "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" + }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { "ee-first": "1.1.1" } @@ -10070,28 +11667,42 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" } }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "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==", + "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.0.0" + "p-limit": "^2.2.0" } }, "p-map": { @@ -10121,22 +11732,36 @@ "release-zalgo": "^1.0.0" } }, + "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" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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 }, "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=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { @@ -10148,7 +11773,7 @@ "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=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "picocolors": { "version": "1.0.0", @@ -10156,6 +11781,12 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -10163,31 +11794,42 @@ "dev": true }, "pino": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", - "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.7", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz", + "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==", + "requires": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" + } + }, + "pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "requires": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" } }, "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz", + "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==" }, "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" - } + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true }, "pkg-dir": { "version": "3.0.0", @@ -10196,14 +11838,55 @@ "dev": true, "requires": { "find-up": "^3.0.0" + }, + "dependencies": { + "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" + } + }, + "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-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" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } } }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -10213,71 +11896,172 @@ "fromentries": "^1.2.0" } }, + "process-warning": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz", + "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==" + }, "propagate": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", - "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "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.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", + "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "requires": { - "regenerate": "^1.4.0" + "regenerate": "^1.4.2" } }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "requires": { - "private": "^0.1.6" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dev": true, "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", "dev": true }, "regjsparser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", - "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -10286,7 +12070,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true } } @@ -10294,26 +12078,26 @@ "release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, "requires": { "es6-error": "^4.0.1" } }, "reqres": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reqres/-/reqres-1.3.0.tgz", - "integrity": "sha1-gqK4VIbLtpCzaZE1K3nLfQeleK8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reqres/-/reqres-3.0.1.tgz", + "integrity": "sha512-1MVCeWvmNPykvIJxcnwMSC1SDKiiLWQoX9rpohXOCoqP0vXpQnscfxNmBo5xs+qhapU4oduSS5amOf41IG+VQw==", "dev": true, "requires": { - "express": "^4.15.2", - "sinon": "^1.14.1" + "express": "^4.17.1", + "sinon": "^7.5.0" } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "require-main-filename": { @@ -10323,12 +12107,14 @@ "dev": true }, "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-from": { @@ -10337,6 +12123,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -10347,112 +12139,199 @@ } }, "rollup": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", - "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, + "optional": true, "peer": true, "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safe-stable-stringify": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", + "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } } }, - "rollup-plugin-babel": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", - "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" + "randombytes": "^2.1.0" } }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", - "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "shebang-command": { + "setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "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": "^1.0.0" + "shebang-regex": "^3.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=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "sinon": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", - "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz", + "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==", "dev": true, "requires": { - "formatio": "1.1.1", - "lolex": "1.3.2", - "samsam": "1.1.2", - "util": ">=0.10.3 <1" + "@sinonjs/commons": "^1.4.0", + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/samsam": "^3.3.3", + "diff": "^3.5.0", + "lolex": "^4.2.0", + "nise": "^1.5.2", + "supports-color": "^5.5.0" + }, + "dependencies": { + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + } } }, "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz", + "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==", "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" + "atomic-sleep": "^1.0.0" } }, "source-map": { @@ -10462,9 +12341,9 @@ "dev": true }, "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==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -10493,47 +12372,65 @@ "requires": { "semver": "^6.0.0" } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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" - } } } }, + "split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -10543,20 +12440,26 @@ "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=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -10566,18 +12469,111 @@ "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "thread-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", + "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", + "requires": { + "real-require": "^0.2.0" } }, "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=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, + "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==", + "dev": true, + "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==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "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", @@ -10585,6 +12581,26 @@ "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" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -10594,38 +12610,50 @@ "is-typedarray": "^1.0.0" } }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true }, "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "update-browserslist-db": { "version": "1.0.10", @@ -10637,102 +12665,144 @@ "picocolors": "^1.0.0" } }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { - "inherits": "2.0.3" + "punycode": "^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=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" } }, + "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 + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, "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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "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==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "color-convert": "^2.0.1" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "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": { - "ansi-regex": "^4.1.0" + "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 } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "write-file-atomic": { @@ -10748,77 +12818,69 @@ } }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "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": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "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" - } - } + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true }, "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index a0bcbff..81e814e 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,9 @@ "main": "dist/index.cjs.js", "module": "dist/index.es.js", "scripts": { - "build": "npx rollup -c", + "build": "npx rollup -c --exports default", "prepublish": "npm run build", + "lint": "eslint . --ext .js", "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" }, "publishConfig": { @@ -20,29 +21,35 @@ "author": "", "license": "ISC", "dependencies": { - "async": "~2.5.0", - "bcryptjs": "^2.4.3", - "cookie": "^0.4.0", - "express": "^4.16.4", - "isomorphic-fetch": "^2.2.1", - "lodash.get": "^4.4.2", - "oauth": "~0.9.15", - "pino": "^6.11.3", - "uuid": "~3.1.0" + "async": "~3.2.4", + "bcryptjs": "~2.4.3", + "cookie": "~0.5.0", + "express": "~4.18.2", + "isomorphic-fetch": "~3.0.0", + "lodash.get": "~4.4.2", + "oauth": "~0.10.0", + "pino": "~8.8.0", + "uuid": "~9.0.0" }, "devDependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/register": "^7.8.3", - "@istanbuljs/nyc-config-babel": "^3.0.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-istanbul": "^6.0.0", - "cross-env": "~5.2.0", - "mocha": "^6.2.0", + "@babel/core": "~7.20.12", + "@babel/plugin-transform-runtime": "~7.19.6", + "@babel/preset-env": "~7.20.2", + "@babel/register": "~7.18.9", + "@babel/runtime-corejs2": "~7.20.13", + "@istanbuljs/nyc-config-babel": "~3.0.0", + "@rollup/plugin-babel": "~6.0.3", + "@rollup/plugin-commonjs": "~24.0.1", + "@rollup/plugin-node-resolve": "~15.0.1", + "babel-plugin-istanbul": "~6.1.1", + "cross-env": "~7.0.3", + "eslint": "~8.33.0", + "eslint-config-airbnb-base": "~15.0.0", + "eslint-plugin-import": "~2.27.5", + "mocha": "~10.2.0", "mockery": "~2.1.0", - "nock": "~9.0.14", - "nyc": "^15.1.0", - "reqres": "~1.3.0", - "rollup-plugin-babel": "^4.3.3" + "nock": "~13.3.0", + "nyc": "~15.1.0", + "reqres": "~3.0.1" } } diff --git a/rollup.config.js b/rollup.config.js index 377362a..758f7da 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,8 @@ -import pkg from './package.json'; import resolve from '@rollup/plugin-node-resolve'; -import babel from 'rollup-plugin-babel'; +import babel from '@rollup/plugin-babel'; +import commonjs from '@rollup/plugin-commonjs'; +import pkg from './package.json'; + export default { input: 'src/index.js', output: [ @@ -9,10 +11,13 @@ export default { ], plugins: [ resolve(), + commonjs({ + requireReturnsDefault: 'auto', + }), babel({ exclude: 'node_modules/**', // only transpile our source code, - runtimeHelpers: true, + babelHelpers: 'runtime', }), ], - external: [...Object.keys(pkg.dependencies)] + external: [...Object.keys(pkg.dependencies)], }; diff --git a/src/accessToken.js b/src/accessToken.js index 4da8091..a31bc4f 100644 --- a/src/accessToken.js +++ b/src/accessToken.js @@ -3,19 +3,20 @@ import { OAuth2 } from 'oauth'; const tokenStore = {}; const ACCESS_TOKEN_PATH = '/oauth2/token'; const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin + function createUserToken(results, refreshToken) { return { accessToken: results.access_token, refreshToken, expiresIn: new Date(new Date().getTime() + (results.expires_in * 1000) - EXPIRY_MARGIN), - isRefreshing: false - } + isRefreshing: false, + }; } function getNewAccessToken(clientId, clientSecret, url) { const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); return new Promise((resolve, reject) => { - oauth2.getOAuthAccessToken('', { grant_type: 'client_credentials' }, (err, accessToken, refreshToken, results) => { + oauth2.getOAuthAccessToken('', { grant_type: 'client_credentials' }, (err, accessToken, _refreshToken, results) => { if (err) { return reject(err); } @@ -28,7 +29,6 @@ function getNewAccessToken(clientId, clientSecret, url) { }); } - export function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url) { const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); @@ -36,35 +36,36 @@ export function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, oauth2.getOAuthAccessToken( code, { grant_type: 'authorization_code' }, - (err, accessToken, refreshToken, results) => { + (err, _accessToken, refreshToken, results) => { if (err) { return reject(err); } const userToken = createUserToken(results, refreshToken); return resolve(userToken); - }); - }) + }, + ); + }); } -export function refreshToken(token, clientId, clientSecret, url) { +export function refreshAccessToken(token, clientId, clientSecret, url) { const oauth2 = new OAuth2(clientId, clientSecret, url, null, ACCESS_TOKEN_PATH); return new Promise((resolve, reject) => { oauth2.getOAuthAccessToken( token.refreshToken, - { 'grant_type': 'refresh_token' }, - (err, accessToken, refreshToken, results) => { + { grant_type: 'refresh_token' }, + (err, _accessToken, refreshToken, results) => { if (err) { return reject(err); } const userToken = createUserToken(results, refreshToken); - return resolve(userToken) - }); + return resolve(userToken); + }, + ); }); } - export async function getAccessToken(clientId, clientSecret, url) { if (tokenStore.token && tokenStore.token.expiresIn > Date.now()) { return tokenStore.token.accessToken; @@ -73,5 +74,3 @@ export async function getAccessToken(clientId, clientSecret, url) { tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); return tokenStore.token.accessToken; } - - diff --git a/src/authMethods.js b/src/authMethods.js index d08ef37..f1c3640 100644 --- a/src/authMethods.js +++ b/src/authMethods.js @@ -6,38 +6,38 @@ export default { 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', - 'fas-citizen-eid' + 'fas-citizen-eid', ], substantial: [ 'fas-citizen-bmid', 'fas-citizen-otp', 'fas-citizen-totp', - 'fas-citizen-eid' + 'fas-citizen-eid', ], high: [ - 'fas-citizen-eid' - ] + 'fas-citizen-eid', + ], }, enterprise: { substantial: [ 'fas-enterprise-bmid', 'fas-enterprise-otp', 'fas-enterprise-totp', - 'fas-enterprise-eid' + 'fas-enterprise-eid', ], high: [ - 'fas-enterprise-eid' - ] + 'fas-enterprise-eid', + ], }, 'enterprise-citizen': { substantial: [ 'fas-hintedlogin-bmid', 'fas-hintedlogin-otp', 'fas-hintedlogin-totp', - 'fas-hintedlogin-eid' + 'fas-hintedlogin-eid', ], high: [ - 'fas-hintedlogin-eid' - ] - } -} + 'fas-hintedlogin-eid', + ], + }, +}; diff --git a/src/controller.js b/src/controller.js index da2e23c..c9f96e8 100644 --- a/src/controller.js +++ b/src/controller.js @@ -1,6 +1,7 @@ +/* eslint-disable camelcase */ +import * as uuid from 'uuid'; import bcrypt from 'bcryptjs'; import qs from 'querystring'; -import uuid from 'uuid'; import pino from 'pino'; import getProp from 'lodash.get'; @@ -32,36 +33,36 @@ export default function createController(config) { level: logLevel, }); - let { + const { preLogin: preLoginHooks = [], preLogout: preLogoutHooks = [], loginSuccess: loginSuccessHooks = [], logoutSuccess: logoutSuccessHooks = [], } = hooks; - loginSuccessHooks.push( createAssuranceLevelAndAuthMethodHook(config), - createDetermineLoginTypeHook(config) + createDetermineLoginTypeHook(config), ); logoutSuccessHooks.push(createDeleteSessionsHook(config)); - const service = createService(config); function determineScopes(options) { - let scopes = [...defaultScopes]; + const scopes = [...defaultScopes]; if (!options.scopeGroups) { return scopes.join(' '); } - const groups = Array.isArray(options.scopeGroups) ? scopeGroups : options.scopeGroups.split(','); - groups.forEach(group => { + const groups = Array.isArray(options.scopeGroups) + ? scopeGroups + : options.scopeGroups.split(','); + groups.forEach((group) => { if (scopeGroups[group]) { scopes.push(...scopeGroups[group]); } - }) + }); return scopes.join(' '); } @@ -69,11 +70,14 @@ export default function createController(config) { let { auth_methods = false, minimal_assurance_level = 'low', - context = 'citizen' + context = 'citizen', } = options; if (auth_methods && auth_methods.length > 0) { - auth_methods = auth_methods.replace('astad.aprofiel.v1', 'iam-aprofiel-userpass'); + auth_methods = auth_methods.replace( + 'astad.aprofiel.v1', + 'iam-aprofiel-userpass', + ); return auth_methods; } @@ -83,12 +87,17 @@ export default function createController(config) { } if (!['low', 'substantial', 'high'].includes(minimal_assurance_level)) { - logger.info(`${minimal_assurance_level} not known, fallback to lowest available`); + logger.info( + `${minimal_assurance_level} not known, fallback to lowest available`, + ); minimal_assurance_level = 'low'; } // enterprise does not have low. - if (['enterprise', 'enterprise-citizen'].includes(context) && minimal_assurance_level === 'low') { + if ( + ['enterprise', 'enterprise-citizen'].includes(context) + && minimal_assurance_level === 'low' + ) { minimal_assurance_level = 'substantial'; } @@ -106,18 +115,19 @@ export default function createController(config) { save_consent, response_type: 'code', auth_methods: determineAuthMethods(options), - minimal_assurance_level: options.minimal_assurance_level || fallbackAssuranceLevel - } + minimal_assurance_level: + options.minimal_assurance_level || fallbackAssuranceLevel, + }; if (options.lng) { query.lng = options.lng; } - if(force_auth) { + if (force_auth) { query.force_auth = true; } - Object.keys(query).forEach(key => { + Object.keys(query).forEach((key) => { if (query[key] == null) { delete query[key]; } @@ -126,12 +136,16 @@ export default function createController(config) { return `${oauthHost}/v2/authorize?${qs.stringify(query)}`; } - function createLogoutUrl({ userId, token, redirectUri, authenticationMethod = 'iam-aprofiel-userpass' }) { - + function createLogoutUrl({ + userId, + token, + redirectUri, + authenticationMethod = 'iam-aprofiel-userpass', + }) { const data = JSON.stringify({ user_id: userId, access_token: token, - redirect_uri: redirectUri + redirect_uri: redirectUri, }); const query = { @@ -147,67 +161,70 @@ export default function createController(config) { const host = getHost(req); const stateKey = uuid.v4(); const url = createLoginUrl(host, stateKey, req.query); - req.session[`loginKey`] = stateKey; + req.session.loginKey = stateKey; req.session.fromUrl = req.query.fromUrl || '/'; - runHooks(preLoginHooks, req, res, () => { - return req.session.save(() => res.redirect(url)); - }); + runHooks(preLoginHooks, req, res, () => req.session.save(() => res.redirect(url))); } function isLoggedin(req, res) { if (!req.session[objectKey]) { return res.json({ - isLoggedin: false + isLoggedin: false, }); } return res.json({ isLoggedin: true, - [objectKey]: req.session[objectKey] + [objectKey]: req.session[objectKey], }); } async function loginCallback(req, res) { logger.debug('login callback triggered'); if (!req.query.code || !req.query.state) { - logger.error(`code or state not in query params`); + logger.error('code or state not in query params'); return res.redirect(errorRedirect); } - if (req.query.state !== req.session[`loginKey`]) { - logger.error(`state ${req.query.state} does not match loginKey ${req.session['loginKey']}`); + if (req.query.state !== req.session.loginKey) { + logger.error( + `state ${req.query.state} does not match loginKey ${req.session.loginKey}`, + ); let loginUrl = `${basePath}/login`; - const fromUrl = req.session.fromUrl; + const { fromUrl } = req.session; if (fromUrl) { loginUrl = `${loginUrl}?fromUrl=${fromUrl}`; } return res.redirect(loginUrl); } - - delete req.session[`loginKey`]; + delete req.session.loginKey; try { logger.debug('fetch user with code'); const { user, userToken } = await service.loginUser(req.query.code); + req.session[objectKey] = user; req.session[`${objectKey}Token`] = userToken; logger.debug('run hooks'); - runHooks(loginSuccessHooks, req, res, (error) => { + return runHooks(loginSuccessHooks, req, res, (error) => { if (error) { logger.error(error); return res.redirect(errorRedirect); } const username = getProp(user, 'dataSources.aprofiel.username'); - logger.debug(`finished hooks, redirecting ${username} to ${req.session.fromUrl || '/'}`); - req.session.save(() => res.redirect(req.session.fromUrl || '/')); + logger.debug( + `finished hooks, redirecting ${username} to ${ + req.session.fromUrl || '/' + }`, + ); + return req.session.save(() => res.redirect(req.session.fromUrl || '/')); }); } catch (err) { logger.error(err, 'error during logincallback'); return res.redirect(errorRedirect); } - } function logoutCallback(req, res) { @@ -223,13 +240,12 @@ export default function createController(config) { } function logout(req, res) { - const logoutFromUrl = req.query.fromUrl || req.query.fromurl || '/'; if (!req.session[objectKey]) { return res.redirect(logoutFromUrl); } - const token = req.session[`${objectKey}Token`] + const token = req.session[`${objectKey}Token`]; req.session.logoutFromUrl = logoutFromUrl; // used to prevent eventhandler from deleting this application req.session.isLogoutOrigin = true; @@ -237,11 +253,12 @@ export default function createController(config) { redirectUri: `${getHost(req)}${basePath}/logout/callback`, token: token.accessToken, userId: req.session[objectKey].profile.id, - authenticationMethod: req.session[objectKey].authenticationMethod + authenticationMethod: req.session[objectKey].authenticationMethod, }; const logoutUrl = createLogoutUrl(logoutParams); - runHooks(preLogoutHooks, req, res, () => { - req.session.save(() => res.redirect(logoutUrl)); + // eslint-disable-next-line arrow-body-style + return runHooks(preLogoutHooks, req, res, () => { + return req.session.save(() => res.redirect(logoutUrl)); }); } @@ -249,7 +266,7 @@ export default function createController(config) { const { headerKey = 'x-logout-token', securityHash = '', - sessionStoreLogoutAdapter: adapter = false + sessionStoreLogoutAdapter: adapter = false, } = config.logout || {}; const token = req.get(headerKey) || ''; @@ -266,13 +283,11 @@ export default function createController(config) { await adapter(objectKey, accessTokenKey, req.body); return res.sendStatus(200); } catch (err) { - console.log('error during logout event', err); return res.status(500).json(err); } } async function refreshToken(req, res, next) { - if (!refresh) { return next(); } @@ -299,6 +314,6 @@ export default function createController(config) { isLoggedin, loginCallback, refreshToken, - loggedoutEvent - } + loggedoutEvent, + }; } diff --git a/src/helpers.js b/src/helpers.js index 34e4820..aa7fe0a 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -1,7 +1,7 @@ import async from 'async'; import { createHash, - createCipheriv + createCipheriv, } from 'crypto'; const ALGORITHM = 'aes-128-ctr'; @@ -9,7 +9,7 @@ const ALGORITHM = 'aes-128-ctr'; export function logoutEncrypt(text, password) { const hash = createHash('sha1'); hash.update(password); - const key = hash.digest().slice(0, 16); + const key = Uint8Array.prototype.slice.call(hash.digest(), 0, 16); const ivBuffer = Buffer.alloc(16); const cipher = createCipheriv(ALGORITHM, key, ivBuffer); let crypted = cipher.update(text, 'utf8', 'hex'); @@ -18,18 +18,16 @@ export function logoutEncrypt(text, password) { } export function getHost(req) { - return `${req.protocol}://${req.get('host')}` + return `${req.protocol}://${req.get('host')}`; } - - export function runHooks(configuredHook, req, res, next) { if (!configuredHook || !Array.isArray(configuredHook)) { - return next(); + next(); } const hooks = configuredHook - .map(hook => (cb) => hook(req, res, cb)); + .map((hook) => (cb) => hook(req, res, cb)); async.series(hooks, next); -} \ No newline at end of file +} diff --git a/src/hooks/assuranceLevelAndAuthMethod.js b/src/hooks/assuranceLevelAndAuthMethod.js index e357fa7..5f48876 100644 --- a/src/hooks/assuranceLevelAndAuthMethod.js +++ b/src/hooks/assuranceLevelAndAuthMethod.js @@ -1,13 +1,9 @@ -import cookieParser from 'cookie'; -import { getSessions } from '../sessionStore'; import assuranceLevelMapping from './authMethodAssuranceLevelMapping'; - export default function createAssuranceLevelAndAuthMethodHook({ key = 'user', }) { - - return (req, res, next) => { + return (req, _res, next) => { let { method, } = req.query; @@ -18,5 +14,5 @@ export default function createAssuranceLevelAndAuthMethodHook({ req.session[key].authenticationMethod = method || 'iam-aprofiel-userpass'; return next(); - } + }; } diff --git a/src/hooks/authMethodAssuranceLevelMapping.js b/src/hooks/authMethodAssuranceLevelMapping.js index 844f57c..fe5a12f 100644 --- a/src/hooks/authMethodAssuranceLevelMapping.js +++ b/src/hooks/authMethodAssuranceLevelMapping.js @@ -2,7 +2,6 @@ * the following script can be used to automatically generate this mapping */ - // import authMethodsConfig from '../authMethods'; // const authMethodsAssuranceLevel = Object @@ -41,5 +40,5 @@ export default { 'fas-hintedlogin-bmid': 'substantial', 'fas-hintedlogin-otp': 'substantial', 'fas-hintedlogin-totp': 'substantial', - 'fas-hintedlogin-eid': 'high' -} + 'fas-hintedlogin-eid': 'high', +}; diff --git a/src/hooks/deleteSessions.js b/src/hooks/deleteSessions.js index a554a4b..df354c0 100644 --- a/src/hooks/deleteSessions.js +++ b/src/hooks/deleteSessions.js @@ -9,7 +9,7 @@ export default function createDeleteSessionsHook(options) { consentUrl, ssoCookieName = 'dgp.auth.ssokey', } = options; - return async (req, res, next) => { + return async (req, _res, next) => { const cookieHeader = req.get('cookie'); if (!cookieHeader) { @@ -23,15 +23,12 @@ export default function createDeleteSessionsHook(options) { } try { - console.log(clientId, clientSecret); const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); - console.log('accesstoken', accessToken); await deleteSessions(consentUrl, ssoKey, accessToken); } catch (exception) { - console.log('the exception is here'); - console.log(exception); + next(exception); } return next(); }; -} \ No newline at end of file +} diff --git a/src/hooks/determineLoginType.js b/src/hooks/determineLoginType.js index 7a2ddd4..8f135d3 100644 --- a/src/hooks/determineLoginType.js +++ b/src/hooks/determineLoginType.js @@ -1,11 +1,8 @@ - - export default function createDetermineLoginTypeMiddleware({ key = 'user', }) { - - return (req, res, next) => { - let { + return (req, _res, next) => { + const { hinted = false, method = '', } = req.query; @@ -21,6 +18,5 @@ export default function createDetermineLoginTypeMiddleware({ req.session[key].type = type; return next(); - } - + }; } diff --git a/src/index.js b/src/index.js index 141b715..bbb84ed 100644 --- a/src/index.js +++ b/src/index.js @@ -1,23 +1,21 @@ import createRouter from './router'; import createSsoMiddleware from './middleware/sso'; - const REQUIRED_CONFIG_PROPS = [ - 'clientId', + 'clientId', 'clientSecret', - 'oauthHost' + 'oauthHost', ]; function validateConfig(config) { - - REQUIRED_CONFIG_PROPS.forEach(prop => { - if(config[prop] == null) { + REQUIRED_CONFIG_PROPS.forEach((prop) => { + if (config[prop] == null) { throw new Error(`${prop} is required config`); } }); } -const toExport = { +const toExport = { createRouter: (app, config) => { validateConfig(config); return createRouter(app, config); @@ -25,7 +23,7 @@ const toExport = { createSsoMiddleware: (config) => { validateConfig(config); return createSsoMiddleware(config); - } + }, }; export default toExport; diff --git a/src/middleware/sso.js b/src/middleware/sso.js index 2dfcabb..62fbbf8 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -4,7 +4,6 @@ import pino from 'pino'; import { getSessions } from '../sessionStore'; import { getAccessToken } from '../accessToken'; - function getFallbackFromUrl(req, port) { return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; } @@ -15,7 +14,7 @@ function getFromUrl(req, port) { } function getSessionWithAssuranceLevel(sessions, assuranceLevel) { - return sessions.find(session => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); + return sessions.find((session) => session.assuranceLevel === assuranceLevel && !session.authenticationMethod.includes('mprofiel')); } export default function sso(options) { @@ -53,17 +52,13 @@ export default function sso(options) { return next(); } - - const user = req.session[key] || {}; const assuranceLevel = user.assuranceLevel || 'none'; - if (assuranceLevel === 'high') { return next(); } - try { const accessToken = await getAccessToken(clientId, clientSecret, consentUrl); const { sessions = [] } = await getSessions(consentUrl, ssoKey, accessToken); @@ -76,7 +71,7 @@ export default function sso(options) { const highSession = getSessionWithAssuranceLevel(sessions, 'high'); if (highSession) { - logger.debug(`redirect with ${highSession.authenticationMethod}`) + logger.debug(`redirect with ${highSession.authenticationMethod}`); return res.redirect(`${baseRedirectUrl}&auth_methods=${highSession.authenticationMethod}`); } @@ -86,7 +81,7 @@ export default function sso(options) { const substantialSession = getSessionWithAssuranceLevel(sessions, 'substantial'); if (substantialSession) { - logger.debug(`redirect with ${substantialSession.authenticationMethod}`) + logger.debug(`redirect with ${substantialSession.authenticationMethod}`); return res.redirect(`${baseRedirectUrl}&auth_methods=${substantialSession.authenticationMethod}`); } @@ -94,16 +89,14 @@ export default function sso(options) { return next(); } - const lowSession = getSessionWithAssuranceLevel(sessions, 'low') + const lowSession = getSessionWithAssuranceLevel(sessions, 'low'); if (lowSession) { return res.redirect(`${baseRedirectUrl}&auth_methods=iam-aprofiel-userpass`); } - } catch (exception) { - console.log(exception); + logger.error(exception); } return next(); - } + }; } - diff --git a/src/router.js b/src/router.js index 5fc734e..96bae47 100644 --- a/src/router.js +++ b/src/router.js @@ -1,16 +1,15 @@ import { Router, json } from 'express'; import createController from './controller'; -function preventBrowserCache(req, res, next) { +function preventBrowserCache(_req, res, next) { res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); res.header('Expires', '-1'); res.header('Vary', '*'); res.header('Pragma', 'no-cache'); return next(); -}; +} export default function loadRoutes(app, config) { - const { basePath = '/auth' } = config; const { loginCallback, @@ -19,11 +18,11 @@ export default function loadRoutes(app, config) { isLoggedin, logoutCallback, loggedoutEvent, - refreshToken + refreshToken, } = createController(config); const router = new Router(); - // warning printen als trust proxy niet enabled is? of standaard enablen? + // print warning if trust proxy is not enabled? or enable by default? router.get(`${basePath}/login/callback`, preventBrowserCache, loginCallback); router.get(`${basePath}/login`, preventBrowserCache, login); router.get(`${basePath}/logout`, preventBrowserCache, logout); @@ -33,4 +32,4 @@ export default function loadRoutes(app, config) { app.use(refreshToken); return router; -}; +} diff --git a/src/service.js b/src/service.js index 3c9df4c..04e7530 100644 --- a/src/service.js +++ b/src/service.js @@ -1,4 +1,6 @@ -import { getUserTokenFromAuthorizationCode, refreshToken } from './accessToken'; +import fetch from 'isomorphic-fetch'; + +import { getUserTokenFromAuthorizationCode, refreshAccessToken } from './accessToken'; export default function createService(config) { const { @@ -12,9 +14,9 @@ export default function createService(config) { `${url}/me`, { headers: { - Authorization: `bearer ${token}` - } - } + Authorization: `bearer ${token}`, + }, + }, ); const body = await response.json(); @@ -26,19 +28,18 @@ export default function createService(config) { } async function loginUser(code) { - const userToken = await getUserTokenFromAuthorizationCode(code, clientId, clientSecret, url); const user = await requestUserWithToken(userToken.accessToken); return { user, userToken }; } function refresh(token) { - return refreshToken(token, clientId, clientSecret, url); + return refreshAccessToken(token, clientId, clientSecret, url); } return { loginUser, requestUserWithToken, - refresh + refresh, }; } diff --git a/src/sessionStore.js b/src/sessionStore.js index 492091c..47f4d09 100644 --- a/src/sessionStore.js +++ b/src/sessionStore.js @@ -1,4 +1,3 @@ - import fetch from 'isomorphic-fetch'; export async function getSessions(consentUrl, ssoKey, accessToken) { @@ -21,7 +20,6 @@ export async function getSessions(consentUrl, ssoKey, accessToken) { return body; } - export async function deleteSessions(consentUrl, ssoKey, accessToken) { const response = await fetch( `${consentUrl}/sessions/${ssoKey}`, @@ -33,7 +31,7 @@ export async function deleteSessions(consentUrl, ssoKey, accessToken) { }, ); - if(!response.ok) { + if (!response.ok) { throw new Error('failed to delete sessions'); } diff --git a/test/isLoggedin.js b/test/isLoggedin.js index 4eed85b..ebe94b6 100644 --- a/test/isLoggedin.js +++ b/test/isLoggedin.js @@ -1,36 +1,33 @@ -'use strict'; - +import assert from 'assert'; +import reqres from 'reqres'; import createRouter from '../src/router'; import correctConfig from './mocks/correctConfig'; +import user from './mocks/user.json'; const mockExpress = require('express')(); -const assert = require('assert'); -const reqres = require('reqres'); -const user = require('./mocks/user.json'); -describe('GET /isLoggedin', function onDescribe() { - it('#isLoggedin() should return user of session', function onIt(done) { +describe('GET /isLoggedin', () => { + it('#isLoggedin() should return user of session', (done) => { const router = createRouter(mockExpress, correctConfig); const req = reqres.req({ url: '/auth/isloggedin', session: { - user: user, - mprofiel: user - } + user, + mprofiel: user, + }, }); const res = reqres.res({ - header: () => {} + header: () => {}, }); res.on('end', () => { - assert( res.json.calledWith({ - user: user, - isLoggedin: true - }) + user, + isLoggedin: true, + }), ); return done(); @@ -39,24 +36,24 @@ describe('GET /isLoggedin', function onDescribe() { router.handle(req, res); }); - it('#isLoggedin() should return false when no user', function onIt(done) { + it('#isLoggedin() should return false when no user', (done) => { const router = createRouter(mockExpress, correctConfig); const req = reqres.req({ url: '/auth/isloggedin', session: { - save: cb => cb() - } + save: (cb) => cb(), + }, }); const res = reqres.res({ - header: () => {} + header: () => {}, }); res.on('end', () => { assert( res.json.calledWith({ isLoggedin: false, - }) + }), ); return done(); }); diff --git a/test/loggedout.js b/test/loggedout.js index 2e9fc2a..be36046 100644 --- a/test/loggedout.js +++ b/test/loggedout.js @@ -1,39 +1,34 @@ -const assert = require('assert'); -const bcrypt = require('bcryptjs'); -const reqres = require('reqres'); -const uuid = require('uuid'); - - -const mockExpress = require('express')(); +import * as uuid from 'uuid'; +import assert from 'assert'; +import bcrypt from 'bcryptjs'; +import reqres from 'reqres'; import createRouter from '../src/router'; import correctConfig from './mocks/correctConfig'; -describe('POST /event/loggedout', function onDescribe() { - const adapterPromiseResolve = () => { - return new Promise((resolve) => { - setTimeout(() => resolve(), 1000); - }) - }; +const mockExpress = require('express')(); - const adapterPromiseReject = () => { - return new Promise((resolve, reject) => { - setTimeout(() => reject(), 1000); - }) - }; +describe('POST /event/loggedout', () => { + const adapterPromiseResolve = () => new Promise((resolve) => { + setTimeout(() => resolve(), 1000); + }); + + const adapterPromiseReject = () => new Promise((_resolve, reject) => { + setTimeout(() => reject(), 1000); + }); it('should 200 when no suitable adapter present', (done) => { const router = createRouter(mockExpress, correctConfig); const req = reqres.req({ url: '/auth/event/loggedout', - method: 'POST' + method: 'POST', }); const res = reqres.res({}); res.on('end', () => { assert( - res.sendStatus.calledWith(200) + res.sendStatus.calledWith(200), ); return done(); @@ -41,36 +36,35 @@ describe('POST /event/loggedout', function onDescribe() { try { router.handle(req, res); } catch (e) { - console.log('e', e.stack); + done(); } }); it('should 401 when key does not match hash', (done) => { - const key = 'thisispass' - const config = Object.assign({}, correctConfig, { + const key = 'thisispass'; + const config = { ...correctConfig, logout: { headerKey: 'key', securityHash: bcrypt.hashSync(key), - sessionStoreLogoutAdapter: adapterPromiseResolve - } - }); + sessionStoreLogoutAdapter: adapterPromiseResolve, + } }; const router = createRouter(mockExpress, config); const req = reqres.req({ url: '/auth/event/loggedout', method: 'POST', headers: { - [config.logout.headerKey] : 'nonematching' + [config.logout.headerKey]: 'nonematching', }, - get: (key) => req.headers[key] + get: (getKey) => req.headers[getKey], }); const res = reqres.res({}); res.on('end', () => { assert( - res.sendStatus.calledWith(401) + res.sendStatus.calledWith(401), ); return done(); @@ -78,36 +72,35 @@ describe('POST /event/loggedout', function onDescribe() { try { router.handle(req, res); } catch (e) { - console.log('e', e.stack); + done(); } }); it('should 200 when key matches hash and adapter resolves', (done) => { const token = uuid.v4(); - const config = Object.assign({}, correctConfig, { + const config = { ...correctConfig, logout: { headerKey: 'key', securityHash: bcrypt.hashSync(token), - sessionStoreLogoutAdapter: adapterPromiseResolve - } - }); + sessionStoreLogoutAdapter: adapterPromiseResolve, + } }; const router = createRouter(mockExpress, config); const req = reqres.req({ url: '/auth/event/loggedout', method: 'POST', headers: { - [config.logout.headerKey] : token + [config.logout.headerKey]: token, }, - get: (key) => req.headers[key] + get: (key) => req.headers[key], }); const res = reqres.res({}); res.on('end', () => { assert( - res.sendStatus.calledWith(200) + res.sendStatus.calledWith(200), ); return done(); @@ -115,37 +108,35 @@ describe('POST /event/loggedout', function onDescribe() { try { router.handle(req, res); } catch (e) { - console.log('e', e.stack); + done(); } }); - it('should 500 when key matches hash and adapter rejects', (done) => { const token = uuid.v4(); - const config = Object.assign({}, correctConfig, { + const config = { ...correctConfig, logout: { headerKey: 'key', securityHash: bcrypt.hashSync(token), - sessionStoreLogoutAdapter: adapterPromiseReject - } - }); + sessionStoreLogoutAdapter: adapterPromiseReject, + } }; const router = createRouter(mockExpress, config); const req = reqres.req({ url: '/auth/event/loggedout', method: 'POST', headers: { - [config.logout.headerKey] : token + [config.logout.headerKey]: token, }, - get: (key) => req.headers[key] + get: (key) => req.headers[key], }); const res = reqres.res({}); res.on('end', () => { assert( - res.status.calledWith(500) + res.status.calledWith(500), ); return done(); @@ -153,9 +144,7 @@ describe('POST /event/loggedout', function onDescribe() { try { router.handle(req, res); } catch (e) { - console.log('e', e.stack); + done(); } }); - - -}) \ No newline at end of file +}); diff --git a/test/login.js b/test/login.js index 6769ce3..9380e33 100644 --- a/test/login.js +++ b/test/login.js @@ -1,14 +1,12 @@ -'use strict'; -const assert = require('assert'); -const mockExpress = require('express')(); -const reqres = require('reqres'); - +import assert from 'assert'; +import reqres from 'reqres'; import createRouter from '../src/router'; import correctConfig from './mocks/correctConfig'; -describe('GET /login', function onDescribe() { +const mockExpress = require('express')(); - it('should redirect to login', function onIt(done) { +describe('GET /login', () => { + it('should redirect to login', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; const fromUrl = 'test.com/d'; @@ -16,25 +14,24 @@ describe('GET /login', function onDescribe() { const req = reqres.req({ url: '/auth/login', query: { - fromUrl + fromUrl, }, get: () => host, session: { save: (cb) => { - cb() + cb(); }, }, }); const res = reqres.res({ header: () => { }, - redirect: function (val) { + redirect(val) { redirectUrl = val; this.emit('end'); - } + }, }); - - res.on('end', function onEnd() { + res.on('end', () => { assert(redirectUrl); assert(req.session.fromUrl === fromUrl); assert(redirectUrl.includes(encodeURIComponent(host))); @@ -42,7 +39,7 @@ describe('GET /login', function onDescribe() { const scopes = correctConfig.defaultScopes.join(' '); assert( redirectUrl - .includes(encodeURIComponent(scopes)) + .includes(encodeURIComponent(scopes)), ); return done(); }); @@ -50,7 +47,7 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); - it('should redirect to login with language if supplied', function onIt(done) { + it('should redirect to login with language if supplied', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; const fromUrl = 'test.com/d'; @@ -60,7 +57,7 @@ describe('GET /login', function onDescribe() { url: '/auth/login', query: { fromUrl, - lng + lng, }, get: () => host, session: { @@ -70,9 +67,9 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -86,7 +83,7 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); - it('should replace auth method "astad.aprofiel.v1" with "iam-aprofiel-userpass"', function onIt(done) { + it('should replace auth method "astad.aprofiel.v1" with "iam-aprofiel-userpass"', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -94,7 +91,7 @@ describe('GET /login', function onDescribe() { const req = reqres.req({ url: '/auth/login', query: { - auth_methods: 'astad.aprofiel.v1' + auth_methods: 'astad.aprofiel.v1', }, get: () => host, session: { @@ -105,9 +102,9 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -121,21 +118,20 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); - it('should redirect to login with extra scopes if scopeGroups query param is supplied', function onIt(done) { - const config = Object.assign({}, correctConfig, { + it('should redirect to login with extra scopes if scopeGroups query param is supplied', (done) => { + const config = { ...correctConfig, scopeGroups: { address: ['crspersoon.housenumber', 'crspersoon.streetname'], personal: ['crspersoon.nationalnumber', 'crspersoon.nationality'], - }, - }); + } }; - const router = createRouter(mockExpress, config); + const router = createRouter(mockExpress, config); const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ url: '/auth/login', query: { - scopeGroups: 'address,personal' + scopeGroups: 'address,personal', }, get: () => host, session: { @@ -145,9 +141,9 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -156,21 +152,20 @@ describe('GET /login', function onDescribe() { assert(redirectUrl); const scopes = config.scopeGroups.address - .concat(config.scopeGroups.personal) - .join(' '); + .concat(config.scopeGroups.personal) + .join(' '); assert( redirectUrl - .includes(encodeURIComponent(scopes)) + .includes(encodeURIComponent(scopes)), ); return done(); }); router.handle(req, res); - }); - describe('minimal_assurance_level query parameter', function onDescribe() { - it('no query param should result in low and associated auth methods(no context)', function onIt(done) { + describe('minimal_assurance_level query parameter', () => { + it('no query param should result in low and associated auth methods(no context)', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -187,31 +182,31 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('level=low')); assert(redirectUrl.includes('iam-aprofiel-userpass')); return done(); }); - + router.handle(req, res); }); - it('no query param and context enterprise should result in substantial', function onIt(done) { + it('no query param and context enterprise should result in substantial', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ url: '/auth/login', query: { - context: 'enterprise' + context: 'enterprise', }, get: () => host, session: { @@ -221,31 +216,31 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('level=substantial')); assert(!redirectUrl.includes('iam-aprofiel-userpass')); return done(); }); - + router.handle(req, res); }); - it('substantial query param should result in associated auth methods', function onIt(done) { + it('substantial query param should result in associated auth methods', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ url: '/auth/login', query: { - minimal_assurance_level: 'substantial' + minimal_assurance_level: 'substantial', }, get: () => host, session: { @@ -255,32 +250,31 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('level=substantial')); assert(!redirectUrl.includes('iam-aprofiel-userpass')); return done(); }); - + router.handle(req, res); }); - - it('high query param should result in associated auth methods', function onIt(done) { + it('high query param should result in associated auth methods', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; const req = reqres.req({ url: '/auth/login', query: { - minimal_assurance_level: 'high' + minimal_assurance_level: 'high', }, get: () => host, session: { @@ -290,13 +284,13 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('level=high')); @@ -307,7 +301,7 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); - it('high and context enterprise should result in associated auth methods', function onIt(done) { + it('high and context enterprise should result in associated auth methods', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -315,7 +309,7 @@ describe('GET /login', function onDescribe() { url: '/auth/login', query: { minimal_assurance_level: 'high', - context: 'enterprise' + context: 'enterprise', }, get: () => host, session: { @@ -325,13 +319,13 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('level=high')); @@ -342,7 +336,7 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); - it('save_consent = false should result in a loginUrl which does not save consent', function onIt(done) { + it('save_consent = false should result in a loginUrl which does not save consent', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -361,13 +355,13 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('level=high')); @@ -379,7 +373,7 @@ describe('GET /login', function onDescribe() { router.handle(req, res); }); - it('force_auth = true should result in a loginUrl which forces a login', function onIt(done) { + it('force_auth = true should result in a loginUrl which forces a login', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -399,13 +393,13 @@ describe('GET /login', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); - + res.redirect.bind(res); - + res.on('end', () => { assert(redirectUrl); assert(redirectUrl.includes('force_auth=true')); @@ -413,6 +407,5 @@ describe('GET /login', function onDescribe() { }); router.handle(req, res); }); - }); }); diff --git a/test/loginCallback.js b/test/loginCallback.js index bf0c838..7d4941d 100644 --- a/test/loginCallback.js +++ b/test/loginCallback.js @@ -1,33 +1,32 @@ -'use strict'; -const assert = require('assert'); -const mockExpress = require('express')(); -const reqres = require('reqres'); import './mocks/oauth'; +import assert from 'assert'; +import reqres from 'reqres'; + import createRouter from '../src/router'; import correctConfig from './mocks/correctConfig'; import nockGetAprofiel from './mocks/user'; import { nockGetSessions } from './mocks/sessionStore'; import { onlyLowSession } from './mocks/sessionStoreResponses'; +const mockExpress = require('express')(); -describe('test # login callback', function onDescribe() { - +describe('test # login callback', () => { it('callback redirect to errorRedirect when no code in query', (done) => { const errorRedirect = '/error'; const config = Object.assign(correctConfig, { - errorRedirect - }) + errorRedirect, + }); const router = createRouter(mockExpress, config); const req = reqres.req({ url: '/auth/login/callback', session: { - save: cb => cb() - } + save: (cb) => cb(), + }, }); - const res = reqres.res({ - header: () => {} - }); + const res = reqres.res({ + header: () => {}, + }); res.on('end', () => { assert(res.redirect.calledWith(errorRedirect)); @@ -40,22 +39,22 @@ describe('test # login callback', function onDescribe() { it('callback redirect to errorRedirect when no state in query', (done) => { const errorRedirect = '/error'; const config = Object.assign(correctConfig, { - errorRedirect - }) + errorRedirect, + }); const router = createRouter(mockExpress, config); const req = reqres.req({ url: '/auth/login/callback', query: { - code: 'blabla' + code: 'blabla', }, session: { - save: cb => cb() - } + save: (cb) => cb(), + }, }); - const res = reqres.res({ - header: () => {} - }); + const res = reqres.res({ + header: () => {}, + }); res.on('end', () => { assert(res.redirect.calledWith(errorRedirect)); @@ -68,24 +67,24 @@ describe('test # login callback', function onDescribe() { it('callback should redirect to login url when state does not matches key', (done) => { const errorRedirect = '/error'; const config = Object.assign(correctConfig, { - errorRedirect - }) + errorRedirect, + }); const router = createRouter(mockExpress, config); const req = reqres.req({ url: '/auth/login/callback', query: { code: 'blabla', - state: 'aprofiel_1234' + state: 'aprofiel_1234', }, session: { - save: cb => cb(), - aprofiel_key: 'aprofiel_43321' - } + save: (cb) => cb(), + aprofiel_key: 'aprofiel_43321', + }, }); const res = reqres.res({ - header: () => {} + header: () => {}, }); res.on('end', () => { @@ -99,30 +98,30 @@ describe('test # login callback', function onDescribe() { it('should login and redirect to fromUrl', (done) => { const ssoKey = 'fakeKey'; nockGetAprofiel(correctConfig.url); - nockGetSessions({ssoKey, payload: onlyLowSession}) + nockGetSessions({ ssoKey, payload: onlyLowSession }); const errorRedirect = '/error'; - const fromUrl = '/fromUrl' + const fromUrl = '/fromUrl'; const config = Object.assign(correctConfig, { - errorRedirect - }) + errorRedirect, + }); const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' + const key = 'aprofiel_1234'; const req = reqres.req({ get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, url: '/auth/login/callback', query: { code: 'blabla', - state: key + state: key, }, session: { - save: cb => cb(), + save: (cb) => cb(), loginKey: key, - fromUrl - } + fromUrl, + }, }); const res = reqres.res({ - header: () => {} + header: () => {}, }); res.on('end', () => { @@ -134,8 +133,7 @@ describe('test # login callback', function onDescribe() { try { router.handle(req, res); } catch (e) { - console.log(e); - return done(e); + done(e); } }); @@ -143,62 +141,58 @@ describe('test # login callback', function onDescribe() { nockGetAprofiel(correctConfig.url); const errorRedirect = '/error'; const config = Object.assign(correctConfig, { - errorRedirect - }) + errorRedirect, + }); const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' + const key = 'aprofiel_1234'; const req = reqres.req({ url: '/auth/login/callback', query: { code: 'blabla', - state: key + state: key, }, session: { - save: cb => cb(), + save: (cb) => cb(), loginKey: key, - } + }, }); const res = reqres.res({ - header: () => {} + header: () => {}, }); - res.on('end', () => { - // assert(res.redirect.calledWith('/')); - return done(); - }); + res.on('end', () => done()); + // assert(res.redirect.calledWith('/')); try { router.handle(req, res); } catch (e) { - console.log(e); - return done(e); + done(e); } - }); it('should redirect to errorRedirect if login errors', (done) => { nockGetAprofiel(correctConfig.url, 400); const errorRedirect = '/error'; const config = Object.assign(correctConfig, { - errorRedirect - }) + errorRedirect, + }); const router = createRouter(mockExpress, config); - const key = 'aprofiel_1234' + const key = 'aprofiel_1234'; const req = reqres.req({ url: '/auth/login/callback', query: { code: 'blabla', - state: key + state: key, }, session: { - save: cb => cb(), - loginKey: key + save: (cb) => cb(), + loginKey: key, }, }); const res = reqres.res({ - header: () => {} + header: () => {}, }); res.on('end', () => { assert(res.redirect.calledWith(config.errorRedirect)); diff --git a/test/logout.js b/test/logout.js index 8a02af6..3d5d352 100644 --- a/test/logout.js +++ b/test/logout.js @@ -1,15 +1,14 @@ -'use strict'; -const assert = require('assert'); +import assert from 'assert'; +import reqres from 'reqres'; import createRouter from '../src/router'; -const reqres = require('reqres'); -const mockExpress = require('express')(); + import correctConfig from './mocks/correctConfig'; import { nockDeleteSessions } from './mocks/sessionStore'; +const mockExpress = require('express')(); -describe('GET /logout', function onDescribe() { - - it('should redirect to / if no one is loggedin', function onIt(done) { +describe('GET /logout', () => { + it('should redirect to / if no one is loggedin', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -25,9 +24,9 @@ describe('GET /logout', function onDescribe() { const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -41,7 +40,7 @@ describe('GET /logout', function onDescribe() { router.handle(req, res); }); - it('should redirect to logoutPage', function onIt(done) { + it('should redirect to logoutPage', (done) => { const ssoKey = 'fakeSSO'; nockDeleteSessions({ ssoKey }); const router = createRouter(mockExpress, correctConfig); @@ -53,21 +52,21 @@ describe('GET /logout', function onDescribe() { save: (cb) => cb(), user: { profile: { - id: 'this-is-my-id' + id: 'this-is-my-id', }, }, userToken: { - accessToken: 'blabla' - } + accessToken: 'blabla', + }, }, }); const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -81,33 +80,33 @@ describe('GET /logout', function onDescribe() { router.handle(req, res); }); - it('should store logoutFromUrl', function onIt(done) { + it('should store logoutFromUrl', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; const fromUrl = 'http://from.com'; const req = reqres.req({ url: '/auth/logout', query: { - fromUrl + fromUrl, }, get: () => host, session: { save: (cb) => cb(), user: { profile: { - id: 'this-is-my-id' + id: 'this-is-my-id', }, }, userToken: { - accessToken: 'blabla' - } + accessToken: 'blabla', + }, }, }); const res = reqres.res({ header: () => { }, redirect() { this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -120,7 +119,7 @@ describe('GET /logout', function onDescribe() { router.handle(req, res); }); - it('should add authenticationmethod to logout redirect', function onIt(done) { + it('should add authenticationmethod to logout redirect', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; let redirectUrl = false; @@ -133,21 +132,21 @@ describe('GET /logout', function onDescribe() { save: (cb) => cb(), user: { profile: { - id: 'this-is-my-id' + id: 'this-is-my-id', }, - authenticationMethod: 'iam-user-pass' + authenticationMethod: 'iam-user-pass', }, userToken: { - accessToken: 'blabla' - } + accessToken: 'blabla', + }, }, }); const res = reqres.res({ header: () => { }, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); diff --git a/test/logoutCallback.js b/test/logoutCallback.js index 37a23ad..bc2e3cb 100644 --- a/test/logoutCallback.js +++ b/test/logoutCallback.js @@ -1,15 +1,13 @@ -'use strict'; -const assert = require('assert'); +import assert from 'assert'; +import reqres from 'reqres'; import createRouter from '../src/router'; -const reqres = require('reqres'); -const mockExpress = require('express')(); import correctConfig from './mocks/correctConfig'; -describe('GET /logout/callback', function onDescribe() { - +const mockExpress = require('express')(); - it('should remove session when callback is triggered', function onIt(done) { +describe('GET /logout/callback', () => { + it('should remove session when callback is triggered', (done) => { const router = createRouter(mockExpress, correctConfig); let redirectUrl = false; @@ -17,7 +15,7 @@ describe('GET /logout/callback', function onDescribe() { url: '/auth/logout/callback', method: 'GET', query: { - state: '1234' + state: '1234', }, get: () => undefined, session: { @@ -25,15 +23,15 @@ describe('GET /logout/callback', function onDescribe() { user: {}, userToken: {}, aprofiel_logoutKey: '1234', - regenerate: (cb) => cb() + regenerate: (cb) => cb(), }, }); const res = reqres.res({ header: () => {}, redirect(val) { - redirectUrl = val + redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); @@ -49,7 +47,7 @@ describe('GET /logout/callback', function onDescribe() { router.handle(req, res); }); - it('should redirect to the given logoutUrl', function onIt(done) { + it('should redirect to the given logoutUrl', (done) => { const router = createRouter(mockExpress, correctConfig); const logoutFromUrl = 'https://google.com'; let redirectUrl = false; @@ -57,7 +55,7 @@ describe('GET /logout/callback', function onDescribe() { url: '/auth/logout/callback', method: 'GET', query: { - state: '1234' + state: '1234', }, get: () => undefined, session: { @@ -66,7 +64,7 @@ describe('GET /logout/callback', function onDescribe() { userToken: {}, aprofiel_logoutKey: '1234', logoutFromUrl, - regenerate: (cb) => cb() + regenerate: (cb) => cb(), }, }); const res = reqres.res({ @@ -74,7 +72,7 @@ describe('GET /logout/callback', function onDescribe() { redirect(val) { redirectUrl = val; this.emit('end'); - } + }, }); res.redirect.bind(res); diff --git a/test/mocks/auth20Config.js b/test/mocks/auth20Config.js index 6a2ae1e..6e44e1e 100644 --- a/test/mocks/auth20Config.js +++ b/test/mocks/auth20Config.js @@ -1,6 +1,3 @@ -'use strict'; -const uuid = require('uuid'); - module.exports = { oauthHost: 'https://api-oauth2-o.antwerpen.be', apiHost: 'https://api-gw-o.antwerpen.be', @@ -21,8 +18,8 @@ module.exports = { tokenUrl: 'https://api-gw-o.antwerpen.be/astad/aprofiel/v1/oauth2/token', hooks: { loginSuccess: [], - logoutSuccess: [] - } + logoutSuccess: [], + }, }, eid: { version: 'v2', @@ -34,8 +31,8 @@ module.exports = { tokenUrl: 'https://api-gw-o.antwerpen.be/acpaas/shared-identity-data/v1/oauth2/token', hooks: { loginSuccess: [], - logoutSuccess: [] - } - } - } -} + logoutSuccess: [], + }, + }, + }, +}; diff --git a/test/mocks/correctConfig.js b/test/mocks/correctConfig.js index fcf5cb5..8a33295 100644 --- a/test/mocks/correctConfig.js +++ b/test/mocks/correctConfig.js @@ -10,11 +10,11 @@ const config = { ], scopeGroups: { address: ['crspersoon.housenumber', 'crspersoon.streetname'], - personal: ['crspersoon.nationalnumber', 'crspersoon.nationality'] + personal: ['crspersoon.nationalnumber', 'crspersoon.nationality'], }, url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', - refresh: true + refresh: true, }; export default config; diff --git a/test/mocks/oauth.js b/test/mocks/oauth.js index 6ada298..748c621 100644 --- a/test/mocks/oauth.js +++ b/test/mocks/oauth.js @@ -1,13 +1,12 @@ +import * as uuid from 'uuid'; import mockery from 'mockery'; -import uuid from 'uuid'; mockery.enable({ useCleanCache: true, warnOnReplace: false, - warnOnUnregistered: false + warnOnUnregistered: false, }); - class OAuth2 { constructor(clientId, clientSecret, apiHost, irr1, endpoint) { this.clientId = clientId; @@ -23,11 +22,11 @@ class OAuth2 { const refresh = uuid.v4(); setTimeout(() => callback(null, token, refresh, { access_token: token, - expires_in: 2 * 60 * 60 + expires_in: 2 * 60 * 60, })); } } mockery.registerMock('oauth', { - OAuth2: OAuth2 + OAuth2, }); diff --git a/test/mocks/sessionStore.js b/test/mocks/sessionStore.js index 3801700..4d8d94e 100644 --- a/test/mocks/sessionStore.js +++ b/test/mocks/sessionStore.js @@ -1,14 +1,14 @@ import nock from 'nock'; import config from './correctConfig'; -export function nockGetSessions({ssoKey, status = 200, payload = {}}) { +export function nockGetSessions({ ssoKey, status = 200, payload = {} }) { nock(config.consentUrl) .get(`/sessions/${ssoKey}`) - .reply(status, payload ) + .reply(status, payload); } -export function nockDeleteSessions({ssoKey, status = 200}) { +export function nockDeleteSessions({ ssoKey, status = 200 }) { nock(config.consentUrl) .delete(`/sessions/${ssoKey}`) .reply(status); -} \ No newline at end of file +} diff --git a/test/mocks/sessionStoreResponses.js b/test/mocks/sessionStoreResponses.js index 6521e71..3be5c7e 100644 --- a/test/mocks/sessionStoreResponses.js +++ b/test/mocks/sessionStoreResponses.js @@ -1,4 +1,3 @@ - export const lowSession = { assuranceLevel: 'low', authenticationMethod: 'astad.aprofiel.v1', @@ -7,7 +6,6 @@ export const lowSession = { user: 'Jos.verm', }; - export const substantialSession = { assuranceLevel: 'substantial', authenticationMethod: 'fas-citizen-bmid', @@ -16,7 +14,6 @@ export const substantialSession = { user: 'Jos.verm', }; - export const highSession = { assuranceLevel: 'high', authenticationMethod: 'fas-citizen-eid', @@ -26,34 +23,33 @@ export const highSession = { }; export const emptySessions = { - sessions: [] -} + sessions: [], +}; export const onlyLowSession = { sessions: [ - lowSession - ] + lowSession, + ], }; export const lowSubstantialSessions = { sessions: [ lowSession, - substantialSession - ] -} + substantialSession, + ], +}; export const lowSubstantialHighSessions = { sessions: [ lowSession, substantialSession, - highSession - ] -} + highSession, + ], +}; export const lowHighSessions = { sessions: [ lowSession, - highSession - ] -} - + highSession, + ], +}; diff --git a/test/mocks/user.js b/test/mocks/user.js index b4d5817..c4b3766 100644 --- a/test/mocks/user.js +++ b/test/mocks/user.js @@ -1,4 +1,3 @@ - import nock from 'nock'; import user from './user.json'; @@ -7,4 +6,3 @@ export default function nockGetAprofiel(apiHost, status) { .get('/me') .reply(status || 200, user); } - diff --git a/test/refresh.js b/test/refresh.js index 7d6e029..ac187dc 100644 --- a/test/refresh.js +++ b/test/refresh.js @@ -1,60 +1,57 @@ -'use strict'; -const assert = require('assert'); -const reqres = require('reqres'); +import assert from 'assert'; +import reqres from 'reqres'; +import correctConfig from './mocks/correctConfig'; +import createController from '../src/controller'; -import correctConfig from './mocks/correctConfig'; -import createController from '../src/controller' -require('./mocks/oauth'); +import './mocks/oauth'; -describe('test #refresh middleware', function onDescribe() { - it('refresh() should continue when no token was found on the session', function onIt(done) { +describe('test #refresh middleware', () => { + it('refresh() should continue when no token was found on the session', (done) => { const controller = createController(correctConfig); const req = reqres.req({ session: { }, - save: (cb) => cb() + save: (cb) => cb(), }); const res = reqres.req({}); - controller.refreshToken(req, res, (err) => { assert(!err); done(); }); }); - it('refresh() should call the refresh service and check if the token is expired', function onIt(done) { + it('refresh() should call the refresh service and check if the token is expired', (done) => { const controller = createController(correctConfig); const req = reqres.req({ session: { userToken: { - accessToken: "abc", + accessToken: 'abc', serviceName: 'aprofiel', - expiresIn: new Date(new Date().getTime()) + expiresIn: new Date(new Date().getTime()), }, - save: (cb) => cb() - } + save: (cb) => cb(), + }, }); const res = reqres.req({}); - controller.refreshToken(req, res, (err) => { assert(!err); done(); }); }); - it('refresh() should call the refresh service and refresh the token without errors', function onIt(done) { + it('refresh() should call the refresh service and refresh the token without errors', (done) => { const controller = createController(correctConfig); const req = reqres.req({ session: { userToken: { - accessToken: "abc", - expiresIn: new Date(new Date().getTime() + 1000) + accessToken: 'abc', + expiresIn: new Date(new Date().getTime() + 1000), }, - save: (cb) => cb() - } + save: (cb) => cb(), + }, }); const res = reqres.res({}); diff --git a/test/sso.js b/test/sso.js index 2bd7939..db90181 100644 --- a/test/sso.js +++ b/test/sso.js @@ -13,39 +13,35 @@ import { substantialSession, } from './mocks/sessionStoreResponses'; - -describe('test sso middleware', function onDescribe() { - // nockGetSession({ssoKey: 'fakessokey', payload: emptySessions}) +describe('test sso middleware', () => { const middleware = createSSOMiddleware(correctConfig); - it('no cookie header should result in next being called', function onIt(done) { + it('no cookie header should result in next being called', (done) => { const req = reqres.req({ - get: () => '' + get: () => '', }); const res = reqres.res(); - middleware(req, res, () => { assert(true); return done(); }); }); - it('cookie header without ssoKey should result in next', function onIt(done) { + it('cookie header without ssoKey should result in next', (done) => { const req = reqres.req({ - get: () => 'AOS=op5ssja3rjrdqaqavt5clop1e1' + get: () => 'AOS=op5ssja3rjrdqaqavt5clop1e1', }); const res = reqres.res(); - middleware(req, res, () => { assert(true); return done(); }); }); - it('cookie header with ssoKey but empty sessions should result in next', function onIt(done) { + it('cookie header with ssoKey but empty sessions should result in next', (done) => { const ssoKey = 'fakessokey'; nockGetSessions({ ssoKey, payload: emptySessions }); const req = reqres.req({ @@ -54,33 +50,31 @@ describe('test sso middleware', function onDescribe() { const res = reqres.res(); - middleware(req, res, () => { assert(true); return done(); }); }); - it('user with assuranceLevel = high should result in next', function onIt(done) { + it('user with assuranceLevel = high should result in next', (done) => { const req = reqres.req({ get: () => 'AOS=op5ssja3rjrdqaqavt5clop1e1', session: { user: { - assuranceLevel: 'high' - } - } + assuranceLevel: 'high', + }, + }, }); const res = reqres.res(); - middleware(req, res, () => { assert(true); return done(); }); }); - it('user with assurancelevel substantial but with high session should result in redirect', function onIt(done) { + it('user with assurancelevel substantial but with high session should result in redirect', (done) => { const ssoKey = 'fakessokey'; let redirectValue; nockGetSessions({ ssoKey, payload: lowHighSessions }); @@ -88,15 +82,15 @@ describe('test sso middleware', function onDescribe() { get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, session: { user: { - assuranceLevel: 'substantial' - } - } + assuranceLevel: 'substantial', + }, + }, }); const res = reqres.res({ redirect(val) { redirectValue = val; this.emit('end'); - } + }, }); res.on('end', () => { @@ -107,21 +101,21 @@ describe('test sso middleware', function onDescribe() { middleware(req, res, () => {}); }); - it('user with assurancelevel substantial but with substantial session should result in next', function onIt(done) { + it('user with assurancelevel substantial but with substantial session should result in next', (done) => { const ssoKey = 'fakessokey'; nockGetSessions({ ssoKey, payload: lowSubstantialSessions }); const req = reqres.req({ get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, session: { user: { - assuranceLevel: 'substantial' - } - } + assuranceLevel: 'substantial', + }, + }, }); const res = reqres.res({ - redirect(val) { + redirect(_val) { this.emit('end'); - } + }, }); res.on('end', () => { @@ -129,12 +123,10 @@ describe('test sso middleware', function onDescribe() { done(); }); - middleware(req, res, () => { - return done(); - }); + middleware(req, res, () => done()); }); - it('user with assurancelevel low but with substantial session should result in redirect', function onIt(done) { + it('user with assurancelevel low but with substantial session should result in redirect', (done) => { const ssoKey = 'fakessokey'; let redirectValue; nockGetSessions({ ssoKey, payload: lowSubstantialSessions }); @@ -142,15 +134,15 @@ describe('test sso middleware', function onDescribe() { get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, session: { user: { - assuranceLevel: 'low' - } - } + assuranceLevel: 'low', + }, + }, }); const res = reqres.res({ redirect(val) { redirectValue = val; this.emit('end'); - } + }, }); res.on('end', () => { @@ -161,23 +153,21 @@ describe('test sso middleware', function onDescribe() { middleware(req, res, () => {}); }); - it('user with assurancelevel low but with low session should result in next', function onIt(done) { + it('user with assurancelevel low but with low session should result in next', (done) => { const ssoKey = 'fakessokey'; - let redirectValue; nockGetSessions({ ssoKey, payload: onlyLowSession }); const req = reqres.req({ get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, session: { user: { - assuranceLevel: 'low' - } - } + assuranceLevel: 'low', + }, + }, }); const res = reqres.res({ - redirect(val) { - redirectValue = val; + redirect(_val) { this.emit('end'); - } + }, }); res.on('end', () => { @@ -185,26 +175,24 @@ describe('test sso middleware', function onDescribe() { done(); }); - middleware(req, res, () => { - return done(); - }); + middleware(req, res, () => done()); }); - it('no user but with low session should result in redirect', function onIt(done) { + it('no user but with low session should result in redirect', (done) => { const ssoKey = 'fakessokey'; let redirectValue; nockGetSessions({ ssoKey, payload: onlyLowSession }); const req = reqres.req({ get: () => `AOS=op5ssja3rjrdqaqavt5clop1e1; dgp.auth.ssokey=${ssoKey}`, session: { - } + }, }); - + const res = reqres.res({ redirect(val) { redirectValue = val; this.emit('end'); - } + }, }); res.on('end', () => { @@ -214,7 +202,4 @@ describe('test sso middleware', function onDescribe() { middleware(req, res, () => {}); }); - - - -}); \ No newline at end of file +}); From fe6ded4c5675409f026d01e399ca358717eb1985 Mon Sep 17 00:00:00 2001 From: horstenwillem Date: Mon, 30 Jan 2023 12:45:01 +0100 Subject: [PATCH 52/67] add Typescript types --- index.d.ts | 44 +++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + src/index.js | 16 +++++++++++----- src/middleware/sso.js | 2 +- 4 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..743c667 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,44 @@ +/// +declare module "@digipolis/auth" { + import { Router, Application } from "express"; + import { LevelWithSilent } from 'pino'; + + export interface RouterConfig { + clientId: string; + clientSecret: string; + oauthHost: string; + basePath?: string; + defaultScopes?: string[]; + scopeGroups?: Record>; + refresh?: boolean; + hooks?: { + preLogin?: Function[] + preLogout?: Function[] + loginSuccess?: Function[] + logoutSuccess?: Function[] + }; + errorRedirect?: string; + key?: string; + logLevel?: LevelWithSilent; + } + + export interface SsoMiddlewareConfig { + clientId: string; + clientSecret: string; + consentUrl: string; + key?: string; + basePath?: string; + logLevel?: LevelWithSilent; + port?: number; + ssoCookieName?: string; + shouldUpgradeAssuranceLevel?: boolean; + } + + function createRouter(app: Application, config: RouterConfig): Router; + function createSsoMiddleware(config: SsoMiddlewareConfig): Promise; + + export = { + createRouter, + createSsoMiddleware, + }; +} diff --git a/package.json b/package.json index 81e814e..7c5bc6e 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", + "types": "index.d.ts", "scripts": { "build": "npx rollup -c --exports default", "prepublish": "npm run build", diff --git a/src/index.js b/src/index.js index bbb84ed..f31f135 100644 --- a/src/index.js +++ b/src/index.js @@ -1,14 +1,20 @@ import createRouter from './router'; import createSsoMiddleware from './middleware/sso'; -const REQUIRED_CONFIG_PROPS = [ +const REQUIRED_ROUTER_CONFIG_PROPS = [ 'clientId', 'clientSecret', 'oauthHost', ]; -function validateConfig(config) { - REQUIRED_CONFIG_PROPS.forEach((prop) => { +const REQUIRED_SSO_MIDDLEWARE_CONFIG_PROPS = [ + 'clientId', + 'clientSecret', + 'consentUrl', +]; + +function validateConfig(requiredProps, config) { + requiredProps.forEach((prop) => { if (config[prop] == null) { throw new Error(`${prop} is required config`); } @@ -17,11 +23,11 @@ function validateConfig(config) { const toExport = { createRouter: (app, config) => { - validateConfig(config); + validateConfig(REQUIRED_ROUTER_CONFIG_PROPS, config); return createRouter(app, config); }, createSsoMiddleware: (config) => { - validateConfig(config); + validateConfig(REQUIRED_SSO_MIDDLEWARE_CONFIG_PROPS, config); return createSsoMiddleware(config); }, }; diff --git a/src/middleware/sso.js b/src/middleware/sso.js index 62fbbf8..4d04f3a 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -21,8 +21,8 @@ export default function sso(options) { const { clientId, clientSecret, - key = 'user', consentUrl, + key = 'user', basePath = '/auth', logLevel = 'error', port = false, From 9f56c3fd841e5b7d27a2960d9699a9527a7cd8e3 Mon Sep 17 00:00:00 2001 From: horstenwillem Date: Mon, 30 Jan 2023 12:58:59 +0100 Subject: [PATCH 53/67] add .github folder to npmignore --- .npmignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.npmignore b/.npmignore index 4358776..c04becb 100644 --- a/.npmignore +++ b/.npmignore @@ -11,4 +11,7 @@ rollup.config.js test # Examples -examples \ No newline at end of file +examples + +# Workflows +.github \ No newline at end of file From 4da4b5371c2f5f9503d9cbc471df6cf7b556a6ca Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Thu, 15 Feb 2024 11:29:44 +0100 Subject: [PATCH 54/67] Add configurable fromUrl domain check --- readme.md | 4 ++++ src/controller.js | 7 ++++--- src/middleware/sso.js | 16 ++++++++++++---- src/util/isValidCallbackUrl.js | 10 ++++++++++ 4 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 src/util/isValidCallbackUrl.js diff --git a/readme.md b/readme.md index b53f0aa..9562208 100644 --- a/readme.md +++ b/readme.md @@ -120,6 +120,10 @@ The login router & the SSO middleware use the same configuration. - **url**: *String* Url where the user will be retrieved with after login has succeeded (e.g.: https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1) +- **allowedDomains**: *String[]* + List of domains allowed to redirect to after successful login + (e.g.: ['antwerpen.be']) + (e.g.: ['antwerpen.be', 'digipolis.be, 'gate15.be']) ### API Store configuration diff --git a/src/controller.js b/src/controller.js index c9f96e8..a2cca7d 100644 --- a/src/controller.js +++ b/src/controller.js @@ -11,6 +11,7 @@ import { getHost, logoutEncrypt, runHooks } from './helpers'; import createDeleteSessionsHook from './hooks/deleteSessions'; import createAssuranceLevelAndAuthMethodHook from './hooks/assuranceLevelAndAuthMethod'; import createDetermineLoginTypeHook from './hooks/determineLoginType'; +import { isValidCallbackUrl } from './util/isValidCallbackUrl'; const EXPIRY_MARGIN = 5 * 60 * 1000; export default function createController(config) { @@ -26,6 +27,7 @@ export default function createController(config) { errorRedirect = '/', key: objectKey = 'user', logLevel = 'error', + allowedDomains, } = config; const logger = pino({ @@ -162,7 +164,7 @@ export default function createController(config) { const stateKey = uuid.v4(); const url = createLoginUrl(host, stateKey, req.query); req.session.loginKey = stateKey; - req.session.fromUrl = req.query.fromUrl || '/'; + req.session.fromUrl = isValidCallbackUrl(req.query.fromUrl, allowedDomains) ? req.query.fromUrl : '/'; runHooks(preLoginHooks, req, res, () => req.session.save(() => res.redirect(url))); } @@ -215,8 +217,7 @@ export default function createController(config) { const username = getProp(user, 'dataSources.aprofiel.username'); logger.debug( - `finished hooks, redirecting ${username} to ${ - req.session.fromUrl || '/' + `finished hooks, redirecting ${username} to ${req.session.fromUrl || '/' }`, ); return req.session.save(() => res.redirect(req.session.fromUrl || '/')); diff --git a/src/middleware/sso.js b/src/middleware/sso.js index 4d04f3a..a2b4fcd 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -3,14 +3,21 @@ import pino from 'pino'; import { getSessions } from '../sessionStore'; import { getAccessToken } from '../accessToken'; +import { isValidCallbackUrl } from '../util/isValidCallbackUrl'; function getFallbackFromUrl(req, port) { return `${req.protocol}://${req.hostname}${port ? `:${port}` : ''}${req.originalUrl}`; } -function getFromUrl(req, port) { - const rawFromUrl = req.query.fromUrl || req.query.fromurl || getFallbackFromUrl(req, port); - return encodeURIComponent(rawFromUrl); +function getFromUrl(req, port, allowedDomains) { + if ( + (!req.query.fromUrl && !req.query.fromurl) || + !isValidCallbackUrl(req.query.fromUrl || req.query.fromurl, allowedDomains) + ) { + return encodeURIComponent(getFallbackFromUrl(req, port)); + } + + return encodeURIComponent(req.query.fromUrl || req.query.fromurl); } function getSessionWithAssuranceLevel(sessions, assuranceLevel) { @@ -28,6 +35,7 @@ export default function sso(options) { port = false, ssoCookieName = 'dgp.auth.ssokey', shouldUpgradeAssuranceLevel = true, + allowedDomains } = options; const loginPath = `${basePath}/login`; @@ -67,7 +75,7 @@ export default function sso(options) { return next(); } - const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port)}`; + const baseRedirectUrl = `${loginPath}?fromUrl=${getFromUrl(req, port, allowedDomains)}`; const highSession = getSessionWithAssuranceLevel(sessions, 'high'); if (highSession) { diff --git a/src/util/isValidCallbackUrl.js b/src/util/isValidCallbackUrl.js new file mode 100644 index 0000000..a3ccbff --- /dev/null +++ b/src/util/isValidCallbackUrl.js @@ -0,0 +1,10 @@ +export function isValidCallbackUrl(url, allowedDomains = ['antwerpen.be']) { + const callbackUrl = new URL(url); + + if (callbackUrl.protocol !== 'https:') { + return false; + } + + const regex = new RegExp(`(${allowedDomains.map(allowedDomain => `${allowedDomain.replace('.', '\\.')}$`).join('|')})`); + return regex.test(callbackUrl.host); +} \ No newline at end of file From b950b418d6e7da7d5b72dcc45e132c38330a074e Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Thu, 15 Feb 2024 13:19:00 +0100 Subject: [PATCH 55/67] Fix syntax error in readme docs --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 9562208..80b997f 100644 --- a/readme.md +++ b/readme.md @@ -123,7 +123,7 @@ The login router & the SSO middleware use the same configuration. - **allowedDomains**: *String[]* List of domains allowed to redirect to after successful login (e.g.: ['antwerpen.be']) - (e.g.: ['antwerpen.be', 'digipolis.be, 'gate15.be']) + (e.g.: ['antwerpen.be', 'digipolis.be', 'gate15.be']) ### API Store configuration From 5a5704b20f6b54481dfa2a355d4fefeb79d178d7 Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Thu, 15 Feb 2024 13:29:14 +0100 Subject: [PATCH 56/67] Fix linting issues --- package.json | 1 + src/middleware/sso.js | 6 +++--- src/util/isValidCallbackUrl.js | 14 +++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 7c5bc6e..af1c62f 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build": "npx rollup -c --exports default", "prepublish": "npm run build", "lint": "eslint . --ext .js", + "lint:fix": "eslint . --ext .js --fix", "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" }, "publishConfig": { diff --git a/src/middleware/sso.js b/src/middleware/sso.js index a2b4fcd..4c2b00f 100644 --- a/src/middleware/sso.js +++ b/src/middleware/sso.js @@ -11,8 +11,8 @@ function getFallbackFromUrl(req, port) { function getFromUrl(req, port, allowedDomains) { if ( - (!req.query.fromUrl && !req.query.fromurl) || - !isValidCallbackUrl(req.query.fromUrl || req.query.fromurl, allowedDomains) + (!req.query.fromUrl && !req.query.fromurl) + || !isValidCallbackUrl(req.query.fromUrl || req.query.fromurl, allowedDomains) ) { return encodeURIComponent(getFallbackFromUrl(req, port)); } @@ -35,7 +35,7 @@ export default function sso(options) { port = false, ssoCookieName = 'dgp.auth.ssokey', shouldUpgradeAssuranceLevel = true, - allowedDomains + allowedDomains, } = options; const loginPath = `${basePath}/login`; diff --git a/src/util/isValidCallbackUrl.js b/src/util/isValidCallbackUrl.js index a3ccbff..5c9337f 100644 --- a/src/util/isValidCallbackUrl.js +++ b/src/util/isValidCallbackUrl.js @@ -1,10 +1,10 @@ export function isValidCallbackUrl(url, allowedDomains = ['antwerpen.be']) { - const callbackUrl = new URL(url); + const callbackUrl = new URL(url); - if (callbackUrl.protocol !== 'https:') { - return false; - } + if (callbackUrl.protocol !== 'https:') { + return false; + } - const regex = new RegExp(`(${allowedDomains.map(allowedDomain => `${allowedDomain.replace('.', '\\.')}$`).join('|')})`); - return regex.test(callbackUrl.host); -} \ No newline at end of file + const regex = new RegExp(`(${allowedDomains.map((allowedDomain) => `${allowedDomain.replace('.', '\\.')}$`).join('|')})`); + return regex.test(callbackUrl.host); +} From b97e9065b611711ef8d4e31c249671a1ad064553 Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Thu, 15 Feb 2024 13:49:22 +0100 Subject: [PATCH 57/67] Add test checking fromUrl logic, fix existing tests, add invalid url fallback --- src/util/isValidCallbackUrl.js | 14 +++++++---- test/login.js | 43 +++++++++++++++++++++++++++++++++- test/mocks/correctConfig.js | 1 + 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/src/util/isValidCallbackUrl.js b/src/util/isValidCallbackUrl.js index 5c9337f..2adc359 100644 --- a/src/util/isValidCallbackUrl.js +++ b/src/util/isValidCallbackUrl.js @@ -1,10 +1,14 @@ export function isValidCallbackUrl(url, allowedDomains = ['antwerpen.be']) { - const callbackUrl = new URL(url); + try { + const callbackUrl = new URL(url); - if (callbackUrl.protocol !== 'https:') { + if (callbackUrl.protocol !== 'https:') { + return false; + } + + const regex = new RegExp(`(${allowedDomains.map((allowedDomain) => `${allowedDomain.replace('.', '\\.')}$`).join('|')})`); + return regex.test(callbackUrl.host); + } catch (error) { return false; } - - const regex = new RegExp(`(${allowedDomains.map((allowedDomain) => `${allowedDomain.replace('.', '\\.')}$`).join('|')})`); - return regex.test(callbackUrl.host); } diff --git a/test/login.js b/test/login.js index 9380e33..e77bd1e 100644 --- a/test/login.js +++ b/test/login.js @@ -9,7 +9,7 @@ describe('GET /login', () => { it('should redirect to login', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; - const fromUrl = 'test.com/d'; + const fromUrl = 'https://test.com/d'; let redirectUrl = false; const req = reqres.req({ url: '/auth/login', @@ -47,6 +47,47 @@ describe('GET /login', () => { router.handle(req, res); }); + it('should not redirect if fromUrl is invalid', (done) => { + const router = createRouter(mockExpress, correctConfig); + const host = 'http://www.app.com'; + const fromUrl = 'https://invalid.com/d'; + let redirectUrl = false; + const req = reqres.req({ + url: '/auth/login', + query: { + fromUrl, + }, + get: () => host, + session: { + save: (cb) => { + cb(); + }, + }, + }); + const res = reqres.res({ + header: () => { }, + redirect(val) { + redirectUrl = val; + this.emit('end'); + }, + }); + + res.on('end', () => { + assert(redirectUrl); + assert(req.session.fromUrl === '/'); + assert(redirectUrl.includes(encodeURIComponent(host))); + assert(redirectUrl.includes(encodeURIComponent(correctConfig.clientId))); + const scopes = correctConfig.defaultScopes.join(' '); + assert( + redirectUrl + .includes(encodeURIComponent(scopes)), + ); + return done(); + }); + + router.handle(req, res); + }); + it('should redirect to login with language if supplied', (done) => { const router = createRouter(mockExpress, correctConfig); const host = 'http://www.app.com'; diff --git a/test/mocks/correctConfig.js b/test/mocks/correctConfig.js index 8a33295..db2c1d6 100644 --- a/test/mocks/correctConfig.js +++ b/test/mocks/correctConfig.js @@ -15,6 +15,7 @@ const config = { url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', refresh: true, + allowedDomains: ['test.com'] }; export default config; From 4ff199e6242e6c2ad2c3e12b9b21151a7d3dced1 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Mon, 19 Feb 2024 14:47:05 +0100 Subject: [PATCH 58/67] 2.4.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b9430a..c8af4e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.3.4", + "version": "2.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.3.4", + "version": "2.4.0", "license": "ISC", "dependencies": { "async": "~3.2.4", diff --git a/package.json b/package.json index af1c62f..4aa4482 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.3.4", + "version": "2.4.0", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 9d711023ba243643d24b442011f60ee088b3c8d3 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Mon, 19 Feb 2024 14:47:47 +0100 Subject: [PATCH 59/67] Updated changelog --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 55538e1..a18ea1b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +# Changelog + +## [2.3.5] 2024-02-19 +- ASTAD-28445 Limit redirects from fromUrls ## [unreleased] - 2019-08-01 - Add example for basic mongo setup From efeb6cb1d83370d3b61ec2f3539c3b853c21968e Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Tue, 20 Feb 2024 16:30:19 +0100 Subject: [PATCH 60/67] Fix ts issues --- index.d.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/index.d.ts b/index.d.ts index 743c667..f4ce629 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,7 +1,6 @@ /// declare module "@digipolis/auth" { import { Router, Application } from "express"; - import { LevelWithSilent } from 'pino'; export interface RouterConfig { clientId: string; @@ -19,7 +18,7 @@ declare module "@digipolis/auth" { }; errorRedirect?: string; key?: string; - logLevel?: LevelWithSilent; + logLevel?: string; } export interface SsoMiddlewareConfig { @@ -28,17 +27,12 @@ declare module "@digipolis/auth" { consentUrl: string; key?: string; basePath?: string; - logLevel?: LevelWithSilent; + logLevel?: string; port?: number; ssoCookieName?: string; shouldUpgradeAssuranceLevel?: boolean; } - function createRouter(app: Application, config: RouterConfig): Router; - function createSsoMiddleware(config: SsoMiddlewareConfig): Promise; - - export = { - createRouter, - createSsoMiddleware, - }; + export function createRouter(app: Application, config: RouterConfig): Router; + export function createSsoMiddleware(config: SsoMiddlewareConfig): any; } From c56fdb6cef7c3a8d9f956ab9fab537afd9a19739 Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Tue, 20 Feb 2024 16:37:32 +0100 Subject: [PATCH 61/67] Small lint fix --- test/mocks/correctConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/mocks/correctConfig.js b/test/mocks/correctConfig.js index db2c1d6..1db941b 100644 --- a/test/mocks/correctConfig.js +++ b/test/mocks/correctConfig.js @@ -15,7 +15,7 @@ const config = { url: 'https://api-gw-a.antwerpen.be/acpaas/shared-identity-data/v1', consentUrl: 'https://api-gw-a.antwerpen.be/acpaas/consent/v1', refresh: true, - allowedDomains: ['test.com'] + allowedDomains: ['test.com'], }; export default config; From 9acbf7df2dcc73374a5db10bfef85fda7e3fcfeb Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Tue, 20 Feb 2024 16:52:22 +0100 Subject: [PATCH 62/67] Add minimum node 15 requirement --- .github/workflows/pull-request.yaml | 2 +- package.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml index 80cbe47..9497b91 100644 --- a/.github/workflows/pull-request.yaml +++ b/.github/workflows/pull-request.yaml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [14.x, 16.x, 18.x] + node-version: [15.x, 16.x, 18.x] steps: - uses: actions/checkout@v3 diff --git a/package.json b/package.json index af1c62f..3908999 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,9 @@ "main": "dist/index.cjs.js", "module": "dist/index.es.js", "types": "index.d.ts", + "engines" : { + "node" : ">=15.0.0" + }, "scripts": { "build": "npx rollup -c --exports default", "prepublish": "npm run build", From a3aa53076220f28805a4995e4409cfc367d5d9e1 Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Tue, 20 Feb 2024 16:59:01 +0100 Subject: [PATCH 63/67] Updated lock-file --- package-lock.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package-lock.json b/package-lock.json index c8af4e9..71848b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,6 +39,9 @@ "nock": "~13.3.0", "nyc": "~15.1.0", "reqres": "~3.0.1" + }, + "engines": { + "node": ">=15.0.0" } }, "node_modules/@ampproject/remapping": { From 4785a8e238261e6c2466c2531e6fdbbe39b4f39a Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Tue, 20 Feb 2024 16:59:40 +0100 Subject: [PATCH 64/67] 2.4.1 --- package-lock.json | 4 ++-- package.json | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 71848b1..9e32bfe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.4.0", + "version": "2.4.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.4.0", + "version": "2.4.1", "license": "ISC", "dependencies": { "async": "~3.2.4", diff --git a/package.json b/package.json index 260285c..02941e2 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.4.0", + "version": "2.4.1", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js", "types": "index.d.ts", - "engines" : { - "node" : ">=15.0.0" + "engines": { + "node": ">=15.0.0" }, "scripts": { "build": "npx rollup -c --exports default", From 191786d8c55980e8014ccdbd9b591ece85c43e36 Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Wed, 6 Mar 2024 13:01:45 +0100 Subject: [PATCH 65/67] Add crash handler to failed refresh calls and additional error logging --- src/accessToken.js | 22 ++++++++++++++++++---- src/controller.js | 35 ++++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/src/accessToken.js b/src/accessToken.js index a31bc4f..a24a813 100644 --- a/src/accessToken.js +++ b/src/accessToken.js @@ -1,9 +1,15 @@ import { OAuth2 } from 'oauth'; +import pino from 'pino'; const tokenStore = {}; const ACCESS_TOKEN_PATH = '/oauth2/token'; const EXPIRY_MARGIN = 1000 * 60 * 5; // 5 minute margin +const logger = pino({ + name: '@digipolis/auth-accesstoken', + level: 'error', +}); + function createUserToken(results, refreshToken) { return { accessToken: results.access_token, @@ -18,6 +24,7 @@ function getNewAccessToken(clientId, clientSecret, url) { return new Promise((resolve, reject) => { oauth2.getOAuthAccessToken('', { grant_type: 'client_credentials' }, (err, accessToken, _refreshToken, results) => { if (err) { + logger.error('An error occurred while getting new access token with client credentials', err); return reject(err); } @@ -38,6 +45,7 @@ export function getUserTokenFromAuthorizationCode(code, clientId, clientSecret, { grant_type: 'authorization_code' }, (err, _accessToken, refreshToken, results) => { if (err) { + logger.error('An error occurred while getting new access token with authorization code', err); return reject(err); } @@ -56,6 +64,7 @@ export function refreshAccessToken(token, clientId, clientSecret, url) { { grant_type: 'refresh_token' }, (err, _accessToken, refreshToken, results) => { if (err) { + logger.error('An error occurred while getting new access token with refresh token', err); return reject(err); } @@ -67,10 +76,15 @@ export function refreshAccessToken(token, clientId, clientSecret, url) { } export async function getAccessToken(clientId, clientSecret, url) { - if (tokenStore.token && tokenStore.token.expiresIn > Date.now()) { + try { + if (tokenStore.token && tokenStore.token.expiresIn > Date.now()) { + return tokenStore.token.accessToken; + } + + tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); return tokenStore.token.accessToken; + } catch (error) { + logger.error('An error occurred while getting new access token', error); + return null; } - - tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); - return tokenStore.token.accessToken; } diff --git a/src/controller.js b/src/controller.js index c9f96e8..080657a 100644 --- a/src/controller.js +++ b/src/controller.js @@ -288,23 +288,28 @@ export default function createController(config) { } async function refreshToken(req, res, next) { - if (!refresh) { - return next(); - } - - const tokenKey = `${objectKey}Token`; - const token = req.session[tokenKey]; - if (!token) { - return next(); - } - - if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN)) { + try { + if (!refresh) { + return next(); + } + + const tokenKey = `${objectKey}Token`; + const token = req.session[tokenKey]; + if (!token) { + return next(); + } + + if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN)) { + return next(); + } + + const newToken = await service.refresh(token); + req.session = Object.assign(req.session, { [tokenKey]: newToken }); + return req.session.save(() => next()); + } catch (error) { + logger.error('An error occurred while refreshing token', error); return next(); } - - const newToken = await service.refresh(token); - req.session = Object.assign(req.session, { [tokenKey]: newToken }); - return req.session.save(() => next()); } return { From 27447ff7794c6b0bf77e54e41b6527840c281085 Mon Sep 17 00:00:00 2001 From: Osamah Bukraa Date: Wed, 6 Mar 2024 13:03:57 +0100 Subject: [PATCH 66/67] Lint fixes --- package.json | 1 + src/accessToken.js | 2 +- src/controller.js | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 7c5bc6e..af1c62f 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build": "npx rollup -c --exports default", "prepublish": "npm run build", "lint": "eslint . --ext .js", + "lint:fix": "eslint . --ext .js --fix", "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha" }, "publishConfig": { diff --git a/src/accessToken.js b/src/accessToken.js index a24a813..eff790e 100644 --- a/src/accessToken.js +++ b/src/accessToken.js @@ -80,7 +80,7 @@ export async function getAccessToken(clientId, clientSecret, url) { if (tokenStore.token && tokenStore.token.expiresIn > Date.now()) { return tokenStore.token.accessToken; } - + tokenStore.token = await getNewAccessToken(clientId, clientSecret, url); return tokenStore.token.accessToken; } catch (error) { diff --git a/src/controller.js b/src/controller.js index 080657a..685302e 100644 --- a/src/controller.js +++ b/src/controller.js @@ -292,17 +292,17 @@ export default function createController(config) { if (!refresh) { return next(); } - + const tokenKey = `${objectKey}Token`; const token = req.session[tokenKey]; if (!token) { return next(); } - + if (new Date(token.expiresIn) >= new Date(Date.now() + EXPIRY_MARGIN)) { return next(); } - + const newToken = await service.refresh(token); req.session = Object.assign(req.session, { [tokenKey]: newToken }); return req.session.save(() => next()); From 1dbff22553dbb299dd0a9918ce0b1b11f479300d Mon Sep 17 00:00:00 2001 From: Jan-Bart Date: Thu, 7 Mar 2024 13:02:06 +0100 Subject: [PATCH 67/67] 2.4.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e32bfe..94d5106 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@digipolis/auth", - "version": "2.4.1", + "version": "2.4.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@digipolis/auth", - "version": "2.4.1", + "version": "2.4.2", "license": "ISC", "dependencies": { "async": "~3.2.4", diff --git a/package.json b/package.json index 02941e2..6e0390a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digipolis/auth", - "version": "2.4.1", + "version": "2.4.2", "description": "", "main": "dist/index.cjs.js", "module": "dist/index.es.js",

    ?yTesIKi+MB>nBUR_8$3V|I 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�DNxs7<`EN17P!zOJ?kQ>fAt9><_3 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 N>6_|R>iqiT{{h)<1r-1Q diff --git a/assets/shared-identity.png b/assets/shared-identity.png index 043157be3a8d8559ef9409cb63ff13ed8cdb6412..7b24a7f5ed1e0c67b59a388cd4c93d1a469413a1 100644 GIT binary patch literal 153010 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