├── .all-contributorsrc ├── .eslintignore ├── .eslintrc.yml ├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE.md ├── README.md ├── __tests__ ├── helpers │ ├── default-config.spec.js │ ├── gather-os-metrics.spec.js │ ├── on-headers-listener.spec.js │ ├── send-metrics.spec.js │ ├── socket-io-init.spec.js │ └── validate.spec.js └── middleware-wrapper.spec.js ├── docs └── images │ └── screenshot.jpg ├── examples ├── package.json ├── server.js ├── tester.js └── yarn.lock ├── index.js ├── package.json ├── src ├── helpers │ ├── default-config.js │ ├── gather-os-metrics.js │ ├── on-headers-listener.js │ ├── send-metrics.js │ ├── socket-io-init.js │ └── validate.js ├── middleware-wrapper.js └── public │ ├── index.html │ ├── javascripts │ └── app.js │ └── stylesheets │ └── style.css └── yarn.lock /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "hapijs-status-monitor", 3 | "projectOwner": "ziyasal, danielbayerlein", 4 | "files": [ 5 | "README.md" 6 | ], 7 | "imageSize": 75, 8 | "commit": false, 9 | "contributors": [ 10 | { 11 | "login": "ziyasal", 12 | "name": "z i λ a s a l", 13 | "avatar_url": "https://avatars0.githubusercontent.com/u/1651945?v=4", 14 | "profile": "http://www.ziyasal.com", 15 | "contributions": [ 16 | "code", 17 | "test", 18 | "doc" 19 | ] 20 | }, 21 | { 22 | "login": "danielbayerlein", 23 | "name": "Daniel Bayerlein", 24 | "avatar_url": "https://avatars2.githubusercontent.com/u/457834?v=4", 25 | "profile": "https://github.com/danielbayerlein", 26 | "contributions": [ 27 | "code", 28 | "test", 29 | "doc" 30 | ] 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | coverage/* 3 | examples/* 4 | src/public/javascripts/*.js 5 | __tests__/* 6 | -------------------------------------------------------------------------------- /.eslintrc.yml: -------------------------------------------------------------------------------- 1 | extends: 2 | "airbnb-base" 3 | env: 4 | jest: true 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # Visual Studio Code 61 | .vscode 62 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /__tests__ 2 | /coverage 3 | /docs 4 | /examples 5 | /.vscode 6 | /.eslintignore 7 | /.eslintrc.yml 8 | /.gitignore 9 | /.npmignore 10 | /.travis.yml 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 9 4 | - 8 5 | - 6 6 | cache: 7 | yarn: true 8 | directories: 9 | - node_modules 10 | after_success: 11 | - './node_modules/.bin/jest && cat ./coverage/lcov.info | ./node_modules/.bin/coveralls' 12 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016-present @ziyasal & @danielbayerlein 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # hapijs-status-monitor 3 | 4 | [![Build Status](https://travis-ci.org/ziyasal/hapijs-status-monitor.svg?branch=master)](https://travis-ci.org/ziyasal/hapijs-status-monitor) [![npm](https://img.shields.io/npm/v/hapijs-status-monitor.svg)](https://www.npmjs.com/package/hapijs-status-monitor) [![Coverage Status](https://coveralls.io/repos/github/ziyasal/hapijs-status-monitor/badge.svg?branch=master)](https://coveralls.io/github/ziyasal/hapijs-status-monitor?branch=master) 5 | 6 | Simple, self-hosted module based on [Socket.IO](http://socket.io) and 7 | [Chart.js](http://www.chartjs.org) to report realtime server metrics for 8 | [hapi.js](http://hapijs.com) servers. 9 | 10 | **Inspired from [express-status-monitor](https://github.com/RafalWilinski/express-status-monitor)** 11 | 12 | ![screenshot](./docs/images/screenshot.jpg) 13 | 14 | ## Installation & setup 15 | 16 | **Install package** 17 | 18 | ```sh 19 | npm install hapijs-status-monitor --save 20 | ``` 21 | 22 | **Register plugin** 23 | 24 | ```js 25 | await server.register({ plugin: require('hapijs-status-monitor') }); 26 | ``` 27 | **Run server and go to** `/status` 28 | 29 | ## Run examples 30 | 31 | 1. Go to `cd examples/` 32 | 2. Run `npm i` 33 | 3. Run server `npm start` 34 | 4. Go to `http://localhost:8000/status` 35 | 36 | ## Options 37 | 38 | Monitor can be configured by passing options object into server register method 39 | 40 | ```js 41 | await server.register({ 42 | plugin: require('hapijs-status-monitor'), 43 | options: { 44 | title: 'My Status Monitor', 45 | routeConfig: { 46 | auth: false 47 | } 48 | } 49 | }); 50 | ``` 51 | 52 | Default options: 53 | 54 | ```js 55 | title: 'hapi.js Status', 56 | path: '/status', // Path to Status Page 57 | base: '/', // href attribute of the base html tag 58 | websocket: null, // The Socket.io instance to be used, if none provided a new one will be created! 59 | spans: [{ 60 | interval: 1, // Every second 61 | retention: 60 // Keep 60 datapoints in memory 62 | }, { 63 | interval: 5, // Every 5 seconds 64 | retention: 60 65 | }, { 66 | interval: 15, // Every 15 seconds 67 | retention: 60 68 | }], 69 | routeConfig: {} // Route options, see https://github.com/hapijs/hapi/blob/master/API.md#route-options 70 | ``` 71 | 72 | ## Contributors 73 | 74 | Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)): 75 | 76 | 77 | | [
z i λ a s a l](http://www.ziyasal.com)
[💻](https://github.com/ziyasal/hapijs-status-monitor/commits?author=ziyasal "Code") [⚠️](https://github.com/ziyasal/hapijs-status-monitor/commits?author=ziyasal "Tests") [📖](https://github.com/ziyasal/hapijs-status-monitor/commits?author=ziyasal "Documentation") | [
Daniel Bayerlein](https://github.com/danielbayerlein)
[💻](https://github.com/ziyasal/hapijs-status-monitor/commits?author=danielbayerlein "Code") [⚠️](https://github.com/ziyasal/hapijs-status-monitor/commits?author=danielbayerlein "Tests") [📖](https://github.com/ziyasal/hapijs-status-monitor/commits?author=danielbayerlein "Documentation") | 78 | | :---: | :---: | 79 | 80 | 81 | This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! 82 | 83 | ## License 84 | 85 | Copyright (c) 2016-present [@ziyasal](https://github.com/ziyasal) & [@danielbayerlein](https://github.com/danielbayerlein). 86 | See [LICENSE](./LICENSE.md) for details. 87 | -------------------------------------------------------------------------------- /__tests__/helpers/default-config.spec.js: -------------------------------------------------------------------------------- 1 | const defaultConfig = require('../../src/helpers/default-config'); 2 | 3 | describe('helpers', () => { 4 | describe('default-config', () => { 5 | describe('when default config', () => { 6 | it('then title === hapi.js Status', () => { 7 | expect('hapi.js Status').toEqual(defaultConfig.title); 8 | }); 9 | 10 | it('then path === /status', () => { 11 | expect('/status').toEqual(defaultConfig.path); 12 | }); 13 | 14 | it('then base === /', () => { 15 | expect('/').toEqual(defaultConfig.base); 16 | }); 17 | 18 | 19 | it('then spans === array', () => { 20 | const spans = [ 21 | { interval: 1, retention: 60, responses: [] }, 22 | { interval: 5, retention: 60, responses: [] }, 23 | { interval: 15, retention: 60, responses: [] }, 24 | ]; 25 | 26 | expect(spans).toEqual(defaultConfig.spans); 27 | }); 28 | 29 | it('then routeConfig === {}', () => { 30 | expect({}).toEqual(defaultConfig.routeConfig); 31 | }); 32 | }); 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /__tests__/helpers/gather-os-metrics.spec.js: -------------------------------------------------------------------------------- 1 | const gatherOsMetrics = require('../../src/helpers/gather-os-metrics'); 2 | 3 | jest.mock('pidusage'); 4 | const pidusage = require('pidusage'); 5 | 6 | describe('helpers', () => { 7 | describe('gather-os-metrics', () => { 8 | describe('when invoked', () => { 9 | it('then pidusage should be called', () => { 10 | gatherOsMetrics({}, { os: [], responses: [] }); 11 | expect(pidusage).toHaveBeenCalled(); 12 | }); 13 | }); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /__tests__/helpers/on-headers-listener.spec.js: -------------------------------------------------------------------------------- 1 | const onHeadersListener = require('../../src/helpers/on-headers-listener'); 2 | const defaultConfig = require('../../src/helpers/default-config'); 3 | 4 | describe('helpers', () => { 5 | describe('on-headers-listener', () => { 6 | describe('when invoked', () => { 7 | const { spans } = defaultConfig; 8 | 9 | beforeEach(() => { 10 | spans.map((currentSpan) => { 11 | const span = currentSpan; 12 | span.responses = []; 13 | 14 | return span; 15 | }); 16 | }); 17 | 18 | it('then for all spans, responses length should equal 1', () => { 19 | onHeadersListener(404, process.hrtime(), spans); 20 | 21 | spans.forEach((span) => { 22 | expect(span.responses.length).toBe(1); 23 | }); 24 | }); 25 | 26 | describe('when invoked after 1 second', () => { 27 | it('then for span interval 1, responses length should equal 2', async () => { 28 | onHeadersListener(500, process.hrtime(), spans); 29 | await new Promise((resolve) => setTimeout(resolve, 1000)); 30 | onHeadersListener(500, process.hrtime(), spans); 31 | 32 | spans.forEach((span) => { 33 | if (span.interval === 1) { 34 | expect(span.responses.length).toBe(2); 35 | } else { 36 | expect(span.responses.length).toBe(1); 37 | } 38 | }); 39 | }); 40 | }); 41 | }); 42 | }); 43 | }); 44 | -------------------------------------------------------------------------------- /__tests__/helpers/send-metrics.spec.js: -------------------------------------------------------------------------------- 1 | const sendMetrics = require('../../src/helpers/send-metrics'); 2 | 3 | describe('helpers', () => { 4 | describe('send-metrics', () => { 5 | describe('when invoked', () => { 6 | it('then io.emit called', () => { 7 | const io = { emit: jest.fn() }; 8 | const span = { os: [], responses: [] }; 9 | 10 | sendMetrics(io, span); 11 | 12 | expect(io.emit).toHaveBeenCalledWith('stats', { 13 | interval: undefined, 14 | os: undefined, 15 | responses: undefined, 16 | retention: undefined, 17 | }); 18 | }); 19 | }); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /__tests__/helpers/socket-io-init.spec.js: -------------------------------------------------------------------------------- 1 | const socketIoInit = require('../../src/helpers/socket-io-init'); 2 | const defaultConfig = require('../../src/helpers/default-config'); 3 | 4 | describe('helpers', () => { 5 | describe('socket-io-init', () => { 6 | describe('when invoked', () => { 7 | it('then all spans should have os and responses property', () => { 8 | const { spans } = defaultConfig; 9 | 10 | spans.forEach((span) => { 11 | expect(span.os).toBeUndefined(); 12 | }); 13 | 14 | socketIoInit({}, { spans }); 15 | 16 | spans.forEach((span) => { 17 | expect(span.os).toBeDefined(); 18 | expect(span.responses).toBeDefined(); 19 | }); 20 | }); 21 | }); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /__tests__/helpers/validate.spec.js: -------------------------------------------------------------------------------- 1 | const defaultConfig = require('../../src/helpers/default-config'); 2 | const validate = require('../../src/helpers/validate'); 3 | 4 | describe('helpers', () => { 5 | describe('validate', () => { 6 | describe('when config is empty', () => { 7 | const config = validate(); 8 | 9 | it(`then title === ${defaultConfig.title}`, () => { 10 | expect(config.title).toEqual(defaultConfig.title); 11 | }); 12 | 13 | it(`then path === ${defaultConfig.path}`, () => { 14 | expect(config.path).toEqual(defaultConfig.path); 15 | }); 16 | 17 | it(`then spans === ${JSON.stringify(defaultConfig.spans)}`, () => { 18 | expect(config.spans).toEqual(defaultConfig.spans); 19 | }); 20 | 21 | it(`then route === ${defaultConfig.routeConfig}`, () => { 22 | expect(config.routeConfig).toEqual(defaultConfig.routeConfig); 23 | }); 24 | }); 25 | 26 | describe('when config is invalid', () => { 27 | const config = validate({ 28 | title: true, 29 | path: false, 30 | spans: 'not-an-array', 31 | routeConfig: 'not-an-object', 32 | }); 33 | 34 | it(`then title === ${defaultConfig.title}`, () => { 35 | expect(config.title).toEqual(defaultConfig.title); 36 | }); 37 | 38 | it(`then path === ${defaultConfig.path}`, () => { 39 | expect(config.path).toEqual(defaultConfig.path); 40 | }); 41 | 42 | it(`then spans === ${JSON.stringify(defaultConfig.spans)}`, () => { 43 | expect(config.spans).toEqual(defaultConfig.spans); 44 | }); 45 | 46 | it(`then routeConfig === ${JSON.stringify(defaultConfig.routeConfig)}`, () => { 47 | expect(config.routeConfig).toEqual(defaultConfig.routeConfig); 48 | }); 49 | }); 50 | 51 | describe('when config is valid', () => { 52 | const customConfig = { 53 | title: 'Custom title', 54 | path: '/custom-path', 55 | spans: [{}, {}, {}], 56 | routeConfig: { auth: false }, 57 | }; 58 | 59 | const config = validate(customConfig); 60 | 61 | it(`then title === ${customConfig.title}`, () => { 62 | expect(config.title).toEqual(customConfig.title); 63 | }); 64 | 65 | it(`then path === ${customConfig.path}`, () => { 66 | expect(config.path).toEqual(customConfig.path); 67 | }); 68 | 69 | it(`then spans === ${JSON.stringify(customConfig.spans)}`, () => { 70 | expect(config.spans).toEqual(customConfig.spans); 71 | }); 72 | 73 | it(`then routeConfig === ${JSON.stringify(customConfig.routeConfig)}`, () => { 74 | expect(config.routeConfig).toEqual(customConfig.routeConfig); 75 | }); 76 | }); 77 | }); 78 | }); 79 | -------------------------------------------------------------------------------- /__tests__/middleware-wrapper.spec.js: -------------------------------------------------------------------------------- 1 | const middleware = require('../src/middleware-wrapper'); 2 | const defaultConfig = require('../src/helpers/default-config'); 3 | 4 | describe('hapijs-status-monitor', () => { 5 | describe('when initialised', () => { 6 | it('then it should be an instance of Function', () => { 7 | expect(middleware).toBeInstanceOf(Function); 8 | }); 9 | 10 | describe('when invoked', () => { 11 | let server; 12 | let options; 13 | 14 | beforeEach(() => { 15 | server = { 16 | socket: {}, 17 | events: { 18 | on: jest.fn(), 19 | }, 20 | route: jest.fn(), 21 | ext: jest.fn(), 22 | }; 23 | 24 | options = { send: jest.fn() }; 25 | }); 26 | 27 | it(`and server.path === ${defaultConfig.path}, then on() called one times`, () => { 28 | server.path = defaultConfig.path; 29 | middleware(server, options); 30 | expect(server.events.on).toHaveBeenCalledTimes(1); 31 | }); 32 | 33 | it(`and server.path === ${defaultConfig.path}, then route() called one times`, () => { 34 | server.path = defaultConfig.path; 35 | middleware(server, options); 36 | expect(server.route).toHaveBeenCalledTimes(1); 37 | }); 38 | 39 | it(`and server.path === ${defaultConfig.path}, then ext() called one times`, () => { 40 | server.path = defaultConfig.path; 41 | middleware(server, options); 42 | expect(server.ext).toHaveBeenCalledTimes(1); 43 | }); 44 | 45 | it(`and server.path !== ${defaultConfig.path}, then on() called one times`, () => { 46 | server.path = '/another-path'; 47 | middleware(server, options); 48 | expect(server.events.on).toHaveBeenCalledTimes(1); 49 | }); 50 | 51 | it(`and server.path !== ${defaultConfig.path}, then route() called one times`, () => { 52 | server.path = '/another-path'; 53 | middleware(server, options); 54 | expect(server.route).toHaveBeenCalledTimes(1); 55 | }); 56 | 57 | it(`and server.path !== ${defaultConfig.path}, then ext() called one times`, () => { 58 | server.path = '/another-path'; 59 | middleware(server, options); 60 | expect(server.ext).toHaveBeenCalledTimes(1); 61 | }); 62 | }); 63 | }); 64 | }); 65 | -------------------------------------------------------------------------------- /docs/images/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugthesystem/hapijs-status-monitor/0a2bc88d428ea190e62419fdbe55e0a53686139a/docs/images/screenshot.jpg -------------------------------------------------------------------------------- /examples/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hapijs-status-monitor-sample", 3 | "version": "1.0.0", 4 | "description": "Examples", 5 | "main": "server.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "@ziyasal sarikayaziya@gmail.com", 11 | "license": "MIT", 12 | "dependencies": { 13 | "hapi": "^17.2.3", 14 | "hapijs-status-monitor": "file:../", 15 | "request": "^2.85.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/server.js: -------------------------------------------------------------------------------- 1 | const Hapi = require('hapi'); 2 | const hapijsStatusMonitor = require('hapijs-status-monitor'); 3 | 4 | // Create a server with a host and port 5 | const server = Hapi.server({ 6 | host: 'localhost', 7 | port: 8000, 8 | }); 9 | 10 | 11 | // Add the "/return-status/{statusCode}" route 12 | server.route({ 13 | method: 'GET', 14 | path: '/return-status/{statusCode}', 15 | handler: (request, h) => { 16 | const statusCode = parseInt(request.params.statusCode, 10); 17 | return h.response(statusCode).code(statusCode); 18 | }, 19 | }); 20 | 21 | // Start the server 22 | async function start() { 23 | try { 24 | await server.register({ plugin: hapijsStatusMonitor }); 25 | await server.start(); 26 | } 27 | catch (err) { 28 | console.log(err); 29 | process.exit(1); 30 | } 31 | 32 | console.log('Server running at:', server.info.uri); 33 | }; 34 | 35 | start(); 36 | -------------------------------------------------------------------------------- /examples/tester.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | 3 | const requestUrl = 'http://localhost:8000/return-status/'; 4 | const interval = 50; 5 | 6 | const makeDummyCall = () => setTimeout(() => { 7 | const code = parseInt(200 + (Math.random() * 399), 10); 8 | request.get(`${requestUrl}${code}`); 9 | makeDummyCall(); 10 | }, interval); 11 | 12 | makeDummyCall(); 13 | -------------------------------------------------------------------------------- /examples/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@socket.io/component-emitter@~3.1.0": 6 | version "3.1.0" 7 | resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" 8 | 9 | "@types/cookie@^0.4.1": 10 | version "0.4.1" 11 | resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" 12 | 13 | "@types/cors@^2.8.12": 14 | version "2.8.12" 15 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" 16 | 17 | "@types/node@>=10.0.0": 18 | version "18.11.9" 19 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" 20 | 21 | accept@3.x.x: 22 | version "3.0.2" 23 | resolved "https://registry.yarnpkg.com/accept/-/accept-3.0.2.tgz#83e41cec7e1149f3fd474880423873db6c6cc9ac" 24 | dependencies: 25 | boom "7.x.x" 26 | hoek "5.x.x" 27 | 28 | accepts@~1.3.4: 29 | version "1.3.8" 30 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 31 | dependencies: 32 | mime-types "~2.1.34" 33 | negotiator "0.6.3" 34 | 35 | ajv@^5.1.0: 36 | version "5.5.2" 37 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 38 | dependencies: 39 | co "^4.6.0" 40 | fast-deep-equal "^1.0.0" 41 | fast-json-stable-stringify "^2.0.0" 42 | json-schema-traverse "^0.3.0" 43 | 44 | ammo@3.x.x: 45 | version "3.0.0" 46 | resolved "https://registry.yarnpkg.com/ammo/-/ammo-3.0.0.tgz#30f322f70a0904eaee1788f4d26c5be1d72da181" 47 | dependencies: 48 | boom "6.x.x" 49 | hoek "5.x.x" 50 | 51 | asn1@~0.2.3: 52 | version "0.2.3" 53 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 54 | 55 | assert-plus@1.0.0, assert-plus@^1.0.0: 56 | version "1.0.0" 57 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 58 | 59 | asynckit@^0.4.0: 60 | version "0.4.0" 61 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 62 | 63 | aws-sign2@~0.7.0: 64 | version "0.7.0" 65 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 66 | 67 | aws4@^1.6.0: 68 | version "1.6.0" 69 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 70 | 71 | b64@4.x.x: 72 | version "4.0.0" 73 | resolved "https://registry.yarnpkg.com/b64/-/b64-4.0.0.tgz#c37f587f0a383c7019e821120e8c3f58f0d22772" 74 | 75 | base64id@2.0.0, base64id@~2.0.0: 76 | version "2.0.0" 77 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" 78 | 79 | bcrypt-pbkdf@^1.0.0: 80 | version "1.0.1" 81 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 82 | dependencies: 83 | tweetnacl "^0.14.3" 84 | 85 | big-time@2.x.x: 86 | version "2.0.0" 87 | resolved "https://registry.yarnpkg.com/big-time/-/big-time-2.0.0.tgz#70193b60faff72c96ed52331b555490e604d7ccc" 88 | 89 | boom@4.x.x: 90 | version "4.3.1" 91 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 92 | dependencies: 93 | hoek "4.x.x" 94 | 95 | boom@5.x.x: 96 | version "5.2.0" 97 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 98 | dependencies: 99 | hoek "4.x.x" 100 | 101 | boom@6.x.x: 102 | version "6.0.0" 103 | resolved "https://registry.yarnpkg.com/boom/-/boom-6.0.0.tgz#9b36c52a12afab3f0e55536131b7fd5021aad0cc" 104 | dependencies: 105 | hoek "5.x.x" 106 | 107 | boom@7.x.x: 108 | version "7.2.0" 109 | resolved "https://registry.yarnpkg.com/boom/-/boom-7.2.0.tgz#2bff24a55565767fde869ec808317eb10c48e966" 110 | dependencies: 111 | hoek "5.x.x" 112 | 113 | bounce@1.x.x: 114 | version "1.2.0" 115 | resolved "https://registry.yarnpkg.com/bounce/-/bounce-1.2.0.tgz#e3bac68c73fd256e38096551efc09f504873c8c8" 116 | dependencies: 117 | boom "7.x.x" 118 | hoek "5.x.x" 119 | 120 | call@5.x.x: 121 | version "5.0.1" 122 | resolved "https://registry.yarnpkg.com/call/-/call-5.0.1.tgz#ac1b5c106d9edc2a17af2a4a4f74dd4f0c06e910" 123 | dependencies: 124 | boom "7.x.x" 125 | hoek "5.x.x" 126 | 127 | caseless@~0.12.0: 128 | version "0.12.0" 129 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 130 | 131 | catbox-memory@3.x.x: 132 | version "3.1.1" 133 | resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-3.1.1.tgz#4f398835a3d8f5992c31ddee24378467498a9c9a" 134 | dependencies: 135 | big-time "2.x.x" 136 | boom "7.x.x" 137 | hoek "5.x.x" 138 | 139 | catbox@10.x.x: 140 | version "10.0.2" 141 | resolved "https://registry.yarnpkg.com/catbox/-/catbox-10.0.2.tgz#e6ac1f35102d1a9bd07915b82e508d12b50a8bfa" 142 | dependencies: 143 | boom "7.x.x" 144 | bounce "1.x.x" 145 | hoek "5.x.x" 146 | joi "13.x.x" 147 | 148 | co@^4.6.0: 149 | version "4.6.0" 150 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 151 | 152 | combined-stream@1.0.6, combined-stream@~1.0.5: 153 | version "1.0.6" 154 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 155 | dependencies: 156 | delayed-stream "~1.0.0" 157 | 158 | content@4.x.x: 159 | version "4.0.4" 160 | resolved "https://registry.yarnpkg.com/content/-/content-4.0.4.tgz#2941609c89593ed2e1504d72c9a28e9516f163e0" 161 | dependencies: 162 | boom "7.x.x" 163 | 164 | cookie@~0.4.1: 165 | version "0.4.2" 166 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" 167 | 168 | core-util-is@1.0.2: 169 | version "1.0.2" 170 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 171 | 172 | cors@~2.8.5: 173 | version "2.8.5" 174 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 175 | dependencies: 176 | object-assign "^4" 177 | vary "^1" 178 | 179 | cryptiles@3.x.x: 180 | version "3.1.2" 181 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 182 | dependencies: 183 | boom "5.x.x" 184 | 185 | cryptiles@4.x.x: 186 | version "4.1.1" 187 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.1.tgz#169256b9df9fe3c73f8085c99e30b32247d4ab46" 188 | dependencies: 189 | boom "7.x.x" 190 | 191 | dashdash@^1.12.0: 192 | version "1.14.1" 193 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 194 | dependencies: 195 | assert-plus "^1.0.0" 196 | 197 | debug@~4.3.1, debug@~4.3.2: 198 | version "4.3.4" 199 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 200 | dependencies: 201 | ms "2.1.2" 202 | 203 | delayed-stream@~1.0.0: 204 | version "1.0.0" 205 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 206 | 207 | ecc-jsbn@~0.1.1: 208 | version "0.1.1" 209 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 210 | dependencies: 211 | jsbn "~0.1.0" 212 | 213 | engine.io-parser@~5.0.3: 214 | version "5.0.4" 215 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" 216 | 217 | engine.io@~6.2.0: 218 | version "6.2.1" 219 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" 220 | dependencies: 221 | "@types/cookie" "^0.4.1" 222 | "@types/cors" "^2.8.12" 223 | "@types/node" ">=10.0.0" 224 | accepts "~1.3.4" 225 | base64id "2.0.0" 226 | cookie "~0.4.1" 227 | cors "~2.8.5" 228 | debug "~4.3.1" 229 | engine.io-parser "~5.0.3" 230 | ws "~8.2.3" 231 | 232 | extend@~3.0.1: 233 | version "3.0.2" 234 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 235 | 236 | extsprintf@1.3.0: 237 | version "1.3.0" 238 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 239 | 240 | extsprintf@^1.2.0: 241 | version "1.4.0" 242 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 243 | 244 | fast-deep-equal@^1.0.0: 245 | version "1.1.0" 246 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 247 | 248 | fast-json-stable-stringify@^2.0.0: 249 | version "2.0.0" 250 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 251 | 252 | forever-agent@~0.6.1: 253 | version "0.6.1" 254 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 255 | 256 | form-data@~2.3.1: 257 | version "2.3.2" 258 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 259 | dependencies: 260 | asynckit "^0.4.0" 261 | combined-stream "1.0.6" 262 | mime-types "^2.1.12" 263 | 264 | getpass@^0.1.1: 265 | version "0.1.7" 266 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 267 | dependencies: 268 | assert-plus "^1.0.0" 269 | 270 | hapi@^17.2.3: 271 | version "17.2.3" 272 | resolved "https://registry.yarnpkg.com/hapi/-/hapi-17.2.3.tgz#77939c7a01200cfdcf1ec06fbe7cc03d234db5f8" 273 | dependencies: 274 | accept "3.x.x" 275 | ammo "3.x.x" 276 | boom "7.x.x" 277 | bounce "1.x.x" 278 | call "5.x.x" 279 | catbox "10.x.x" 280 | catbox-memory "3.x.x" 281 | heavy "6.x.x" 282 | hoek "5.x.x" 283 | joi "13.x.x" 284 | mimos "4.x.x" 285 | podium "3.x.x" 286 | shot "4.x.x" 287 | statehood "6.x.x" 288 | subtext "6.x.x" 289 | teamwork "3.x.x" 290 | topo "3.x.x" 291 | 292 | "hapijs-status-monitor@file:..": 293 | version "1.0.2" 294 | dependencies: 295 | pidusage "^3.0.0" 296 | socket.io "^4.5.0" 297 | 298 | har-schema@^2.0.0: 299 | version "2.0.0" 300 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 301 | 302 | har-validator@~5.0.3: 303 | version "5.0.3" 304 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 305 | dependencies: 306 | ajv "^5.1.0" 307 | har-schema "^2.0.0" 308 | 309 | hawk@~6.0.2: 310 | version "6.0.2" 311 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 312 | dependencies: 313 | boom "4.x.x" 314 | cryptiles "3.x.x" 315 | hoek "4.x.x" 316 | sntp "2.x.x" 317 | 318 | heavy@6.x.x: 319 | version "6.1.0" 320 | resolved "https://registry.yarnpkg.com/heavy/-/heavy-6.1.0.tgz#1bbfa43dc61dd4b543ede3ff87db8306b7967274" 321 | dependencies: 322 | boom "7.x.x" 323 | hoek "5.x.x" 324 | joi "13.x.x" 325 | 326 | hoek@4.x.x: 327 | version "4.2.1" 328 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" 329 | 330 | hoek@5.x.x: 331 | version "5.0.3" 332 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" 333 | 334 | http-signature@~1.2.0: 335 | version "1.2.0" 336 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 337 | dependencies: 338 | assert-plus "^1.0.0" 339 | jsprim "^1.2.2" 340 | sshpk "^1.7.0" 341 | 342 | iron@5.x.x: 343 | version "5.0.4" 344 | resolved "https://registry.yarnpkg.com/iron/-/iron-5.0.4.tgz#003ed822f656f07c2b62762815f5de3947326867" 345 | dependencies: 346 | boom "7.x.x" 347 | cryptiles "4.x.x" 348 | hoek "5.x.x" 349 | 350 | is-typedarray@~1.0.0: 351 | version "1.0.0" 352 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 353 | 354 | isemail@3.x.x: 355 | version "3.1.1" 356 | resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.1.tgz#e8450fe78ff1b48347db599122adcd0668bd92b5" 357 | dependencies: 358 | punycode "2.x.x" 359 | 360 | isstream@~0.1.2: 361 | version "0.1.2" 362 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 363 | 364 | joi@13.x.x: 365 | version "13.1.2" 366 | resolved "https://registry.yarnpkg.com/joi/-/joi-13.1.2.tgz#b2db260323cc7f919fafa51e09e2275bd089a97e" 367 | dependencies: 368 | hoek "5.x.x" 369 | isemail "3.x.x" 370 | topo "3.x.x" 371 | 372 | jsbn@~0.1.0: 373 | version "0.1.1" 374 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 375 | 376 | json-schema-traverse@^0.3.0: 377 | version "0.3.1" 378 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 379 | 380 | json-schema@0.2.3: 381 | version "0.2.3" 382 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 383 | 384 | json-stringify-safe@~5.0.1: 385 | version "5.0.1" 386 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 387 | 388 | jsprim@^1.2.2: 389 | version "1.4.1" 390 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 391 | dependencies: 392 | assert-plus "1.0.0" 393 | extsprintf "1.3.0" 394 | json-schema "0.2.3" 395 | verror "1.10.0" 396 | 397 | mime-db@1.52.0: 398 | version "1.52.0" 399 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 400 | 401 | mime-db@1.x.x, mime-db@~1.33.0: 402 | version "1.33.0" 403 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 404 | 405 | mime-types@^2.1.12, mime-types@~2.1.17: 406 | version "2.1.18" 407 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 408 | dependencies: 409 | mime-db "~1.33.0" 410 | 411 | mime-types@~2.1.34: 412 | version "2.1.35" 413 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 414 | dependencies: 415 | mime-db "1.52.0" 416 | 417 | mimos@4.x.x: 418 | version "4.0.0" 419 | resolved "https://registry.yarnpkg.com/mimos/-/mimos-4.0.0.tgz#76e3d27128431cb6482fd15b20475719ad626a5a" 420 | dependencies: 421 | hoek "5.x.x" 422 | mime-db "1.x.x" 423 | 424 | ms@2.1.2: 425 | version "2.1.2" 426 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 427 | 428 | negotiator@0.6.3: 429 | version "0.6.3" 430 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 431 | 432 | nigel@3.x.x: 433 | version "3.0.0" 434 | resolved "https://registry.yarnpkg.com/nigel/-/nigel-3.0.0.tgz#a6e3378a8a34281e75ba1641e886a415d4be93ad" 435 | dependencies: 436 | hoek "5.x.x" 437 | vise "3.x.x" 438 | 439 | oauth-sign@~0.8.2: 440 | version "0.8.2" 441 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 442 | 443 | object-assign@^4: 444 | version "4.1.1" 445 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 446 | 447 | performance-now@^2.1.0: 448 | version "2.1.0" 449 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 450 | 451 | pez@4.x.x: 452 | version "4.0.2" 453 | resolved "https://registry.yarnpkg.com/pez/-/pez-4.0.2.tgz#0a7c81b64968e90b0e9562b398f390939e9c4b53" 454 | dependencies: 455 | b64 "4.x.x" 456 | boom "7.x.x" 457 | content "4.x.x" 458 | hoek "5.x.x" 459 | nigel "3.x.x" 460 | 461 | pidusage@^3.0.0: 462 | version "3.0.2" 463 | resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-3.0.2.tgz#6faa5402b2530b3af2cf93d13bcf202889724a53" 464 | dependencies: 465 | safe-buffer "^5.2.1" 466 | 467 | podium@3.x.x: 468 | version "3.1.2" 469 | resolved "https://registry.yarnpkg.com/podium/-/podium-3.1.2.tgz#b701429739cf6bdde6b3015ae6b48d400817ce9e" 470 | dependencies: 471 | hoek "5.x.x" 472 | joi "13.x.x" 473 | 474 | punycode@2.x.x: 475 | version "2.1.0" 476 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" 477 | 478 | punycode@^1.4.1: 479 | version "1.4.1" 480 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 481 | 482 | qs@~6.5.1: 483 | version "6.5.3" 484 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" 485 | 486 | request@^2.85.0: 487 | version "2.85.0" 488 | resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" 489 | dependencies: 490 | aws-sign2 "~0.7.0" 491 | aws4 "^1.6.0" 492 | caseless "~0.12.0" 493 | combined-stream "~1.0.5" 494 | extend "~3.0.1" 495 | forever-agent "~0.6.1" 496 | form-data "~2.3.1" 497 | har-validator "~5.0.3" 498 | hawk "~6.0.2" 499 | http-signature "~1.2.0" 500 | is-typedarray "~1.0.0" 501 | isstream "~0.1.2" 502 | json-stringify-safe "~5.0.1" 503 | mime-types "~2.1.17" 504 | oauth-sign "~0.8.2" 505 | performance-now "^2.1.0" 506 | qs "~6.5.1" 507 | safe-buffer "^5.1.1" 508 | stringstream "~0.0.5" 509 | tough-cookie "~2.3.3" 510 | tunnel-agent "^0.6.0" 511 | uuid "^3.1.0" 512 | 513 | safe-buffer@^5.0.1, safe-buffer@^5.1.1: 514 | version "5.1.1" 515 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 516 | 517 | safe-buffer@^5.2.1: 518 | version "5.2.1" 519 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 520 | 521 | shot@4.x.x: 522 | version "4.0.5" 523 | resolved "https://registry.yarnpkg.com/shot/-/shot-4.0.5.tgz#c7e7455d11d60f6b6cd3c43e15a3b431c17e5566" 524 | dependencies: 525 | hoek "5.x.x" 526 | joi "13.x.x" 527 | 528 | sntp@2.x.x: 529 | version "2.1.0" 530 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" 531 | dependencies: 532 | hoek "4.x.x" 533 | 534 | socket.io-adapter@~2.4.0: 535 | version "2.4.0" 536 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" 537 | 538 | socket.io-parser@~4.2.0: 539 | version "4.2.1" 540 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" 541 | dependencies: 542 | "@socket.io/component-emitter" "~3.1.0" 543 | debug "~4.3.1" 544 | 545 | socket.io@^4.5.0: 546 | version "4.5.3" 547 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.3.tgz#44dffea48d7f5aa41df4a66377c386b953bc521c" 548 | dependencies: 549 | accepts "~1.3.4" 550 | base64id "~2.0.0" 551 | debug "~4.3.2" 552 | engine.io "~6.2.0" 553 | socket.io-adapter "~2.4.0" 554 | socket.io-parser "~4.2.0" 555 | 556 | sshpk@^1.7.0: 557 | version "1.14.1" 558 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 559 | dependencies: 560 | asn1 "~0.2.3" 561 | assert-plus "^1.0.0" 562 | dashdash "^1.12.0" 563 | getpass "^0.1.1" 564 | optionalDependencies: 565 | bcrypt-pbkdf "^1.0.0" 566 | ecc-jsbn "~0.1.1" 567 | jsbn "~0.1.0" 568 | tweetnacl "~0.14.0" 569 | 570 | statehood@6.x.x: 571 | version "6.0.5" 572 | resolved "https://registry.yarnpkg.com/statehood/-/statehood-6.0.5.tgz#bbcdcb3a43a6fb86f4bd04ed48a9309b6cfc1b18" 573 | dependencies: 574 | boom "7.x.x" 575 | bounce "1.x.x" 576 | cryptiles "4.x.x" 577 | hoek "5.x.x" 578 | iron "5.x.x" 579 | joi "13.x.x" 580 | 581 | stringstream@~0.0.5: 582 | version "0.0.6" 583 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" 584 | 585 | subtext@6.x.x: 586 | version "6.0.7" 587 | resolved "https://registry.yarnpkg.com/subtext/-/subtext-6.0.7.tgz#8e40a67901a734d598142665c90e398369b885f9" 588 | dependencies: 589 | boom "7.x.x" 590 | content "4.x.x" 591 | hoek "5.x.x" 592 | pez "4.x.x" 593 | wreck "14.x.x" 594 | 595 | teamwork@3.x.x: 596 | version "3.0.1" 597 | resolved "https://registry.yarnpkg.com/teamwork/-/teamwork-3.0.1.tgz#ff38c7161f41f8070b7813716eb6154036ece196" 598 | 599 | topo@3.x.x: 600 | version "3.0.0" 601 | resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a" 602 | dependencies: 603 | hoek "5.x.x" 604 | 605 | tough-cookie@~2.3.3: 606 | version "2.3.4" 607 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 608 | dependencies: 609 | punycode "^1.4.1" 610 | 611 | tunnel-agent@^0.6.0: 612 | version "0.6.0" 613 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 614 | dependencies: 615 | safe-buffer "^5.0.1" 616 | 617 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 618 | version "0.14.5" 619 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 620 | 621 | uuid@^3.1.0: 622 | version "3.2.1" 623 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 624 | 625 | vary@^1: 626 | version "1.1.2" 627 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 628 | 629 | verror@1.10.0: 630 | version "1.10.0" 631 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 632 | dependencies: 633 | assert-plus "^1.0.0" 634 | core-util-is "1.0.2" 635 | extsprintf "^1.2.0" 636 | 637 | vise@3.x.x: 638 | version "3.0.0" 639 | resolved "https://registry.yarnpkg.com/vise/-/vise-3.0.0.tgz#76ad14ab31669c50fbb0817bc0e72fedcbb3bf4c" 640 | dependencies: 641 | hoek "5.x.x" 642 | 643 | wreck@14.x.x: 644 | version "14.0.2" 645 | resolved "https://registry.yarnpkg.com/wreck/-/wreck-14.0.2.tgz#89c17a9061c745ed1c3aebcb66ea181dbaab454c" 646 | dependencies: 647 | boom "7.x.x" 648 | hoek "5.x.x" 649 | 650 | ws@~8.2.3: 651 | version "8.2.3" 652 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" 653 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const pkg = require('./package.json'); 2 | const register = require('./src/middleware-wrapper'); 3 | 4 | module.exports.plugin = { 5 | register, 6 | name: 'hapijs-status-monitor', 7 | pkg, 8 | }; 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hapijs-status-monitor", 3 | "version": "1.0.2", 4 | "description": "Monitoring plugin for hapi.js applications", 5 | "main": "index.js", 6 | "scripts": { 7 | "lint": "eslint --format=node_modules/eslint-formatter-pretty .", 8 | "test": "npm run lint && jest", 9 | "prepush": "npm test" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/ziyasal/hapijs-status-monitor.git" 14 | }, 15 | "keywords": [ 16 | "node", 17 | "status", 18 | "monitoring", 19 | "hapi.js", 20 | "charts" 21 | ], 22 | "author": "@ziyasal ", 23 | "contributors": [ 24 | { 25 | "name": "Daniel Bayerlein", 26 | "url": "https://github.com/danielbayerlein" 27 | } 28 | ], 29 | "license": "MIT", 30 | "dependencies": { 31 | "pidusage": "^3.0.0", 32 | "socket.io": "^4.5.0" 33 | }, 34 | "devDependencies": { 35 | "coveralls": "^3.0.0", 36 | "eslint": "^8.28.0", 37 | "eslint-config-airbnb-base": "^15.0.0", 38 | "eslint-formatter-pretty": "^1.3.0", 39 | "eslint-plugin-import": "^2.9.0", 40 | "husky": "^0.14.3", 41 | "jest": "^28.1.0" 42 | }, 43 | "jest": { 44 | "bail": true, 45 | "collectCoverage": true, 46 | "coverageDirectory": "coverage", 47 | "testEnvironment": "node" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/helpers/default-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | title: 'hapi.js Status', 3 | path: '/status', 4 | base: '/', 5 | spans: [ 6 | { 7 | interval: 1, 8 | retention: 60, 9 | responses: [], 10 | }, 11 | { 12 | interval: 5, 13 | retention: 60, 14 | responses: [], 15 | }, 16 | { 17 | interval: 15, 18 | retention: 60, 19 | responses: [], 20 | }, 21 | ], 22 | websocket: null, 23 | routeConfig: {}, // https://github.com/hapijs/hapi/blob/master/API.md#route-options 24 | }; 25 | -------------------------------------------------------------------------------- /src/helpers/gather-os-metrics.js: -------------------------------------------------------------------------------- 1 | const pidusage = require('pidusage'); 2 | const os = require('os'); 3 | const sendMetrics = require('./send-metrics'); 4 | 5 | module.exports = (io, span) => { 6 | const defaultResponse = { 7 | 2: 0, 8 | 3: 0, 9 | 4: 0, 10 | 5: 0, 11 | count: 0, 12 | mean: 0, 13 | timestamp: Date.now(), 14 | }; 15 | 16 | pidusage(process.pid, (err, stat) => { 17 | if (err) { 18 | console.error(err); // eslint-disable-line no-console 19 | return; 20 | } 21 | 22 | const statObj = stat; 23 | statObj.memory = statObj.memory / 1024 / 1024; // Convert from B to MB 24 | statObj.load = os.loadavg(); 25 | statObj.timestamp = Date.now(); 26 | span.os.push(statObj); 27 | 28 | const last = span.responses[span.responses.length - 1]; 29 | if (!span.responses[0] || last.timestamp + (span.interval * 1000) < Date.now()) { 30 | span.responses.push(defaultResponse); 31 | } 32 | 33 | // todo: I think this check should be moved somewhere else 34 | if (span.os.length >= span.retention) span.os.shift(); 35 | if (span.responses[0] && span.responses.length > span.retention) span.responses.shift(); 36 | 37 | sendMetrics(io, span); 38 | }); 39 | }; 40 | -------------------------------------------------------------------------------- /src/helpers/on-headers-listener.js: -------------------------------------------------------------------------------- 1 | module.exports = (statusCode, startTime, spans) => { 2 | const diff = process.hrtime(startTime); 3 | const responseTime = ((diff[0] * 1e3) + diff[1]) * 1e-6; 4 | const category = Math.floor(statusCode / 100); 5 | 6 | spans.forEach((span) => { 7 | const last = span.responses[span.responses.length - 1]; 8 | if (last !== undefined && (last.timestamp / 1000) + span.interval > Date.now() / 1000) { 9 | last[category] += 1; 10 | last.count += 1; 11 | last.mean += ((responseTime - last.mean) / last.count); 12 | } else { 13 | span.responses.push({ 14 | 2: category === 2 ? 1 : 0, 15 | 3: category === 3 ? 1 : 0, 16 | 4: category === 4 ? 1 : 0, 17 | 5: category === 5 ? 1 : 0, 18 | count: 1, 19 | mean: responseTime, 20 | timestamp: Date.now(), 21 | }); 22 | } 23 | }); 24 | }; 25 | -------------------------------------------------------------------------------- /src/helpers/send-metrics.js: -------------------------------------------------------------------------------- 1 | module.exports = (io, span) => { 2 | io.emit('stats', { 3 | os: span.os[span.os.length - 2], 4 | responses: span.responses[span.responses.length - 2], 5 | interval: span.interval, 6 | retention: span.retention, 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /src/helpers/socket-io-init.js: -------------------------------------------------------------------------------- 1 | 'use strict'; // eslint-disable-line strict, lines-around-directive 2 | 3 | const socketIo = require('socket.io'); 4 | const gatherOsMetrics = require('./gather-os-metrics'); 5 | 6 | let io; 7 | 8 | module.exports = (server, config) => { 9 | if (io === null || io === undefined) { 10 | if (config.websocket) { 11 | io = config.websocket; 12 | } else { 13 | io = socketIo(server); 14 | } 15 | 16 | io.on('connection', (socket) => { 17 | socket.emit('start', config.spans); 18 | 19 | socket.on('change', () => { 20 | socket.emit('start', config.spans); 21 | }); 22 | }); 23 | 24 | config.spans.forEach((currentSpan) => { 25 | const span = currentSpan; 26 | span.os = []; 27 | span.responses = []; 28 | 29 | const interval = setInterval(() => gatherOsMetrics(io, span), span.interval * 1000); 30 | interval.unref(); // don't keep node.js process up 31 | }); 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /src/helpers/validate.js: -------------------------------------------------------------------------------- 1 | const defaultConfig = require('./default-config'); 2 | 3 | module.exports = (config) => { 4 | const cfg = config; 5 | 6 | if (!cfg) { 7 | return defaultConfig; 8 | } 9 | 10 | if (typeof cfg.title !== 'string') { 11 | cfg.title = defaultConfig.title; 12 | } 13 | 14 | if (typeof cfg.path !== 'string') { 15 | cfg.path = defaultConfig.path; 16 | } 17 | 18 | if (typeof cfg.spans !== 'object') { 19 | cfg.spans = defaultConfig.spans; 20 | } 21 | 22 | if (typeof cfg.routeConfig !== 'object') { 23 | cfg.routeConfig = defaultConfig.routeConfig; 24 | } 25 | 26 | if (typeof cfg.websocket !== 'object') { 27 | cfg.websocket = defaultConfig.websocket; 28 | } 29 | 30 | return cfg; 31 | }; 32 | -------------------------------------------------------------------------------- /src/middleware-wrapper.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const validate = require('./helpers/validate'); 4 | const onHeadersListener = require('./helpers/on-headers-listener'); 5 | const socketIoInit = require('./helpers/socket-io-init'); 6 | 7 | // hapi.js plugin register function 8 | const middlewareWrapper = (server, options) => { 9 | const opts = validate(options); 10 | 11 | // Setup Socket.IO 12 | server.events.on('start', () => { 13 | socketIoInit(server.listener, opts); 14 | }); 15 | 16 | server.route({ 17 | method: 'GET', 18 | path: opts.path, 19 | handler: () => { 20 | const renderedHtml = fs.readFileSync(path.join(__dirname, '/public/index.html')) 21 | .toString() 22 | .replace(/{{title}}/g, opts.title) 23 | .replace(/{{base}}/g, opts.base) 24 | .replace(/{{script}}/g, fs.readFileSync(path.join(__dirname, '/public/javascripts/app.js'))) 25 | .replace(/{{style}}/g, fs.readFileSync(path.join(__dirname, '/public/stylesheets/style.css'))); 26 | 27 | return renderedHtml; 28 | }, 29 | config: opts.routeConfig, 30 | }); 31 | 32 | // Hook into the middle of processing 33 | server.ext('onPreResponse', (request, h) => { 34 | if (request.response.isBoom || request.path === opts.path) { 35 | return h.continue; 36 | } 37 | 38 | const startTime = process.hrtime(); 39 | const resp = request.response; 40 | 41 | resp.events.once('finish', () => { 42 | onHeadersListener(resp.statusCode, startTime, opts.spans); 43 | }); 44 | 45 | // Continue Processing 46 | return h.continue; 47 | }); 48 | }; 49 | 50 | module.exports = middlewareWrapper; 51 | -------------------------------------------------------------------------------- /src/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{title}} 6 | 7 | 8 | 11 | 12 | 13 |
14 |
15 | {{title}} 16 |
17 |
18 |
19 |
20 |
21 |
CPU Usage
22 |

- %

23 |
24 |
25 | 26 |
27 |
28 |
29 |
30 |
Memory Usage
31 |

- %

32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 |
One Minute Load Avg
40 |

-

41 |
42 |
43 | 44 |
45 |
46 |
47 |
48 |
Response Time
49 |

-

50 |
51 |
52 | 53 |
54 |
55 |
56 |
57 |
Requests per Second
58 |

-

59 |
60 |
61 | 62 |
63 |
64 |
65 |
66 |
Status Codes
67 |
2xx
68 |
3xx
69 |
4xx
70 |
5xx
71 |
72 |
73 | 74 |
75 |
76 | 79 |
80 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /src/public/javascripts/app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Chart.defaults.global.defaultFontSize = 8; 4 | Chart.defaults.global.animation.duration = 500; 5 | Chart.defaults.global.legend.display = false; 6 | Chart.defaults.global.elements.line.backgroundColor = "rgba(0,0,0,0)"; 7 | Chart.defaults.global.elements.line.borderColor = "rgba(0,0,0,0.9)"; 8 | Chart.defaults.global.elements.line.borderWidth = 2; 9 | 10 | const baseTag = document.querySelector('base'); 11 | const basePath = baseTag ? baseTag.getAttribute('href') : '/'; 12 | 13 | var socket = io(location.protocol + '//' + location.hostname + ':' + location.port, { 14 | path: `${basePath}/socket.io` 15 | }); 16 | var defaultSpan = 0; 17 | var spans = []; 18 | var statusCodesColors = ['#75D701', '#47b8e0', '#ffc952', '#E53A40']; 19 | 20 | var defaultDataset = { 21 | label: '', 22 | data: [], 23 | lineTension: 0.2, 24 | pointRadius: 0 25 | }; 26 | 27 | var defaultOptions = { 28 | scales: { 29 | yAxes: [{ 30 | ticks: { 31 | beginAtZero: true 32 | } 33 | }], 34 | xAxes: [{ 35 | type: 'time', 36 | time: { 37 | unitStepSize: 30 38 | }, 39 | gridLines: { 40 | display: false 41 | } 42 | }] 43 | }, 44 | tooltips: { 45 | enabled: false 46 | }, 47 | responsive: true, 48 | maintainAspectRatio: false, 49 | animation: false 50 | }; 51 | 52 | var createChart = function (ctx, dataset) { 53 | return new Chart(ctx, { 54 | type: 'line', 55 | data: { 56 | labels: [], 57 | datasets: dataset, 58 | }, 59 | options: defaultOptions 60 | }); 61 | }; 62 | 63 | var addTimestamp = function (point) { 64 | return point.timestamp; 65 | }; 66 | 67 | var cpuDataset = [Object.create(defaultDataset)]; 68 | var memDataset = [Object.create(defaultDataset)]; 69 | var loadDataset = [Object.create(defaultDataset)]; 70 | var responseTimeDataset = [Object.create(defaultDataset)]; 71 | var rpsDataset = [Object.create(defaultDataset)]; 72 | var statusCodesDataset = [Object.create(defaultDataset)]; 73 | 74 | var cpuStat = document.getElementById('cpuStat'); 75 | var memStat = document.getElementById('memStat'); 76 | var loadStat = document.getElementById('loadStat'); 77 | var responseTimeStat = document.getElementById('responseTimeStat'); 78 | var rpsStat = document.getElementById('rpsStat'); 79 | 80 | var cpuChartCtx = document.getElementById("cpuChart"); 81 | var memChartCtx = document.getElementById("memChart"); 82 | var loadChartCtx = document.getElementById("loadChart"); 83 | var responseTimeChartCtx = document.getElementById("responseTimeChart"); 84 | var rpsChartCtx = document.getElementById("rpsChart"); 85 | var statusCodesChartCtx = document.getElementById("statusCodesChart"); 86 | 87 | var cpuChart = createChart(cpuChartCtx, cpuDataset); 88 | var memChart = createChart(memChartCtx, memDataset); 89 | var loadChart = createChart(loadChartCtx, loadDataset); 90 | var responseTimeChart = createChart(responseTimeChartCtx, responseTimeDataset); 91 | var rpsChart = createChart(rpsChartCtx, rpsDataset); 92 | var statusCodesChart = new Chart(statusCodesChartCtx, { 93 | type: 'line', 94 | data: { 95 | labels: [], 96 | datasets: [ 97 | Object.create(defaultDataset), 98 | Object.create(defaultDataset), 99 | Object.create(defaultDataset), 100 | Object.create(defaultDataset) 101 | ] 102 | }, 103 | options: defaultOptions 104 | }); 105 | 106 | statusCodesChart.data.datasets.forEach(function(dataset, index) { 107 | dataset.borderColor = statusCodesColors[index]; 108 | }); 109 | 110 | var charts = [cpuChart, memChart, loadChart, responseTimeChart, rpsChart, statusCodesChart]; 111 | 112 | var onSpanChange = function (e) { 113 | e.target.classList.add('active'); 114 | defaultSpan = parseInt(e.target.id); 115 | 116 | var otherSpans = document.getElementsByTagName('span'); 117 | for (var i = 0; i < otherSpans.length; i++) { 118 | if (otherSpans[i] !== e.target) otherSpans[i].classList.remove('active'); 119 | } 120 | 121 | socket.emit('change'); 122 | }; 123 | 124 | socket.on('start', function (data) { 125 | // Remove last element of Array because it contains malformed responses data. 126 | // To keep consistency we also remove os data. 127 | data[defaultSpan].responses.pop(); 128 | data[defaultSpan].os.pop(); 129 | 130 | var lastOsMetric = data[defaultSpan].os[data[defaultSpan].os.length - 1]; 131 | 132 | cpuStat.textContent = '0.0%'; 133 | if (lastOsMetric) { 134 | cpuStat.textContent = lastOsMetric.cpu.toFixed(1) + '%'; 135 | } 136 | 137 | cpuChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) { 138 | return point.cpu; 139 | }); 140 | cpuChart.data.labels = data[defaultSpan].os.map(addTimestamp); 141 | 142 | memStat.textContent = '0.0MB'; 143 | if (lastOsMetric) { 144 | memStat.textContent = lastOsMetric.memory.toFixed(1) + 'MB'; 145 | } 146 | 147 | memChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) { 148 | return point.memory; 149 | }); 150 | memChart.data.labels = data[defaultSpan].os.map(addTimestamp); 151 | 152 | loadStat.textContent = '0.00'; 153 | if (lastOsMetric) { 154 | loadStat.textContent = lastOsMetric.load[defaultSpan].toFixed(2); 155 | } 156 | 157 | loadChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) { 158 | return point.load[0]; 159 | }); 160 | loadChart.data.labels = data[defaultSpan].os.map(addTimestamp); 161 | 162 | var lastResponseMetric = data[defaultSpan].responses[data[defaultSpan].responses.length - 1]; 163 | 164 | responseTimeStat.textContent = '0.00ms'; 165 | if (lastResponseMetric) { 166 | responseTimeStat.textContent = lastResponseMetric.mean.toFixed(2) + 'ms'; 167 | } 168 | 169 | responseTimeChart.data.datasets[0].data = data[defaultSpan].responses.map(function (point) { 170 | return point.mean; 171 | }); 172 | responseTimeChart.data.labels = data[defaultSpan].responses.map(addTimestamp); 173 | 174 | for(var i = 0; i < 4; i++) { 175 | statusCodesChart.data.datasets[i].data = data[defaultSpan].responses.map(function (point) { 176 | return point[i+2]; 177 | }); 178 | } 179 | statusCodesChart.data.labels = data[defaultSpan].responses.map(addTimestamp); 180 | 181 | if (data[defaultSpan].responses.length >= 2) { 182 | var deltaTime = lastResponseMetric.timestamp - data[defaultSpan].responses[data[defaultSpan].responses.length - 2].timestamp; 183 | if (deltaTime < 1) deltaTime = 1000; 184 | rpsStat.textContent = (lastResponseMetric.count / deltaTime * 1000).toFixed(2); 185 | rpsChart.data.datasets[0].data = data[defaultSpan].responses.map(function (point) { 186 | return point.count / deltaTime * 1000; 187 | }); 188 | rpsChart.data.labels = data[defaultSpan].responses.map(addTimestamp); 189 | } 190 | 191 | charts.forEach(function (chart) { 192 | chart.update(); 193 | }); 194 | 195 | var spanControls = document.getElementById('span-controls'); 196 | if (data.length !== spans.length) { 197 | data.forEach(function (span, index) { 198 | spans.push({ 199 | retention: span.retention, 200 | interval: span.interval 201 | }); 202 | 203 | var spanNode = document.createElement('span'); 204 | var textNode = document.createTextNode((span.retention * span.interval) / 60 + "M"); 205 | spanNode.appendChild(textNode); 206 | spanNode.setAttribute('id', index); 207 | spanNode.onclick = onSpanChange; 208 | spanControls.appendChild(spanNode); 209 | }); 210 | document.getElementsByTagName('span')[0].classList.add('active'); 211 | } 212 | }); 213 | 214 | socket.on('stats', function (data) { 215 | if (data.retention === spans[defaultSpan].retention && data.interval === spans[defaultSpan].interval) { 216 | var os = data.os; 217 | var responses = data.responses; 218 | 219 | cpuStat.textContent = '0.0%'; 220 | if (os) { 221 | cpuStat.textContent = os.cpu.toFixed(1) + '%'; 222 | cpuChart.data.datasets[0].data.push(os.cpu); 223 | cpuChart.data.labels.push(os.timestamp); 224 | } 225 | 226 | memStat.textContent = '0.0MB'; 227 | if (os) { 228 | memStat.textContent = os.memory.toFixed(1) + 'MB'; 229 | memChart.data.datasets[0].data.push(os.memory); 230 | memChart.data.labels.push(os.timestamp); 231 | } 232 | 233 | loadStat.textContent = '0'; 234 | if (os) { 235 | loadStat.textContent = os.load[0].toFixed(2); 236 | loadChart.data.datasets[0].data.push(os.load[0]); 237 | loadChart.data.labels.push(os.timestamp); 238 | } 239 | 240 | responseTimeStat.textContent = '0.00ms'; 241 | if (responses) { 242 | responseTimeStat.textContent = responses.mean.toFixed(2) + 'ms'; 243 | responseTimeChart.data.datasets[0].data.push(responses.mean); 244 | responseTimeChart.data.labels.push(responses.timestamp); 245 | } 246 | 247 | if (responses) { 248 | var deltaTime = responses.timestamp - rpsChart.data.labels[rpsChart.data.labels.length - 1]; 249 | if (deltaTime < 1) deltaTime = 1000; 250 | rpsStat.textContent = (responses.count / deltaTime * 1000).toFixed(2); 251 | rpsChart.data.datasets[0].data.push(responses.count / deltaTime * 1000); 252 | rpsChart.data.labels.push(responses.timestamp); 253 | } 254 | 255 | if (responses) { 256 | for(var i = 0; i < 4; i++) { 257 | statusCodesChart.data.datasets[i].data.push(data.responses[i+2]); 258 | } 259 | statusCodesChart.data.labels.push(data.responses.timestamp); 260 | } 261 | 262 | charts.forEach(function (chart) { 263 | if (spans[defaultSpan].retention < chart.data.labels.length) { 264 | chart.data.datasets.forEach(function(dataset) { 265 | dataset.data.shift(); 266 | }); 267 | 268 | chart.data.labels.shift(); 269 | } 270 | chart.update(); 271 | }); 272 | } 273 | }); 274 | -------------------------------------------------------------------------------- /src/public/stylesheets/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: Helvetica Neue, Helvetica, Arial, sans-serif; 3 | } 4 | 5 | h1 { 6 | font-size: 3em; 7 | color: #222; 8 | margin: 0; 9 | } 10 | 11 | h5 { 12 | margin: 0; 13 | color: #888; 14 | } 15 | 16 | h6 { 17 | margin: 0; 18 | } 19 | 20 | p { 21 | font-size: 0.7em; 22 | color: #888; 23 | } 24 | 25 | span { 26 | cursor: pointer; 27 | font-size: 10px; 28 | margin-left: 5px; 29 | border: 1px solid #DDD; 30 | padding: 3px 10px 4px 10px; 31 | } 32 | 33 | canvas { 34 | width: 400px; 35 | height: 100px; 36 | } 37 | 38 | .content { 39 | width: 600px; 40 | margin: auto; 41 | } 42 | 43 | .active { 44 | background: #eeeeee; 45 | } 46 | 47 | .stats-column { 48 | flex: 0 0 200px; 49 | } 50 | 51 | .container { 52 | display: flex; 53 | flex-direction: row; 54 | margin-top: 20px; 55 | height: 100px; 56 | } 57 | 58 | .chart-container { 59 | width: 400px; 60 | height: 100px; 61 | } 62 | 63 | .footer { 64 | text-align: center; 65 | } 66 | 67 | .span-controls { 68 | float: right; 69 | } 70 | 71 | .status-code { 72 | margin-top: 2px; 73 | } 74 | 75 | .status-code:before { 76 | content: ''; 77 | display: inline-block; 78 | width: 8px; 79 | height: 8px; 80 | border-radius: 8px; 81 | margin-right: 10px; 82 | } 83 | 84 | .status-code-2xx:before { 85 | background-color: #75D701; 86 | } 87 | 88 | .status-code-3xx:before { 89 | background-color: #47b8e0; 90 | } 91 | 92 | .status-code-4xx:before { 93 | background-color: #ffc952; 94 | } 95 | 96 | .status-code-5xx:before { 97 | background-color: #E53A40; 98 | } 99 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": 14 | version "7.16.7" 15 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" 16 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== 17 | dependencies: 18 | "@babel/highlight" "^7.16.7" 19 | 20 | "@babel/compat-data@^7.17.10": 21 | version "7.17.10" 22 | resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz" 23 | integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== 24 | 25 | "@babel/core@^7.11.6", "@babel/core@^7.12.3": 26 | version "7.17.10" 27 | resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz" 28 | integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.16.7" 32 | "@babel/generator" "^7.17.10" 33 | "@babel/helper-compilation-targets" "^7.17.10" 34 | "@babel/helper-module-transforms" "^7.17.7" 35 | "@babel/helpers" "^7.17.9" 36 | "@babel/parser" "^7.17.10" 37 | "@babel/template" "^7.16.7" 38 | "@babel/traverse" "^7.17.10" 39 | "@babel/types" "^7.17.10" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.1" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.17.10", "@babel/generator@^7.7.2": 47 | version "7.17.10" 48 | resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz" 49 | integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== 50 | dependencies: 51 | "@babel/types" "^7.17.10" 52 | "@jridgewell/gen-mapping" "^0.1.0" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-compilation-targets@^7.17.10": 56 | version "7.17.10" 57 | resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz" 58 | integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== 59 | dependencies: 60 | "@babel/compat-data" "^7.17.10" 61 | "@babel/helper-validator-option" "^7.16.7" 62 | browserslist "^4.20.2" 63 | semver "^6.3.0" 64 | 65 | "@babel/helper-environment-visitor@^7.16.7": 66 | version "7.16.7" 67 | resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" 68 | integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== 69 | dependencies: 70 | "@babel/types" "^7.16.7" 71 | 72 | "@babel/helper-function-name@^7.17.9": 73 | version "7.17.9" 74 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" 75 | integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== 76 | dependencies: 77 | "@babel/template" "^7.16.7" 78 | "@babel/types" "^7.17.0" 79 | 80 | "@babel/helper-hoist-variables@^7.16.7": 81 | version "7.16.7" 82 | resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" 83 | integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== 84 | dependencies: 85 | "@babel/types" "^7.16.7" 86 | 87 | "@babel/helper-module-imports@^7.16.7": 88 | version "7.16.7" 89 | resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" 90 | integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== 91 | dependencies: 92 | "@babel/types" "^7.16.7" 93 | 94 | "@babel/helper-module-transforms@^7.17.7": 95 | version "7.17.7" 96 | resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz" 97 | integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== 98 | dependencies: 99 | "@babel/helper-environment-visitor" "^7.16.7" 100 | "@babel/helper-module-imports" "^7.16.7" 101 | "@babel/helper-simple-access" "^7.17.7" 102 | "@babel/helper-split-export-declaration" "^7.16.7" 103 | "@babel/helper-validator-identifier" "^7.16.7" 104 | "@babel/template" "^7.16.7" 105 | "@babel/traverse" "^7.17.3" 106 | "@babel/types" "^7.17.0" 107 | 108 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0": 109 | version "7.16.7" 110 | resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" 111 | integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== 112 | 113 | "@babel/helper-simple-access@^7.17.7": 114 | version "7.17.7" 115 | resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz" 116 | integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== 117 | dependencies: 118 | "@babel/types" "^7.17.0" 119 | 120 | "@babel/helper-split-export-declaration@^7.16.7": 121 | version "7.16.7" 122 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" 123 | integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== 124 | dependencies: 125 | "@babel/types" "^7.16.7" 126 | 127 | "@babel/helper-validator-identifier@^7.16.7": 128 | version "7.16.7" 129 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" 130 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== 131 | 132 | "@babel/helper-validator-option@^7.16.7": 133 | version "7.16.7" 134 | resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" 135 | integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== 136 | 137 | "@babel/helpers@^7.17.9": 138 | version "7.17.9" 139 | resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz" 140 | integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== 141 | dependencies: 142 | "@babel/template" "^7.16.7" 143 | "@babel/traverse" "^7.17.9" 144 | "@babel/types" "^7.17.0" 145 | 146 | "@babel/highlight@^7.16.7": 147 | version "7.17.9" 148 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz" 149 | integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== 150 | dependencies: 151 | "@babel/helper-validator-identifier" "^7.16.7" 152 | chalk "^2.0.0" 153 | js-tokens "^4.0.0" 154 | 155 | "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10": 156 | version "7.17.10" 157 | resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz" 158 | integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== 159 | 160 | "@babel/plugin-syntax-async-generators@^7.8.4": 161 | version "7.8.4" 162 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" 163 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 164 | dependencies: 165 | "@babel/helper-plugin-utils" "^7.8.0" 166 | 167 | "@babel/plugin-syntax-bigint@^7.8.3": 168 | version "7.8.3" 169 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" 170 | integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== 171 | dependencies: 172 | "@babel/helper-plugin-utils" "^7.8.0" 173 | 174 | "@babel/plugin-syntax-class-properties@^7.8.3": 175 | version "7.12.13" 176 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" 177 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 178 | dependencies: 179 | "@babel/helper-plugin-utils" "^7.12.13" 180 | 181 | "@babel/plugin-syntax-import-meta@^7.8.3": 182 | version "7.10.4" 183 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" 184 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 185 | dependencies: 186 | "@babel/helper-plugin-utils" "^7.10.4" 187 | 188 | "@babel/plugin-syntax-json-strings@^7.8.3": 189 | version "7.8.3" 190 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" 191 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 192 | dependencies: 193 | "@babel/helper-plugin-utils" "^7.8.0" 194 | 195 | "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": 196 | version "7.10.4" 197 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" 198 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 199 | dependencies: 200 | "@babel/helper-plugin-utils" "^7.10.4" 201 | 202 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 203 | version "7.8.3" 204 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" 205 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 206 | dependencies: 207 | "@babel/helper-plugin-utils" "^7.8.0" 208 | 209 | "@babel/plugin-syntax-numeric-separator@^7.8.3": 210 | version "7.10.4" 211 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" 212 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 213 | dependencies: 214 | "@babel/helper-plugin-utils" "^7.10.4" 215 | 216 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 217 | version "7.8.3" 218 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" 219 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 220 | dependencies: 221 | "@babel/helper-plugin-utils" "^7.8.0" 222 | 223 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 224 | version "7.8.3" 225 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" 226 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 227 | dependencies: 228 | "@babel/helper-plugin-utils" "^7.8.0" 229 | 230 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 231 | version "7.8.3" 232 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" 233 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 234 | dependencies: 235 | "@babel/helper-plugin-utils" "^7.8.0" 236 | 237 | "@babel/plugin-syntax-top-level-await@^7.8.3": 238 | version "7.14.5" 239 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" 240 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 241 | dependencies: 242 | "@babel/helper-plugin-utils" "^7.14.5" 243 | 244 | "@babel/plugin-syntax-typescript@^7.7.2": 245 | version "7.17.10" 246 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz" 247 | integrity sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ== 248 | dependencies: 249 | "@babel/helper-plugin-utils" "^7.16.7" 250 | 251 | "@babel/template@^7.16.7", "@babel/template@^7.3.3": 252 | version "7.16.7" 253 | resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" 254 | integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== 255 | dependencies: 256 | "@babel/code-frame" "^7.16.7" 257 | "@babel/parser" "^7.16.7" 258 | "@babel/types" "^7.16.7" 259 | 260 | "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": 261 | version "7.17.10" 262 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz" 263 | integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== 264 | dependencies: 265 | "@babel/code-frame" "^7.16.7" 266 | "@babel/generator" "^7.17.10" 267 | "@babel/helper-environment-visitor" "^7.16.7" 268 | "@babel/helper-function-name" "^7.17.9" 269 | "@babel/helper-hoist-variables" "^7.16.7" 270 | "@babel/helper-split-export-declaration" "^7.16.7" 271 | "@babel/parser" "^7.17.10" 272 | "@babel/types" "^7.17.10" 273 | debug "^4.1.0" 274 | globals "^11.1.0" 275 | 276 | "@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.3.0", "@babel/types@^7.3.3": 277 | version "7.17.10" 278 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz" 279 | integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== 280 | dependencies: 281 | "@babel/helper-validator-identifier" "^7.16.7" 282 | to-fast-properties "^2.0.0" 283 | 284 | "@bcoe/v8-coverage@^0.2.3": 285 | version "0.2.3" 286 | resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" 287 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== 288 | 289 | "@eslint/eslintrc@^1.3.3": 290 | version "1.3.3" 291 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz" 292 | integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== 293 | dependencies: 294 | ajv "^6.12.4" 295 | debug "^4.3.2" 296 | espree "^9.4.0" 297 | globals "^13.15.0" 298 | ignore "^5.2.0" 299 | import-fresh "^3.2.1" 300 | js-yaml "^4.1.0" 301 | minimatch "^3.1.2" 302 | strip-json-comments "^3.1.1" 303 | 304 | "@humanwhocodes/config-array@^0.11.6": 305 | version "0.11.7" 306 | resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz" 307 | integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== 308 | dependencies: 309 | "@humanwhocodes/object-schema" "^1.2.1" 310 | debug "^4.1.1" 311 | minimatch "^3.0.5" 312 | 313 | "@humanwhocodes/module-importer@^1.0.1": 314 | version "1.0.1" 315 | resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" 316 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 317 | 318 | "@humanwhocodes/object-schema@^1.2.1": 319 | version "1.2.1" 320 | resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" 321 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 322 | 323 | "@istanbuljs/load-nyc-config@^1.0.0": 324 | version "1.1.0" 325 | resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" 326 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== 327 | dependencies: 328 | camelcase "^5.3.1" 329 | find-up "^4.1.0" 330 | get-package-type "^0.1.0" 331 | js-yaml "^3.13.1" 332 | resolve-from "^5.0.0" 333 | 334 | "@istanbuljs/schema@^0.1.2": 335 | version "0.1.3" 336 | resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" 337 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 338 | 339 | "@jest/console@^28.1.0": 340 | version "28.1.0" 341 | resolved "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz" 342 | integrity sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA== 343 | dependencies: 344 | "@jest/types" "^28.1.0" 345 | "@types/node" "*" 346 | chalk "^4.0.0" 347 | jest-message-util "^28.1.0" 348 | jest-util "^28.1.0" 349 | slash "^3.0.0" 350 | 351 | "@jest/core@^28.1.0": 352 | version "28.1.0" 353 | resolved "https://registry.npmjs.org/@jest/core/-/core-28.1.0.tgz" 354 | integrity sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g== 355 | dependencies: 356 | "@jest/console" "^28.1.0" 357 | "@jest/reporters" "^28.1.0" 358 | "@jest/test-result" "^28.1.0" 359 | "@jest/transform" "^28.1.0" 360 | "@jest/types" "^28.1.0" 361 | "@types/node" "*" 362 | ansi-escapes "^4.2.1" 363 | chalk "^4.0.0" 364 | ci-info "^3.2.0" 365 | exit "^0.1.2" 366 | graceful-fs "^4.2.9" 367 | jest-changed-files "^28.0.2" 368 | jest-config "^28.1.0" 369 | jest-haste-map "^28.1.0" 370 | jest-message-util "^28.1.0" 371 | jest-regex-util "^28.0.2" 372 | jest-resolve "^28.1.0" 373 | jest-resolve-dependencies "^28.1.0" 374 | jest-runner "^28.1.0" 375 | jest-runtime "^28.1.0" 376 | jest-snapshot "^28.1.0" 377 | jest-util "^28.1.0" 378 | jest-validate "^28.1.0" 379 | jest-watcher "^28.1.0" 380 | micromatch "^4.0.4" 381 | pretty-format "^28.1.0" 382 | rimraf "^3.0.0" 383 | slash "^3.0.0" 384 | strip-ansi "^6.0.0" 385 | 386 | "@jest/environment@^28.1.0": 387 | version "28.1.0" 388 | resolved "https://registry.npmjs.org/@jest/environment/-/environment-28.1.0.tgz" 389 | integrity sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA== 390 | dependencies: 391 | "@jest/fake-timers" "^28.1.0" 392 | "@jest/types" "^28.1.0" 393 | "@types/node" "*" 394 | jest-mock "^28.1.0" 395 | 396 | "@jest/expect-utils@^28.1.0": 397 | version "28.1.0" 398 | resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.0.tgz" 399 | integrity sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw== 400 | dependencies: 401 | jest-get-type "^28.0.2" 402 | 403 | "@jest/expect@^28.1.0": 404 | version "28.1.0" 405 | resolved "https://registry.npmjs.org/@jest/expect/-/expect-28.1.0.tgz" 406 | integrity sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA== 407 | dependencies: 408 | expect "^28.1.0" 409 | jest-snapshot "^28.1.0" 410 | 411 | "@jest/fake-timers@^28.1.0": 412 | version "28.1.0" 413 | resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.0.tgz" 414 | integrity sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg== 415 | dependencies: 416 | "@jest/types" "^28.1.0" 417 | "@sinonjs/fake-timers" "^9.1.1" 418 | "@types/node" "*" 419 | jest-message-util "^28.1.0" 420 | jest-mock "^28.1.0" 421 | jest-util "^28.1.0" 422 | 423 | "@jest/globals@^28.1.0": 424 | version "28.1.0" 425 | resolved "https://registry.npmjs.org/@jest/globals/-/globals-28.1.0.tgz" 426 | integrity sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw== 427 | dependencies: 428 | "@jest/environment" "^28.1.0" 429 | "@jest/expect" "^28.1.0" 430 | "@jest/types" "^28.1.0" 431 | 432 | "@jest/reporters@^28.1.0": 433 | version "28.1.0" 434 | resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.0.tgz" 435 | integrity sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA== 436 | dependencies: 437 | "@bcoe/v8-coverage" "^0.2.3" 438 | "@jest/console" "^28.1.0" 439 | "@jest/test-result" "^28.1.0" 440 | "@jest/transform" "^28.1.0" 441 | "@jest/types" "^28.1.0" 442 | "@jridgewell/trace-mapping" "^0.3.7" 443 | "@types/node" "*" 444 | chalk "^4.0.0" 445 | collect-v8-coverage "^1.0.0" 446 | exit "^0.1.2" 447 | glob "^7.1.3" 448 | graceful-fs "^4.2.9" 449 | istanbul-lib-coverage "^3.0.0" 450 | istanbul-lib-instrument "^5.1.0" 451 | istanbul-lib-report "^3.0.0" 452 | istanbul-lib-source-maps "^4.0.0" 453 | istanbul-reports "^3.1.3" 454 | jest-util "^28.1.0" 455 | jest-worker "^28.1.0" 456 | slash "^3.0.0" 457 | string-length "^4.0.1" 458 | strip-ansi "^6.0.0" 459 | terminal-link "^2.0.0" 460 | v8-to-istanbul "^9.0.0" 461 | 462 | "@jest/schemas@^28.0.2": 463 | version "28.0.2" 464 | resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz" 465 | integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== 466 | dependencies: 467 | "@sinclair/typebox" "^0.23.3" 468 | 469 | "@jest/source-map@^28.0.2": 470 | version "28.0.2" 471 | resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz" 472 | integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== 473 | dependencies: 474 | "@jridgewell/trace-mapping" "^0.3.7" 475 | callsites "^3.0.0" 476 | graceful-fs "^4.2.9" 477 | 478 | "@jest/test-result@^28.1.0": 479 | version "28.1.0" 480 | resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz" 481 | integrity sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ== 482 | dependencies: 483 | "@jest/console" "^28.1.0" 484 | "@jest/types" "^28.1.0" 485 | "@types/istanbul-lib-coverage" "^2.0.0" 486 | collect-v8-coverage "^1.0.0" 487 | 488 | "@jest/test-sequencer@^28.1.0": 489 | version "28.1.0" 490 | resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz" 491 | integrity sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ== 492 | dependencies: 493 | "@jest/test-result" "^28.1.0" 494 | graceful-fs "^4.2.9" 495 | jest-haste-map "^28.1.0" 496 | slash "^3.0.0" 497 | 498 | "@jest/transform@^28.1.0": 499 | version "28.1.0" 500 | resolved "https://registry.npmjs.org/@jest/transform/-/transform-28.1.0.tgz" 501 | integrity sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA== 502 | dependencies: 503 | "@babel/core" "^7.11.6" 504 | "@jest/types" "^28.1.0" 505 | "@jridgewell/trace-mapping" "^0.3.7" 506 | babel-plugin-istanbul "^6.1.1" 507 | chalk "^4.0.0" 508 | convert-source-map "^1.4.0" 509 | fast-json-stable-stringify "^2.0.0" 510 | graceful-fs "^4.2.9" 511 | jest-haste-map "^28.1.0" 512 | jest-regex-util "^28.0.2" 513 | jest-util "^28.1.0" 514 | micromatch "^4.0.4" 515 | pirates "^4.0.4" 516 | slash "^3.0.0" 517 | write-file-atomic "^4.0.1" 518 | 519 | "@jest/types@^28.1.0": 520 | version "28.1.0" 521 | resolved "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz" 522 | integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA== 523 | dependencies: 524 | "@jest/schemas" "^28.0.2" 525 | "@types/istanbul-lib-coverage" "^2.0.0" 526 | "@types/istanbul-reports" "^3.0.0" 527 | "@types/node" "*" 528 | "@types/yargs" "^17.0.8" 529 | chalk "^4.0.0" 530 | 531 | "@jridgewell/gen-mapping@^0.1.0": 532 | version "0.1.1" 533 | resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" 534 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 535 | dependencies: 536 | "@jridgewell/set-array" "^1.0.0" 537 | "@jridgewell/sourcemap-codec" "^1.4.10" 538 | 539 | "@jridgewell/resolve-uri@^3.0.3": 540 | version "3.0.7" 541 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" 542 | integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== 543 | 544 | "@jridgewell/set-array@^1.0.0": 545 | version "1.1.1" 546 | resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz" 547 | integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== 548 | 549 | "@jridgewell/sourcemap-codec@^1.4.10": 550 | version "1.4.13" 551 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" 552 | integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== 553 | 554 | "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": 555 | version "0.3.13" 556 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz" 557 | integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== 558 | dependencies: 559 | "@jridgewell/resolve-uri" "^3.0.3" 560 | "@jridgewell/sourcemap-codec" "^1.4.10" 561 | 562 | "@nodelib/fs.scandir@2.1.5": 563 | version "2.1.5" 564 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 565 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 566 | dependencies: 567 | "@nodelib/fs.stat" "2.0.5" 568 | run-parallel "^1.1.9" 569 | 570 | "@nodelib/fs.stat@2.0.5": 571 | version "2.0.5" 572 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 573 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 574 | 575 | "@nodelib/fs.walk@^1.2.8": 576 | version "1.2.8" 577 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" 578 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 579 | dependencies: 580 | "@nodelib/fs.scandir" "2.1.5" 581 | fastq "^1.6.0" 582 | 583 | "@sinclair/typebox@^0.23.3": 584 | version "0.23.5" 585 | resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz" 586 | integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== 587 | 588 | "@sinonjs/commons@^1.7.0": 589 | version "1.8.3" 590 | resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" 591 | integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== 592 | dependencies: 593 | type-detect "4.0.8" 594 | 595 | "@sinonjs/fake-timers@^9.1.1": 596 | version "9.1.2" 597 | resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" 598 | integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== 599 | dependencies: 600 | "@sinonjs/commons" "^1.7.0" 601 | 602 | "@types/babel__core@^7.1.14": 603 | version "7.1.19" 604 | resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" 605 | integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== 606 | dependencies: 607 | "@babel/parser" "^7.1.0" 608 | "@babel/types" "^7.0.0" 609 | "@types/babel__generator" "*" 610 | "@types/babel__template" "*" 611 | "@types/babel__traverse" "*" 612 | 613 | "@types/babel__generator@*": 614 | version "7.6.4" 615 | resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" 616 | integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== 617 | dependencies: 618 | "@babel/types" "^7.0.0" 619 | 620 | "@types/babel__template@*": 621 | version "7.4.1" 622 | resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" 623 | integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== 624 | dependencies: 625 | "@babel/parser" "^7.1.0" 626 | "@babel/types" "^7.0.0" 627 | 628 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": 629 | version "7.17.1" 630 | resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" 631 | integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== 632 | dependencies: 633 | "@babel/types" "^7.3.0" 634 | 635 | "@types/component-emitter@^1.2.10": 636 | version "1.2.11" 637 | resolved "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz" 638 | integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== 639 | 640 | "@types/cookie@^0.4.1": 641 | version "0.4.1" 642 | resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" 643 | integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== 644 | 645 | "@types/cors@^2.8.12": 646 | version "2.8.12" 647 | resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" 648 | integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== 649 | 650 | "@types/graceful-fs@^4.1.3": 651 | version "4.1.5" 652 | resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" 653 | integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== 654 | dependencies: 655 | "@types/node" "*" 656 | 657 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": 658 | version "2.0.4" 659 | resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" 660 | integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== 661 | 662 | "@types/istanbul-lib-report@*": 663 | version "3.0.0" 664 | resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 665 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 666 | dependencies: 667 | "@types/istanbul-lib-coverage" "*" 668 | 669 | "@types/istanbul-reports@^3.0.0": 670 | version "3.0.1" 671 | resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" 672 | integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== 673 | dependencies: 674 | "@types/istanbul-lib-report" "*" 675 | 676 | "@types/json5@^0.0.29": 677 | version "0.0.29" 678 | resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" 679 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 680 | 681 | "@types/node@*", "@types/node@>=10.0.0": 682 | version "17.0.33" 683 | resolved "https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz" 684 | integrity sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ== 685 | 686 | "@types/prettier@^2.1.5": 687 | version "2.6.1" 688 | resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.1.tgz" 689 | integrity sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw== 690 | 691 | "@types/stack-utils@^2.0.0": 692 | version "2.0.1" 693 | resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" 694 | integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== 695 | 696 | "@types/yargs-parser@*": 697 | version "21.0.0" 698 | resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" 699 | integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== 700 | 701 | "@types/yargs@^17.0.8": 702 | version "17.0.10" 703 | resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" 704 | integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== 705 | dependencies: 706 | "@types/yargs-parser" "*" 707 | 708 | accepts@~1.3.4: 709 | version "1.3.8" 710 | resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" 711 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 712 | dependencies: 713 | mime-types "~2.1.34" 714 | negotiator "0.6.3" 715 | 716 | acorn-jsx@^5.3.2: 717 | version "5.3.2" 718 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 719 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 720 | 721 | acorn@^8.8.0: 722 | version "8.8.1" 723 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz" 724 | integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== 725 | 726 | ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: 727 | version "6.12.6" 728 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 729 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 730 | dependencies: 731 | fast-deep-equal "^3.1.1" 732 | fast-json-stable-stringify "^2.0.0" 733 | json-schema-traverse "^0.4.1" 734 | uri-js "^4.2.2" 735 | 736 | ansi-escapes@^2.0.0: 737 | version "2.0.0" 738 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz" 739 | integrity sha512-tH/fSoQp4DrEodDK3QpdiWiZTSe7sBJ9eOqcQBZ0o9HTM+5M/viSEn+sPMoTuPjQQ8n++w3QJoPEjt8LVPcrCg== 740 | 741 | ansi-escapes@^4.2.1: 742 | version "4.3.2" 743 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" 744 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== 745 | dependencies: 746 | type-fest "^0.21.3" 747 | 748 | ansi-regex@^3.0.0: 749 | version "3.0.1" 750 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" 751 | integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== 752 | 753 | ansi-regex@^5.0.1: 754 | version "5.0.1" 755 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 756 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 757 | 758 | ansi-styles@^3.2.1: 759 | version "3.2.1" 760 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" 761 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 762 | dependencies: 763 | color-convert "^1.9.0" 764 | 765 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 766 | version "4.3.0" 767 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 768 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 769 | dependencies: 770 | color-convert "^2.0.1" 771 | 772 | ansi-styles@^5.0.0: 773 | version "5.2.0" 774 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" 775 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 776 | 777 | anymatch@^3.0.3: 778 | version "3.1.2" 779 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" 780 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 781 | dependencies: 782 | normalize-path "^3.0.0" 783 | picomatch "^2.0.4" 784 | 785 | argparse@^1.0.7: 786 | version "1.0.10" 787 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" 788 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 789 | dependencies: 790 | sprintf-js "~1.0.2" 791 | 792 | argparse@^2.0.1: 793 | version "2.0.1" 794 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 795 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 796 | 797 | array-includes@^3.1.4: 798 | version "3.1.5" 799 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz" 800 | integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== 801 | dependencies: 802 | call-bind "^1.0.2" 803 | define-properties "^1.1.4" 804 | es-abstract "^1.19.5" 805 | get-intrinsic "^1.1.1" 806 | is-string "^1.0.7" 807 | 808 | array.prototype.flat@^1.2.5: 809 | version "1.3.0" 810 | resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz" 811 | integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== 812 | dependencies: 813 | call-bind "^1.0.2" 814 | define-properties "^1.1.3" 815 | es-abstract "^1.19.2" 816 | es-shim-unscopables "^1.0.0" 817 | 818 | asn1@~0.2.3: 819 | version "0.2.6" 820 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" 821 | integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== 822 | dependencies: 823 | safer-buffer "~2.1.0" 824 | 825 | assert-plus@1.0.0, assert-plus@^1.0.0: 826 | version "1.0.0" 827 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" 828 | integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== 829 | 830 | asynckit@^0.4.0: 831 | version "0.4.0" 832 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 833 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 834 | 835 | aws-sign2@~0.7.0: 836 | version "0.7.0" 837 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" 838 | integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== 839 | 840 | aws4@^1.8.0: 841 | version "1.11.0" 842 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" 843 | integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== 844 | 845 | babel-jest@^28.1.0: 846 | version "28.1.0" 847 | resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.0.tgz" 848 | integrity sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w== 849 | dependencies: 850 | "@jest/transform" "^28.1.0" 851 | "@types/babel__core" "^7.1.14" 852 | babel-plugin-istanbul "^6.1.1" 853 | babel-preset-jest "^28.0.2" 854 | chalk "^4.0.0" 855 | graceful-fs "^4.2.9" 856 | slash "^3.0.0" 857 | 858 | babel-plugin-istanbul@^6.1.1: 859 | version "6.1.1" 860 | resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" 861 | integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== 862 | dependencies: 863 | "@babel/helper-plugin-utils" "^7.0.0" 864 | "@istanbuljs/load-nyc-config" "^1.0.0" 865 | "@istanbuljs/schema" "^0.1.2" 866 | istanbul-lib-instrument "^5.0.4" 867 | test-exclude "^6.0.0" 868 | 869 | babel-plugin-jest-hoist@^28.0.2: 870 | version "28.0.2" 871 | resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz" 872 | integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ== 873 | dependencies: 874 | "@babel/template" "^7.3.3" 875 | "@babel/types" "^7.3.3" 876 | "@types/babel__core" "^7.1.14" 877 | "@types/babel__traverse" "^7.0.6" 878 | 879 | babel-preset-current-node-syntax@^1.0.0: 880 | version "1.0.1" 881 | resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" 882 | integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== 883 | dependencies: 884 | "@babel/plugin-syntax-async-generators" "^7.8.4" 885 | "@babel/plugin-syntax-bigint" "^7.8.3" 886 | "@babel/plugin-syntax-class-properties" "^7.8.3" 887 | "@babel/plugin-syntax-import-meta" "^7.8.3" 888 | "@babel/plugin-syntax-json-strings" "^7.8.3" 889 | "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" 890 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 891 | "@babel/plugin-syntax-numeric-separator" "^7.8.3" 892 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 893 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 894 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 895 | "@babel/plugin-syntax-top-level-await" "^7.8.3" 896 | 897 | babel-preset-jest@^28.0.2: 898 | version "28.0.2" 899 | resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz" 900 | integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ== 901 | dependencies: 902 | babel-plugin-jest-hoist "^28.0.2" 903 | babel-preset-current-node-syntax "^1.0.0" 904 | 905 | balanced-match@^1.0.0: 906 | version "1.0.2" 907 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 908 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 909 | 910 | base64id@2.0.0, base64id@~2.0.0: 911 | version "2.0.0" 912 | resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" 913 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 914 | 915 | bcrypt-pbkdf@^1.0.0: 916 | version "1.0.2" 917 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" 918 | integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== 919 | dependencies: 920 | tweetnacl "^0.14.3" 921 | 922 | brace-expansion@^1.1.7: 923 | version "1.1.11" 924 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 925 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 926 | dependencies: 927 | balanced-match "^1.0.0" 928 | concat-map "0.0.1" 929 | 930 | braces@^3.0.2: 931 | version "3.0.2" 932 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" 933 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 934 | dependencies: 935 | fill-range "^7.0.1" 936 | 937 | browserslist@^4.20.2: 938 | version "4.20.3" 939 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz" 940 | integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== 941 | dependencies: 942 | caniuse-lite "^1.0.30001332" 943 | electron-to-chromium "^1.4.118" 944 | escalade "^3.1.1" 945 | node-releases "^2.0.3" 946 | picocolors "^1.0.0" 947 | 948 | bser@2.1.1: 949 | version "2.1.1" 950 | resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" 951 | integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== 952 | dependencies: 953 | node-int64 "^0.4.0" 954 | 955 | buffer-from@^1.0.0: 956 | version "1.1.2" 957 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" 958 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 959 | 960 | call-bind@^1.0.0, call-bind@^1.0.2: 961 | version "1.0.2" 962 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" 963 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 964 | dependencies: 965 | function-bind "^1.1.1" 966 | get-intrinsic "^1.0.2" 967 | 968 | callsites@^3.0.0: 969 | version "3.1.0" 970 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 971 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 972 | 973 | camelcase@^5.3.1: 974 | version "5.3.1" 975 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" 976 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 977 | 978 | camelcase@^6.2.0: 979 | version "6.3.0" 980 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" 981 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 982 | 983 | caniuse-lite@^1.0.30001332: 984 | version "1.0.30001341" 985 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz" 986 | integrity sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA== 987 | 988 | caseless@~0.12.0: 989 | version "0.12.0" 990 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" 991 | integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== 992 | 993 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: 994 | version "2.4.2" 995 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 996 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 997 | dependencies: 998 | ansi-styles "^3.2.1" 999 | escape-string-regexp "^1.0.5" 1000 | supports-color "^5.3.0" 1001 | 1002 | chalk@^4.0.0: 1003 | version "4.1.2" 1004 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 1005 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 1006 | dependencies: 1007 | ansi-styles "^4.1.0" 1008 | supports-color "^7.1.0" 1009 | 1010 | char-regex@^1.0.2: 1011 | version "1.0.2" 1012 | resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" 1013 | integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== 1014 | 1015 | ci-info@^1.5.0: 1016 | version "1.6.0" 1017 | resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz" 1018 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 1019 | 1020 | ci-info@^3.2.0: 1021 | version "3.3.1" 1022 | resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz" 1023 | integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== 1024 | 1025 | cjs-module-lexer@^1.0.0: 1026 | version "1.2.2" 1027 | resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" 1028 | integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== 1029 | 1030 | cliui@^7.0.2: 1031 | version "7.0.4" 1032 | resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" 1033 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 1034 | dependencies: 1035 | string-width "^4.2.0" 1036 | strip-ansi "^6.0.0" 1037 | wrap-ansi "^7.0.0" 1038 | 1039 | co@^4.6.0: 1040 | version "4.6.0" 1041 | resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" 1042 | integrity "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" 1043 | 1044 | collect-v8-coverage@^1.0.0: 1045 | version "1.0.1" 1046 | resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" 1047 | integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== 1048 | 1049 | color-convert@^1.9.0: 1050 | version "1.9.3" 1051 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" 1052 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1053 | dependencies: 1054 | color-name "1.1.3" 1055 | 1056 | color-convert@^2.0.1: 1057 | version "2.0.1" 1058 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 1059 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1060 | dependencies: 1061 | color-name "~1.1.4" 1062 | 1063 | color-name@1.1.3: 1064 | version "1.1.3" 1065 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" 1066 | integrity "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1067 | 1068 | color-name@~1.1.4: 1069 | version "1.1.4" 1070 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 1071 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1072 | 1073 | combined-stream@^1.0.6, combined-stream@~1.0.6: 1074 | version "1.0.8" 1075 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 1076 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 1077 | dependencies: 1078 | delayed-stream "~1.0.0" 1079 | 1080 | component-emitter@~1.3.0: 1081 | version "1.3.0" 1082 | resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" 1083 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 1084 | 1085 | concat-map@0.0.1: 1086 | version "0.0.1" 1087 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 1088 | integrity "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 1089 | 1090 | confusing-browser-globals@^1.0.10: 1091 | version "1.0.11" 1092 | resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz" 1093 | integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== 1094 | 1095 | convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: 1096 | version "1.8.0" 1097 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" 1098 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 1099 | dependencies: 1100 | safe-buffer "~5.1.1" 1101 | 1102 | cookie@~0.4.1: 1103 | version "0.4.2" 1104 | resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" 1105 | integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== 1106 | 1107 | core-util-is@1.0.2: 1108 | version "1.0.2" 1109 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" 1110 | integrity "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" 1111 | 1112 | cors@~2.8.5: 1113 | version "2.8.5" 1114 | resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" 1115 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 1116 | dependencies: 1117 | object-assign "^4" 1118 | vary "^1" 1119 | 1120 | coveralls@^3.0.0: 1121 | version "3.1.1" 1122 | resolved "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz" 1123 | integrity sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww== 1124 | dependencies: 1125 | js-yaml "^3.13.1" 1126 | lcov-parse "^1.0.0" 1127 | log-driver "^1.2.7" 1128 | minimist "^1.2.5" 1129 | request "^2.88.2" 1130 | 1131 | cross-spawn@^7.0.2, cross-spawn@^7.0.3: 1132 | version "7.0.3" 1133 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 1134 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 1135 | dependencies: 1136 | path-key "^3.1.0" 1137 | shebang-command "^2.0.0" 1138 | which "^2.0.1" 1139 | 1140 | dashdash@^1.12.0: 1141 | version "1.14.1" 1142 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" 1143 | integrity "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==" 1144 | dependencies: 1145 | assert-plus "^1.0.0" 1146 | 1147 | debug@^2.6.9: 1148 | version "2.6.9" 1149 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 1150 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 1151 | dependencies: 1152 | ms "2.0.0" 1153 | 1154 | debug@^3.2.7: 1155 | version "3.2.7" 1156 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" 1157 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 1158 | dependencies: 1159 | ms "^2.1.1" 1160 | 1161 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@~4.3.1, debug@~4.3.2: 1162 | version "4.3.4" 1163 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 1164 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 1165 | dependencies: 1166 | ms "2.1.2" 1167 | 1168 | dedent@^0.7.0: 1169 | version "0.7.0" 1170 | resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" 1171 | integrity "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" 1172 | 1173 | deep-is@^0.1.3: 1174 | version "0.1.4" 1175 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" 1176 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 1177 | 1178 | deepmerge@^4.2.2: 1179 | version "4.2.2" 1180 | resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" 1181 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 1182 | 1183 | define-properties@^1.1.3, define-properties@^1.1.4: 1184 | version "1.1.4" 1185 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" 1186 | integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== 1187 | dependencies: 1188 | has-property-descriptors "^1.0.0" 1189 | object-keys "^1.1.1" 1190 | 1191 | delayed-stream@~1.0.0: 1192 | version "1.0.0" 1193 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 1194 | integrity "sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 1195 | 1196 | detect-newline@^3.0.0: 1197 | version "3.1.0" 1198 | resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" 1199 | integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== 1200 | 1201 | diff-sequences@^28.0.2: 1202 | version "28.0.2" 1203 | resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz" 1204 | integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== 1205 | 1206 | doctrine@^2.1.0: 1207 | version "2.1.0" 1208 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" 1209 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 1210 | dependencies: 1211 | esutils "^2.0.2" 1212 | 1213 | doctrine@^3.0.0: 1214 | version "3.0.0" 1215 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 1216 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 1217 | dependencies: 1218 | esutils "^2.0.2" 1219 | 1220 | ecc-jsbn@~0.1.1: 1221 | version "0.1.2" 1222 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" 1223 | integrity "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==" 1224 | dependencies: 1225 | jsbn "~0.1.0" 1226 | safer-buffer "^2.1.0" 1227 | 1228 | electron-to-chromium@^1.4.118: 1229 | version "1.4.137" 1230 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz" 1231 | integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== 1232 | 1233 | emittery@^0.10.2: 1234 | version "0.10.2" 1235 | resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" 1236 | integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== 1237 | 1238 | emoji-regex@^8.0.0: 1239 | version "8.0.0" 1240 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 1241 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1242 | 1243 | engine.io-parser@~5.0.3: 1244 | version "5.0.4" 1245 | resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz" 1246 | integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== 1247 | 1248 | engine.io@~6.2.0: 1249 | version "6.2.1" 1250 | resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz" 1251 | integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== 1252 | dependencies: 1253 | "@types/cookie" "^0.4.1" 1254 | "@types/cors" "^2.8.12" 1255 | "@types/node" ">=10.0.0" 1256 | accepts "~1.3.4" 1257 | base64id "2.0.0" 1258 | cookie "~0.4.1" 1259 | cors "~2.8.5" 1260 | debug "~4.3.1" 1261 | engine.io-parser "~5.0.3" 1262 | ws "~8.2.3" 1263 | 1264 | error-ex@^1.3.1: 1265 | version "1.3.2" 1266 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 1267 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1268 | dependencies: 1269 | is-arrayish "^0.2.1" 1270 | 1271 | es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.4: 1272 | version "1.20.4" 1273 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz" 1274 | integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== 1275 | dependencies: 1276 | call-bind "^1.0.2" 1277 | es-to-primitive "^1.2.1" 1278 | function-bind "^1.1.1" 1279 | function.prototype.name "^1.1.5" 1280 | get-intrinsic "^1.1.3" 1281 | get-symbol-description "^1.0.0" 1282 | has "^1.0.3" 1283 | has-property-descriptors "^1.0.0" 1284 | has-symbols "^1.0.3" 1285 | internal-slot "^1.0.3" 1286 | is-callable "^1.2.7" 1287 | is-negative-zero "^2.0.2" 1288 | is-regex "^1.1.4" 1289 | is-shared-array-buffer "^1.0.2" 1290 | is-string "^1.0.7" 1291 | is-weakref "^1.0.2" 1292 | object-inspect "^1.12.2" 1293 | object-keys "^1.1.1" 1294 | object.assign "^4.1.4" 1295 | regexp.prototype.flags "^1.4.3" 1296 | safe-regex-test "^1.0.0" 1297 | string.prototype.trimend "^1.0.5" 1298 | string.prototype.trimstart "^1.0.5" 1299 | unbox-primitive "^1.0.2" 1300 | 1301 | es-shim-unscopables@^1.0.0: 1302 | version "1.0.0" 1303 | resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" 1304 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== 1305 | dependencies: 1306 | has "^1.0.3" 1307 | 1308 | es-to-primitive@^1.2.1: 1309 | version "1.2.1" 1310 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" 1311 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 1312 | dependencies: 1313 | is-callable "^1.1.4" 1314 | is-date-object "^1.0.1" 1315 | is-symbol "^1.0.2" 1316 | 1317 | escalade@^3.1.1: 1318 | version "3.1.1" 1319 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 1320 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1321 | 1322 | escape-string-regexp@^1.0.5: 1323 | version "1.0.5" 1324 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 1325 | integrity "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 1326 | 1327 | escape-string-regexp@^2.0.0: 1328 | version "2.0.0" 1329 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" 1330 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== 1331 | 1332 | escape-string-regexp@^4.0.0: 1333 | version "4.0.0" 1334 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 1335 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 1336 | 1337 | eslint-config-airbnb-base@^15.0.0: 1338 | version "15.0.0" 1339 | resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz" 1340 | integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== 1341 | dependencies: 1342 | confusing-browser-globals "^1.0.10" 1343 | object.assign "^4.1.2" 1344 | object.entries "^1.1.5" 1345 | semver "^6.3.0" 1346 | 1347 | eslint-formatter-pretty@^1.3.0: 1348 | version "1.3.0" 1349 | resolved "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-1.3.0.tgz" 1350 | integrity sha512-5DY64Y1rYCm7cfFDHEGUn54bvCnK+wSUVF07N8oXeqUJFSd+gnYOTXbzelQ1HurESluY6gnEQPmXOIkB4Wa+gA== 1351 | dependencies: 1352 | ansi-escapes "^2.0.0" 1353 | chalk "^2.1.0" 1354 | log-symbols "^2.0.0" 1355 | plur "^2.1.2" 1356 | string-width "^2.0.0" 1357 | 1358 | eslint-import-resolver-node@^0.3.6: 1359 | version "0.3.6" 1360 | resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" 1361 | integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== 1362 | dependencies: 1363 | debug "^3.2.7" 1364 | resolve "^1.20.0" 1365 | 1366 | eslint-module-utils@^2.7.3: 1367 | version "2.7.3" 1368 | resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz" 1369 | integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== 1370 | dependencies: 1371 | debug "^3.2.7" 1372 | find-up "^2.1.0" 1373 | 1374 | eslint-plugin-import@^2.9.0: 1375 | version "2.26.0" 1376 | resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz" 1377 | integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== 1378 | dependencies: 1379 | array-includes "^3.1.4" 1380 | array.prototype.flat "^1.2.5" 1381 | debug "^2.6.9" 1382 | doctrine "^2.1.0" 1383 | eslint-import-resolver-node "^0.3.6" 1384 | eslint-module-utils "^2.7.3" 1385 | has "^1.0.3" 1386 | is-core-module "^2.8.1" 1387 | is-glob "^4.0.3" 1388 | minimatch "^3.1.2" 1389 | object.values "^1.1.5" 1390 | resolve "^1.22.0" 1391 | tsconfig-paths "^3.14.1" 1392 | 1393 | eslint-scope@^7.1.1: 1394 | version "7.1.1" 1395 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" 1396 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== 1397 | dependencies: 1398 | esrecurse "^4.3.0" 1399 | estraverse "^5.2.0" 1400 | 1401 | eslint-utils@^3.0.0: 1402 | version "3.0.0" 1403 | resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" 1404 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 1405 | dependencies: 1406 | eslint-visitor-keys "^2.0.0" 1407 | 1408 | eslint-visitor-keys@^2.0.0: 1409 | version "2.1.0" 1410 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" 1411 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 1412 | 1413 | eslint-visitor-keys@^3.3.0: 1414 | version "3.3.0" 1415 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" 1416 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 1417 | 1418 | eslint@^8.28.0: 1419 | version "8.28.0" 1420 | resolved "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz" 1421 | integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== 1422 | dependencies: 1423 | "@eslint/eslintrc" "^1.3.3" 1424 | "@humanwhocodes/config-array" "^0.11.6" 1425 | "@humanwhocodes/module-importer" "^1.0.1" 1426 | "@nodelib/fs.walk" "^1.2.8" 1427 | ajv "^6.10.0" 1428 | chalk "^4.0.0" 1429 | cross-spawn "^7.0.2" 1430 | debug "^4.3.2" 1431 | doctrine "^3.0.0" 1432 | escape-string-regexp "^4.0.0" 1433 | eslint-scope "^7.1.1" 1434 | eslint-utils "^3.0.0" 1435 | eslint-visitor-keys "^3.3.0" 1436 | espree "^9.4.0" 1437 | esquery "^1.4.0" 1438 | esutils "^2.0.2" 1439 | fast-deep-equal "^3.1.3" 1440 | file-entry-cache "^6.0.1" 1441 | find-up "^5.0.0" 1442 | glob-parent "^6.0.2" 1443 | globals "^13.15.0" 1444 | grapheme-splitter "^1.0.4" 1445 | ignore "^5.2.0" 1446 | import-fresh "^3.0.0" 1447 | imurmurhash "^0.1.4" 1448 | is-glob "^4.0.0" 1449 | is-path-inside "^3.0.3" 1450 | js-sdsl "^4.1.4" 1451 | js-yaml "^4.1.0" 1452 | json-stable-stringify-without-jsonify "^1.0.1" 1453 | levn "^0.4.1" 1454 | lodash.merge "^4.6.2" 1455 | minimatch "^3.1.2" 1456 | natural-compare "^1.4.0" 1457 | optionator "^0.9.1" 1458 | regexpp "^3.2.0" 1459 | strip-ansi "^6.0.1" 1460 | strip-json-comments "^3.1.0" 1461 | text-table "^0.2.0" 1462 | 1463 | espree@^9.4.0: 1464 | version "9.4.1" 1465 | resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" 1466 | integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== 1467 | dependencies: 1468 | acorn "^8.8.0" 1469 | acorn-jsx "^5.3.2" 1470 | eslint-visitor-keys "^3.3.0" 1471 | 1472 | esprima@^4.0.0: 1473 | version "4.0.1" 1474 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" 1475 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1476 | 1477 | esquery@^1.4.0: 1478 | version "1.4.0" 1479 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" 1480 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 1481 | dependencies: 1482 | estraverse "^5.1.0" 1483 | 1484 | esrecurse@^4.3.0: 1485 | version "4.3.0" 1486 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 1487 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 1488 | dependencies: 1489 | estraverse "^5.2.0" 1490 | 1491 | estraverse@^5.1.0, estraverse@^5.2.0: 1492 | version "5.3.0" 1493 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 1494 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 1495 | 1496 | esutils@^2.0.2: 1497 | version "2.0.3" 1498 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 1499 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1500 | 1501 | execa@^5.0.0: 1502 | version "5.1.1" 1503 | resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" 1504 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 1505 | dependencies: 1506 | cross-spawn "^7.0.3" 1507 | get-stream "^6.0.0" 1508 | human-signals "^2.1.0" 1509 | is-stream "^2.0.0" 1510 | merge-stream "^2.0.0" 1511 | npm-run-path "^4.0.1" 1512 | onetime "^5.1.2" 1513 | signal-exit "^3.0.3" 1514 | strip-final-newline "^2.0.0" 1515 | 1516 | exit@^0.1.2: 1517 | version "0.1.2" 1518 | resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" 1519 | integrity "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" 1520 | 1521 | expect@^28.1.0: 1522 | version "28.1.0" 1523 | resolved "https://registry.npmjs.org/expect/-/expect-28.1.0.tgz" 1524 | integrity sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw== 1525 | dependencies: 1526 | "@jest/expect-utils" "^28.1.0" 1527 | jest-get-type "^28.0.2" 1528 | jest-matcher-utils "^28.1.0" 1529 | jest-message-util "^28.1.0" 1530 | jest-util "^28.1.0" 1531 | 1532 | extend@~3.0.2: 1533 | version "3.0.2" 1534 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" 1535 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 1536 | 1537 | extsprintf@1.3.0, extsprintf@^1.2.0: 1538 | version "1.3.0" 1539 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" 1540 | integrity "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" 1541 | 1542 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 1543 | version "3.1.3" 1544 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 1545 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1546 | 1547 | fast-json-stable-stringify@^2.0.0: 1548 | version "2.1.0" 1549 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 1550 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1551 | 1552 | fast-levenshtein@^2.0.6: 1553 | version "2.0.6" 1554 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 1555 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 1556 | 1557 | fastq@^1.6.0: 1558 | version "1.13.0" 1559 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" 1560 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 1561 | dependencies: 1562 | reusify "^1.0.4" 1563 | 1564 | fb-watchman@^2.0.0: 1565 | version "2.0.1" 1566 | resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" 1567 | integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== 1568 | dependencies: 1569 | bser "2.1.1" 1570 | 1571 | file-entry-cache@^6.0.1: 1572 | version "6.0.1" 1573 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" 1574 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 1575 | dependencies: 1576 | flat-cache "^3.0.4" 1577 | 1578 | fill-range@^7.0.1: 1579 | version "7.0.1" 1580 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" 1581 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1582 | dependencies: 1583 | to-regex-range "^5.0.1" 1584 | 1585 | find-up@^2.1.0: 1586 | version "2.1.0" 1587 | resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" 1588 | integrity "sha1-RdG35QbHF93UgndaK3eSCjwMV6c= sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==" 1589 | dependencies: 1590 | locate-path "^2.0.0" 1591 | 1592 | find-up@^4.0.0, find-up@^4.1.0: 1593 | version "4.1.0" 1594 | resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 1595 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1596 | dependencies: 1597 | locate-path "^5.0.0" 1598 | path-exists "^4.0.0" 1599 | 1600 | find-up@^5.0.0: 1601 | version "5.0.0" 1602 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 1603 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 1604 | dependencies: 1605 | locate-path "^6.0.0" 1606 | path-exists "^4.0.0" 1607 | 1608 | flat-cache@^3.0.4: 1609 | version "3.0.4" 1610 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" 1611 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 1612 | dependencies: 1613 | flatted "^3.1.0" 1614 | rimraf "^3.0.2" 1615 | 1616 | flatted@^3.1.0: 1617 | version "3.2.7" 1618 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" 1619 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 1620 | 1621 | forever-agent@~0.6.1: 1622 | version "0.6.1" 1623 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" 1624 | integrity "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" 1625 | 1626 | form-data@~2.3.2: 1627 | version "2.3.3" 1628 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" 1629 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 1630 | dependencies: 1631 | asynckit "^0.4.0" 1632 | combined-stream "^1.0.6" 1633 | mime-types "^2.1.12" 1634 | 1635 | fs.realpath@^1.0.0: 1636 | version "1.0.0" 1637 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 1638 | integrity "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 1639 | 1640 | fsevents@^2.3.2: 1641 | version "2.3.2" 1642 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" 1643 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1644 | 1645 | function-bind@^1.1.1: 1646 | version "1.1.1" 1647 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 1648 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1649 | 1650 | function.prototype.name@^1.1.5: 1651 | version "1.1.5" 1652 | resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" 1653 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== 1654 | dependencies: 1655 | call-bind "^1.0.2" 1656 | define-properties "^1.1.3" 1657 | es-abstract "^1.19.0" 1658 | functions-have-names "^1.2.2" 1659 | 1660 | functions-have-names@^1.2.2: 1661 | version "1.2.3" 1662 | resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" 1663 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 1664 | 1665 | gensync@^1.0.0-beta.2: 1666 | version "1.0.0-beta.2" 1667 | resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" 1668 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1669 | 1670 | get-caller-file@^2.0.5: 1671 | version "2.0.5" 1672 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 1673 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1674 | 1675 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: 1676 | version "1.1.3" 1677 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" 1678 | integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== 1679 | dependencies: 1680 | function-bind "^1.1.1" 1681 | has "^1.0.3" 1682 | has-symbols "^1.0.3" 1683 | 1684 | get-package-type@^0.1.0: 1685 | version "0.1.0" 1686 | resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" 1687 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== 1688 | 1689 | get-stream@^6.0.0: 1690 | version "6.0.1" 1691 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" 1692 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 1693 | 1694 | get-symbol-description@^1.0.0: 1695 | version "1.0.0" 1696 | resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" 1697 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 1698 | dependencies: 1699 | call-bind "^1.0.2" 1700 | get-intrinsic "^1.1.1" 1701 | 1702 | getpass@^0.1.1: 1703 | version "0.1.7" 1704 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" 1705 | integrity "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==" 1706 | dependencies: 1707 | assert-plus "^1.0.0" 1708 | 1709 | glob-parent@^6.0.2: 1710 | version "6.0.2" 1711 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" 1712 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1713 | dependencies: 1714 | is-glob "^4.0.3" 1715 | 1716 | glob@^7.1.3, glob@^7.1.4: 1717 | version "7.2.3" 1718 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" 1719 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1720 | dependencies: 1721 | fs.realpath "^1.0.0" 1722 | inflight "^1.0.4" 1723 | inherits "2" 1724 | minimatch "^3.1.1" 1725 | once "^1.3.0" 1726 | path-is-absolute "^1.0.0" 1727 | 1728 | globals@^11.1.0: 1729 | version "11.12.0" 1730 | resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" 1731 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1732 | 1733 | globals@^13.15.0: 1734 | version "13.18.0" 1735 | resolved "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz" 1736 | integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== 1737 | dependencies: 1738 | type-fest "^0.20.2" 1739 | 1740 | graceful-fs@^4.2.9: 1741 | version "4.2.10" 1742 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" 1743 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 1744 | 1745 | grapheme-splitter@^1.0.4: 1746 | version "1.0.4" 1747 | resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" 1748 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== 1749 | 1750 | har-schema@^2.0.0: 1751 | version "2.0.0" 1752 | resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" 1753 | integrity "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" 1754 | 1755 | har-validator@~5.1.3: 1756 | version "5.1.5" 1757 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" 1758 | integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== 1759 | dependencies: 1760 | ajv "^6.12.3" 1761 | har-schema "^2.0.0" 1762 | 1763 | has-bigints@^1.0.1, has-bigints@^1.0.2: 1764 | version "1.0.2" 1765 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" 1766 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 1767 | 1768 | has-flag@^3.0.0: 1769 | version "3.0.0" 1770 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 1771 | integrity "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 1772 | 1773 | has-flag@^4.0.0: 1774 | version "4.0.0" 1775 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 1776 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1777 | 1778 | has-property-descriptors@^1.0.0: 1779 | version "1.0.0" 1780 | resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" 1781 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== 1782 | dependencies: 1783 | get-intrinsic "^1.1.1" 1784 | 1785 | has-symbols@^1.0.2, has-symbols@^1.0.3: 1786 | version "1.0.3" 1787 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" 1788 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1789 | 1790 | has-tostringtag@^1.0.0: 1791 | version "1.0.0" 1792 | resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" 1793 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 1794 | dependencies: 1795 | has-symbols "^1.0.2" 1796 | 1797 | has@^1.0.3: 1798 | version "1.0.3" 1799 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 1800 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1801 | dependencies: 1802 | function-bind "^1.1.1" 1803 | 1804 | html-escaper@^2.0.0: 1805 | version "2.0.2" 1806 | resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" 1807 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1808 | 1809 | http-signature@~1.2.0: 1810 | version "1.2.0" 1811 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" 1812 | integrity "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==" 1813 | dependencies: 1814 | assert-plus "^1.0.0" 1815 | jsprim "^1.2.2" 1816 | sshpk "^1.7.0" 1817 | 1818 | human-signals@^2.1.0: 1819 | version "2.1.0" 1820 | resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" 1821 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 1822 | 1823 | husky@^0.14.3: 1824 | version "0.14.3" 1825 | resolved "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz" 1826 | integrity sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA== 1827 | dependencies: 1828 | is-ci "^1.0.10" 1829 | normalize-path "^1.0.0" 1830 | strip-indent "^2.0.0" 1831 | 1832 | ignore@^5.2.0: 1833 | version "5.2.1" 1834 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz" 1835 | integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== 1836 | 1837 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1838 | version "3.3.0" 1839 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" 1840 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1841 | dependencies: 1842 | parent-module "^1.0.0" 1843 | resolve-from "^4.0.0" 1844 | 1845 | import-local@^3.0.2: 1846 | version "3.1.0" 1847 | resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" 1848 | integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== 1849 | dependencies: 1850 | pkg-dir "^4.2.0" 1851 | resolve-cwd "^3.0.0" 1852 | 1853 | imurmurhash@^0.1.4: 1854 | version "0.1.4" 1855 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 1856 | integrity "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" 1857 | 1858 | inflight@^1.0.4: 1859 | version "1.0.6" 1860 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 1861 | integrity "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" 1862 | dependencies: 1863 | once "^1.3.0" 1864 | wrappy "1" 1865 | 1866 | inherits@2: 1867 | version "2.0.4" 1868 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 1869 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1870 | 1871 | internal-slot@^1.0.3: 1872 | version "1.0.3" 1873 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" 1874 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 1875 | dependencies: 1876 | get-intrinsic "^1.1.0" 1877 | has "^1.0.3" 1878 | side-channel "^1.0.4" 1879 | 1880 | irregular-plurals@^1.0.0: 1881 | version "1.4.0" 1882 | resolved "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz" 1883 | integrity "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y= sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==" 1884 | 1885 | is-arrayish@^0.2.1: 1886 | version "0.2.1" 1887 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 1888 | integrity "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 1889 | 1890 | is-bigint@^1.0.1: 1891 | version "1.0.4" 1892 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" 1893 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 1894 | dependencies: 1895 | has-bigints "^1.0.1" 1896 | 1897 | is-boolean-object@^1.1.0: 1898 | version "1.1.2" 1899 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" 1900 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 1901 | dependencies: 1902 | call-bind "^1.0.2" 1903 | has-tostringtag "^1.0.0" 1904 | 1905 | is-callable@^1.1.4, is-callable@^1.2.7: 1906 | version "1.2.7" 1907 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" 1908 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== 1909 | 1910 | is-ci@^1.0.10: 1911 | version "1.2.1" 1912 | resolved "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz" 1913 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 1914 | dependencies: 1915 | ci-info "^1.5.0" 1916 | 1917 | is-core-module@^2.8.1: 1918 | version "2.9.0" 1919 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" 1920 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== 1921 | dependencies: 1922 | has "^1.0.3" 1923 | 1924 | is-date-object@^1.0.1: 1925 | version "1.0.5" 1926 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" 1927 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 1928 | dependencies: 1929 | has-tostringtag "^1.0.0" 1930 | 1931 | is-extglob@^2.1.1: 1932 | version "2.1.1" 1933 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 1934 | integrity "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 1935 | 1936 | is-fullwidth-code-point@^2.0.0: 1937 | version "2.0.0" 1938 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" 1939 | integrity "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" 1940 | 1941 | is-fullwidth-code-point@^3.0.0: 1942 | version "3.0.0" 1943 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 1944 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1945 | 1946 | is-generator-fn@^2.0.0: 1947 | version "2.1.0" 1948 | resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" 1949 | integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== 1950 | 1951 | is-glob@^4.0.0, is-glob@^4.0.3: 1952 | version "4.0.3" 1953 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 1954 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1955 | dependencies: 1956 | is-extglob "^2.1.1" 1957 | 1958 | is-negative-zero@^2.0.2: 1959 | version "2.0.2" 1960 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" 1961 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 1962 | 1963 | is-number-object@^1.0.4: 1964 | version "1.0.7" 1965 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" 1966 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== 1967 | dependencies: 1968 | has-tostringtag "^1.0.0" 1969 | 1970 | is-number@^7.0.0: 1971 | version "7.0.0" 1972 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 1973 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1974 | 1975 | is-path-inside@^3.0.3: 1976 | version "3.0.3" 1977 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" 1978 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1979 | 1980 | is-regex@^1.1.4: 1981 | version "1.1.4" 1982 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" 1983 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 1984 | dependencies: 1985 | call-bind "^1.0.2" 1986 | has-tostringtag "^1.0.0" 1987 | 1988 | is-shared-array-buffer@^1.0.2: 1989 | version "1.0.2" 1990 | resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" 1991 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== 1992 | dependencies: 1993 | call-bind "^1.0.2" 1994 | 1995 | is-stream@^2.0.0: 1996 | version "2.0.1" 1997 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" 1998 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 1999 | 2000 | is-string@^1.0.5, is-string@^1.0.7: 2001 | version "1.0.7" 2002 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" 2003 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 2004 | dependencies: 2005 | has-tostringtag "^1.0.0" 2006 | 2007 | is-symbol@^1.0.2, is-symbol@^1.0.3: 2008 | version "1.0.4" 2009 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" 2010 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 2011 | dependencies: 2012 | has-symbols "^1.0.2" 2013 | 2014 | is-typedarray@~1.0.0: 2015 | version "1.0.0" 2016 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" 2017 | integrity "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" 2018 | 2019 | is-weakref@^1.0.2: 2020 | version "1.0.2" 2021 | resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" 2022 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 2023 | dependencies: 2024 | call-bind "^1.0.2" 2025 | 2026 | isexe@^2.0.0: 2027 | version "2.0.0" 2028 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 2029 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 2030 | 2031 | isstream@~0.1.2: 2032 | version "0.1.2" 2033 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" 2034 | integrity "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" 2035 | 2036 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: 2037 | version "3.2.0" 2038 | resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" 2039 | integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== 2040 | 2041 | istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: 2042 | version "5.2.0" 2043 | resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" 2044 | integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== 2045 | dependencies: 2046 | "@babel/core" "^7.12.3" 2047 | "@babel/parser" "^7.14.7" 2048 | "@istanbuljs/schema" "^0.1.2" 2049 | istanbul-lib-coverage "^3.2.0" 2050 | semver "^6.3.0" 2051 | 2052 | istanbul-lib-report@^3.0.0: 2053 | version "3.0.0" 2054 | resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 2055 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== 2056 | dependencies: 2057 | istanbul-lib-coverage "^3.0.0" 2058 | make-dir "^3.0.0" 2059 | supports-color "^7.1.0" 2060 | 2061 | istanbul-lib-source-maps@^4.0.0: 2062 | version "4.0.1" 2063 | resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" 2064 | integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== 2065 | dependencies: 2066 | debug "^4.1.1" 2067 | istanbul-lib-coverage "^3.0.0" 2068 | source-map "^0.6.1" 2069 | 2070 | istanbul-reports@^3.1.3: 2071 | version "3.1.4" 2072 | resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" 2073 | integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== 2074 | dependencies: 2075 | html-escaper "^2.0.0" 2076 | istanbul-lib-report "^3.0.0" 2077 | 2078 | jest-changed-files@^28.0.2: 2079 | version "28.0.2" 2080 | resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz" 2081 | integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== 2082 | dependencies: 2083 | execa "^5.0.0" 2084 | throat "^6.0.1" 2085 | 2086 | jest-circus@^28.1.0: 2087 | version "28.1.0" 2088 | resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.0.tgz" 2089 | integrity sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ== 2090 | dependencies: 2091 | "@jest/environment" "^28.1.0" 2092 | "@jest/expect" "^28.1.0" 2093 | "@jest/test-result" "^28.1.0" 2094 | "@jest/types" "^28.1.0" 2095 | "@types/node" "*" 2096 | chalk "^4.0.0" 2097 | co "^4.6.0" 2098 | dedent "^0.7.0" 2099 | is-generator-fn "^2.0.0" 2100 | jest-each "^28.1.0" 2101 | jest-matcher-utils "^28.1.0" 2102 | jest-message-util "^28.1.0" 2103 | jest-runtime "^28.1.0" 2104 | jest-snapshot "^28.1.0" 2105 | jest-util "^28.1.0" 2106 | pretty-format "^28.1.0" 2107 | slash "^3.0.0" 2108 | stack-utils "^2.0.3" 2109 | throat "^6.0.1" 2110 | 2111 | jest-cli@^28.1.0: 2112 | version "28.1.0" 2113 | resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.0.tgz" 2114 | integrity sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ== 2115 | dependencies: 2116 | "@jest/core" "^28.1.0" 2117 | "@jest/test-result" "^28.1.0" 2118 | "@jest/types" "^28.1.0" 2119 | chalk "^4.0.0" 2120 | exit "^0.1.2" 2121 | graceful-fs "^4.2.9" 2122 | import-local "^3.0.2" 2123 | jest-config "^28.1.0" 2124 | jest-util "^28.1.0" 2125 | jest-validate "^28.1.0" 2126 | prompts "^2.0.1" 2127 | yargs "^17.3.1" 2128 | 2129 | jest-config@^28.1.0: 2130 | version "28.1.0" 2131 | resolved "https://registry.npmjs.org/jest-config/-/jest-config-28.1.0.tgz" 2132 | integrity sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA== 2133 | dependencies: 2134 | "@babel/core" "^7.11.6" 2135 | "@jest/test-sequencer" "^28.1.0" 2136 | "@jest/types" "^28.1.0" 2137 | babel-jest "^28.1.0" 2138 | chalk "^4.0.0" 2139 | ci-info "^3.2.0" 2140 | deepmerge "^4.2.2" 2141 | glob "^7.1.3" 2142 | graceful-fs "^4.2.9" 2143 | jest-circus "^28.1.0" 2144 | jest-environment-node "^28.1.0" 2145 | jest-get-type "^28.0.2" 2146 | jest-regex-util "^28.0.2" 2147 | jest-resolve "^28.1.0" 2148 | jest-runner "^28.1.0" 2149 | jest-util "^28.1.0" 2150 | jest-validate "^28.1.0" 2151 | micromatch "^4.0.4" 2152 | parse-json "^5.2.0" 2153 | pretty-format "^28.1.0" 2154 | slash "^3.0.0" 2155 | strip-json-comments "^3.1.1" 2156 | 2157 | jest-diff@^28.1.0: 2158 | version "28.1.0" 2159 | resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz" 2160 | integrity sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA== 2161 | dependencies: 2162 | chalk "^4.0.0" 2163 | diff-sequences "^28.0.2" 2164 | jest-get-type "^28.0.2" 2165 | pretty-format "^28.1.0" 2166 | 2167 | jest-docblock@^28.0.2: 2168 | version "28.0.2" 2169 | resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.0.2.tgz" 2170 | integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg== 2171 | dependencies: 2172 | detect-newline "^3.0.0" 2173 | 2174 | jest-each@^28.1.0: 2175 | version "28.1.0" 2176 | resolved "https://registry.npmjs.org/jest-each/-/jest-each-28.1.0.tgz" 2177 | integrity sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg== 2178 | dependencies: 2179 | "@jest/types" "^28.1.0" 2180 | chalk "^4.0.0" 2181 | jest-get-type "^28.0.2" 2182 | jest-util "^28.1.0" 2183 | pretty-format "^28.1.0" 2184 | 2185 | jest-environment-node@^28.1.0: 2186 | version "28.1.0" 2187 | resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.0.tgz" 2188 | integrity sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ== 2189 | dependencies: 2190 | "@jest/environment" "^28.1.0" 2191 | "@jest/fake-timers" "^28.1.0" 2192 | "@jest/types" "^28.1.0" 2193 | "@types/node" "*" 2194 | jest-mock "^28.1.0" 2195 | jest-util "^28.1.0" 2196 | 2197 | jest-get-type@^28.0.2: 2198 | version "28.0.2" 2199 | resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" 2200 | integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== 2201 | 2202 | jest-haste-map@^28.1.0: 2203 | version "28.1.0" 2204 | resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.0.tgz" 2205 | integrity sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw== 2206 | dependencies: 2207 | "@jest/types" "^28.1.0" 2208 | "@types/graceful-fs" "^4.1.3" 2209 | "@types/node" "*" 2210 | anymatch "^3.0.3" 2211 | fb-watchman "^2.0.0" 2212 | graceful-fs "^4.2.9" 2213 | jest-regex-util "^28.0.2" 2214 | jest-util "^28.1.0" 2215 | jest-worker "^28.1.0" 2216 | micromatch "^4.0.4" 2217 | walker "^1.0.7" 2218 | optionalDependencies: 2219 | fsevents "^2.3.2" 2220 | 2221 | jest-leak-detector@^28.1.0: 2222 | version "28.1.0" 2223 | resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz" 2224 | integrity sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA== 2225 | dependencies: 2226 | jest-get-type "^28.0.2" 2227 | pretty-format "^28.1.0" 2228 | 2229 | jest-matcher-utils@^28.1.0: 2230 | version "28.1.0" 2231 | resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz" 2232 | integrity sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ== 2233 | dependencies: 2234 | chalk "^4.0.0" 2235 | jest-diff "^28.1.0" 2236 | jest-get-type "^28.0.2" 2237 | pretty-format "^28.1.0" 2238 | 2239 | jest-message-util@^28.1.0: 2240 | version "28.1.0" 2241 | resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz" 2242 | integrity sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw== 2243 | dependencies: 2244 | "@babel/code-frame" "^7.12.13" 2245 | "@jest/types" "^28.1.0" 2246 | "@types/stack-utils" "^2.0.0" 2247 | chalk "^4.0.0" 2248 | graceful-fs "^4.2.9" 2249 | micromatch "^4.0.4" 2250 | pretty-format "^28.1.0" 2251 | slash "^3.0.0" 2252 | stack-utils "^2.0.3" 2253 | 2254 | jest-mock@^28.1.0: 2255 | version "28.1.0" 2256 | resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.0.tgz" 2257 | integrity sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw== 2258 | dependencies: 2259 | "@jest/types" "^28.1.0" 2260 | "@types/node" "*" 2261 | 2262 | jest-pnp-resolver@^1.2.2: 2263 | version "1.2.2" 2264 | resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" 2265 | integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== 2266 | 2267 | jest-regex-util@^28.0.2: 2268 | version "28.0.2" 2269 | resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" 2270 | integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== 2271 | 2272 | jest-resolve-dependencies@^28.1.0: 2273 | version "28.1.0" 2274 | resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz" 2275 | integrity sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g== 2276 | dependencies: 2277 | jest-regex-util "^28.0.2" 2278 | jest-snapshot "^28.1.0" 2279 | 2280 | jest-resolve@^28.1.0: 2281 | version "28.1.0" 2282 | resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.0.tgz" 2283 | integrity sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw== 2284 | dependencies: 2285 | chalk "^4.0.0" 2286 | graceful-fs "^4.2.9" 2287 | jest-haste-map "^28.1.0" 2288 | jest-pnp-resolver "^1.2.2" 2289 | jest-util "^28.1.0" 2290 | jest-validate "^28.1.0" 2291 | resolve "^1.20.0" 2292 | resolve.exports "^1.1.0" 2293 | slash "^3.0.0" 2294 | 2295 | jest-runner@^28.1.0: 2296 | version "28.1.0" 2297 | resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.0.tgz" 2298 | integrity sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w== 2299 | dependencies: 2300 | "@jest/console" "^28.1.0" 2301 | "@jest/environment" "^28.1.0" 2302 | "@jest/test-result" "^28.1.0" 2303 | "@jest/transform" "^28.1.0" 2304 | "@jest/types" "^28.1.0" 2305 | "@types/node" "*" 2306 | chalk "^4.0.0" 2307 | emittery "^0.10.2" 2308 | graceful-fs "^4.2.9" 2309 | jest-docblock "^28.0.2" 2310 | jest-environment-node "^28.1.0" 2311 | jest-haste-map "^28.1.0" 2312 | jest-leak-detector "^28.1.0" 2313 | jest-message-util "^28.1.0" 2314 | jest-resolve "^28.1.0" 2315 | jest-runtime "^28.1.0" 2316 | jest-util "^28.1.0" 2317 | jest-watcher "^28.1.0" 2318 | jest-worker "^28.1.0" 2319 | source-map-support "0.5.13" 2320 | throat "^6.0.1" 2321 | 2322 | jest-runtime@^28.1.0: 2323 | version "28.1.0" 2324 | resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.0.tgz" 2325 | integrity sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg== 2326 | dependencies: 2327 | "@jest/environment" "^28.1.0" 2328 | "@jest/fake-timers" "^28.1.0" 2329 | "@jest/globals" "^28.1.0" 2330 | "@jest/source-map" "^28.0.2" 2331 | "@jest/test-result" "^28.1.0" 2332 | "@jest/transform" "^28.1.0" 2333 | "@jest/types" "^28.1.0" 2334 | chalk "^4.0.0" 2335 | cjs-module-lexer "^1.0.0" 2336 | collect-v8-coverage "^1.0.0" 2337 | execa "^5.0.0" 2338 | glob "^7.1.3" 2339 | graceful-fs "^4.2.9" 2340 | jest-haste-map "^28.1.0" 2341 | jest-message-util "^28.1.0" 2342 | jest-mock "^28.1.0" 2343 | jest-regex-util "^28.0.2" 2344 | jest-resolve "^28.1.0" 2345 | jest-snapshot "^28.1.0" 2346 | jest-util "^28.1.0" 2347 | slash "^3.0.0" 2348 | strip-bom "^4.0.0" 2349 | 2350 | jest-snapshot@^28.1.0: 2351 | version "28.1.0" 2352 | resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.0.tgz" 2353 | integrity sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw== 2354 | dependencies: 2355 | "@babel/core" "^7.11.6" 2356 | "@babel/generator" "^7.7.2" 2357 | "@babel/plugin-syntax-typescript" "^7.7.2" 2358 | "@babel/traverse" "^7.7.2" 2359 | "@babel/types" "^7.3.3" 2360 | "@jest/expect-utils" "^28.1.0" 2361 | "@jest/transform" "^28.1.0" 2362 | "@jest/types" "^28.1.0" 2363 | "@types/babel__traverse" "^7.0.6" 2364 | "@types/prettier" "^2.1.5" 2365 | babel-preset-current-node-syntax "^1.0.0" 2366 | chalk "^4.0.0" 2367 | expect "^28.1.0" 2368 | graceful-fs "^4.2.9" 2369 | jest-diff "^28.1.0" 2370 | jest-get-type "^28.0.2" 2371 | jest-haste-map "^28.1.0" 2372 | jest-matcher-utils "^28.1.0" 2373 | jest-message-util "^28.1.0" 2374 | jest-util "^28.1.0" 2375 | natural-compare "^1.4.0" 2376 | pretty-format "^28.1.0" 2377 | semver "^7.3.5" 2378 | 2379 | jest-util@^28.1.0: 2380 | version "28.1.0" 2381 | resolved "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz" 2382 | integrity sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA== 2383 | dependencies: 2384 | "@jest/types" "^28.1.0" 2385 | "@types/node" "*" 2386 | chalk "^4.0.0" 2387 | ci-info "^3.2.0" 2388 | graceful-fs "^4.2.9" 2389 | picomatch "^2.2.3" 2390 | 2391 | jest-validate@^28.1.0: 2392 | version "28.1.0" 2393 | resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.0.tgz" 2394 | integrity sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ== 2395 | dependencies: 2396 | "@jest/types" "^28.1.0" 2397 | camelcase "^6.2.0" 2398 | chalk "^4.0.0" 2399 | jest-get-type "^28.0.2" 2400 | leven "^3.1.0" 2401 | pretty-format "^28.1.0" 2402 | 2403 | jest-watcher@^28.1.0: 2404 | version "28.1.0" 2405 | resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz" 2406 | integrity sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA== 2407 | dependencies: 2408 | "@jest/test-result" "^28.1.0" 2409 | "@jest/types" "^28.1.0" 2410 | "@types/node" "*" 2411 | ansi-escapes "^4.2.1" 2412 | chalk "^4.0.0" 2413 | emittery "^0.10.2" 2414 | jest-util "^28.1.0" 2415 | string-length "^4.0.1" 2416 | 2417 | jest-worker@^28.1.0: 2418 | version "28.1.0" 2419 | resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.0.tgz" 2420 | integrity sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A== 2421 | dependencies: 2422 | "@types/node" "*" 2423 | merge-stream "^2.0.0" 2424 | supports-color "^8.0.0" 2425 | 2426 | jest@^28.1.0: 2427 | version "28.1.0" 2428 | resolved "https://registry.npmjs.org/jest/-/jest-28.1.0.tgz" 2429 | integrity sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg== 2430 | dependencies: 2431 | "@jest/core" "^28.1.0" 2432 | import-local "^3.0.2" 2433 | jest-cli "^28.1.0" 2434 | 2435 | js-sdsl@^4.1.4: 2436 | version "4.2.0" 2437 | resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz" 2438 | integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== 2439 | 2440 | js-tokens@^4.0.0: 2441 | version "4.0.0" 2442 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 2443 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 2444 | 2445 | js-yaml@^3.13.1: 2446 | version "3.14.1" 2447 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" 2448 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 2449 | dependencies: 2450 | argparse "^1.0.7" 2451 | esprima "^4.0.0" 2452 | 2453 | js-yaml@^4.1.0: 2454 | version "4.1.0" 2455 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 2456 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 2457 | dependencies: 2458 | argparse "^2.0.1" 2459 | 2460 | jsbn@~0.1.0: 2461 | version "0.1.1" 2462 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" 2463 | integrity "sha1-peZUwuWi3rXyAdls77yoDA7y9RM= sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" 2464 | 2465 | jsesc@^2.5.1: 2466 | version "2.5.2" 2467 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" 2468 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 2469 | 2470 | json-parse-even-better-errors@^2.3.0: 2471 | version "2.3.1" 2472 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" 2473 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 2474 | 2475 | json-schema-traverse@^0.4.1: 2476 | version "0.4.1" 2477 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 2478 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 2479 | 2480 | json-schema@0.4.0: 2481 | version "0.4.0" 2482 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" 2483 | integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== 2484 | 2485 | json-stable-stringify-without-jsonify@^1.0.1: 2486 | version "1.0.1" 2487 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 2488 | integrity "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" 2489 | 2490 | json-stringify-safe@~5.0.1: 2491 | version "5.0.1" 2492 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" 2493 | integrity "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" 2494 | 2495 | json5@^1.0.1: 2496 | version "1.0.1" 2497 | resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" 2498 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 2499 | dependencies: 2500 | minimist "^1.2.0" 2501 | 2502 | json5@^2.2.1: 2503 | version "2.2.1" 2504 | resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" 2505 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 2506 | 2507 | jsprim@^1.2.2: 2508 | version "1.4.2" 2509 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" 2510 | integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== 2511 | dependencies: 2512 | assert-plus "1.0.0" 2513 | extsprintf "1.3.0" 2514 | json-schema "0.4.0" 2515 | verror "1.10.0" 2516 | 2517 | kleur@^3.0.3: 2518 | version "3.0.3" 2519 | resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" 2520 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== 2521 | 2522 | lcov-parse@^1.0.0: 2523 | version "1.0.0" 2524 | resolved "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz" 2525 | integrity "sha1-6w1GtUER68VhrLTECO+TY73I9+A= sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==" 2526 | 2527 | leven@^3.1.0: 2528 | version "3.1.0" 2529 | resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" 2530 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 2531 | 2532 | levn@^0.4.1: 2533 | version "0.4.1" 2534 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" 2535 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 2536 | dependencies: 2537 | prelude-ls "^1.2.1" 2538 | type-check "~0.4.0" 2539 | 2540 | lines-and-columns@^1.1.6: 2541 | version "1.2.4" 2542 | resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" 2543 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 2544 | 2545 | locate-path@^2.0.0: 2546 | version "2.0.0" 2547 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" 2548 | integrity "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==" 2549 | dependencies: 2550 | p-locate "^2.0.0" 2551 | path-exists "^3.0.0" 2552 | 2553 | locate-path@^5.0.0: 2554 | version "5.0.0" 2555 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 2556 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 2557 | dependencies: 2558 | p-locate "^4.1.0" 2559 | 2560 | locate-path@^6.0.0: 2561 | version "6.0.0" 2562 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 2563 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 2564 | dependencies: 2565 | p-locate "^5.0.0" 2566 | 2567 | lodash.merge@^4.6.2: 2568 | version "4.6.2" 2569 | resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" 2570 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 2571 | 2572 | log-driver@^1.2.7: 2573 | version "1.2.7" 2574 | resolved "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz" 2575 | integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== 2576 | 2577 | log-symbols@^2.0.0: 2578 | version "2.2.0" 2579 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" 2580 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== 2581 | dependencies: 2582 | chalk "^2.0.1" 2583 | 2584 | lru-cache@^6.0.0: 2585 | version "6.0.0" 2586 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 2587 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 2588 | dependencies: 2589 | yallist "^4.0.0" 2590 | 2591 | make-dir@^3.0.0: 2592 | version "3.1.0" 2593 | resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" 2594 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 2595 | dependencies: 2596 | semver "^6.0.0" 2597 | 2598 | makeerror@1.0.12: 2599 | version "1.0.12" 2600 | resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" 2601 | integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== 2602 | dependencies: 2603 | tmpl "1.0.5" 2604 | 2605 | merge-stream@^2.0.0: 2606 | version "2.0.0" 2607 | resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" 2608 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 2609 | 2610 | micromatch@^4.0.4: 2611 | version "4.0.5" 2612 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" 2613 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 2614 | dependencies: 2615 | braces "^3.0.2" 2616 | picomatch "^2.3.1" 2617 | 2618 | mime-db@1.52.0: 2619 | version "1.52.0" 2620 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 2621 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 2622 | 2623 | mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.34: 2624 | version "2.1.35" 2625 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 2626 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 2627 | dependencies: 2628 | mime-db "1.52.0" 2629 | 2630 | mimic-fn@^2.1.0: 2631 | version "2.1.0" 2632 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" 2633 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 2634 | 2635 | minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 2636 | version "3.1.2" 2637 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 2638 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 2639 | dependencies: 2640 | brace-expansion "^1.1.7" 2641 | 2642 | minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: 2643 | version "1.2.6" 2644 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" 2645 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 2646 | 2647 | ms@2.0.0: 2648 | version "2.0.0" 2649 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 2650 | integrity "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 2651 | 2652 | ms@2.1.2: 2653 | version "2.1.2" 2654 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 2655 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 2656 | 2657 | ms@^2.1.1: 2658 | version "2.1.3" 2659 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 2660 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 2661 | 2662 | natural-compare@^1.4.0: 2663 | version "1.4.0" 2664 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 2665 | integrity "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" 2666 | 2667 | negotiator@0.6.3: 2668 | version "0.6.3" 2669 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" 2670 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 2671 | 2672 | node-int64@^0.4.0: 2673 | version "0.4.0" 2674 | resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" 2675 | integrity "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" 2676 | 2677 | node-releases@^2.0.3: 2678 | version "2.0.4" 2679 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz" 2680 | integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== 2681 | 2682 | normalize-path@^1.0.0: 2683 | version "1.0.0" 2684 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz" 2685 | integrity "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==" 2686 | 2687 | normalize-path@^3.0.0: 2688 | version "3.0.0" 2689 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 2690 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 2691 | 2692 | npm-run-path@^4.0.1: 2693 | version "4.0.1" 2694 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" 2695 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 2696 | dependencies: 2697 | path-key "^3.0.0" 2698 | 2699 | oauth-sign@~0.9.0: 2700 | version "0.9.0" 2701 | resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" 2702 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 2703 | 2704 | object-assign@^4: 2705 | version "4.1.1" 2706 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" 2707 | integrity "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 2708 | 2709 | object-inspect@^1.12.2, object-inspect@^1.9.0: 2710 | version "1.12.2" 2711 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" 2712 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 2713 | 2714 | object-keys@^1.1.1: 2715 | version "1.1.1" 2716 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 2717 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 2718 | 2719 | object.assign@^4.1.2, object.assign@^4.1.4: 2720 | version "4.1.4" 2721 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" 2722 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== 2723 | dependencies: 2724 | call-bind "^1.0.2" 2725 | define-properties "^1.1.4" 2726 | has-symbols "^1.0.3" 2727 | object-keys "^1.1.1" 2728 | 2729 | object.entries@^1.1.5: 2730 | version "1.1.6" 2731 | resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz" 2732 | integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== 2733 | dependencies: 2734 | call-bind "^1.0.2" 2735 | define-properties "^1.1.4" 2736 | es-abstract "^1.20.4" 2737 | 2738 | object.values@^1.1.5: 2739 | version "1.1.5" 2740 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" 2741 | integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== 2742 | dependencies: 2743 | call-bind "^1.0.2" 2744 | define-properties "^1.1.3" 2745 | es-abstract "^1.19.1" 2746 | 2747 | once@^1.3.0: 2748 | version "1.4.0" 2749 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 2750 | integrity "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" 2751 | dependencies: 2752 | wrappy "1" 2753 | 2754 | onetime@^5.1.2: 2755 | version "5.1.2" 2756 | resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" 2757 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 2758 | dependencies: 2759 | mimic-fn "^2.1.0" 2760 | 2761 | optionator@^0.9.1: 2762 | version "0.9.1" 2763 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" 2764 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 2765 | dependencies: 2766 | deep-is "^0.1.3" 2767 | fast-levenshtein "^2.0.6" 2768 | levn "^0.4.1" 2769 | prelude-ls "^1.2.1" 2770 | type-check "^0.4.0" 2771 | word-wrap "^1.2.3" 2772 | 2773 | p-limit@^1.1.0: 2774 | version "1.3.0" 2775 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" 2776 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 2777 | dependencies: 2778 | p-try "^1.0.0" 2779 | 2780 | p-limit@^2.2.0: 2781 | version "2.3.0" 2782 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 2783 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 2784 | dependencies: 2785 | p-try "^2.0.0" 2786 | 2787 | p-limit@^3.0.2: 2788 | version "3.1.0" 2789 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 2790 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 2791 | dependencies: 2792 | yocto-queue "^0.1.0" 2793 | 2794 | p-locate@^2.0.0: 2795 | version "2.0.0" 2796 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" 2797 | integrity "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==" 2798 | dependencies: 2799 | p-limit "^1.1.0" 2800 | 2801 | p-locate@^4.1.0: 2802 | version "4.1.0" 2803 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 2804 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 2805 | dependencies: 2806 | p-limit "^2.2.0" 2807 | 2808 | p-locate@^5.0.0: 2809 | version "5.0.0" 2810 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 2811 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 2812 | dependencies: 2813 | p-limit "^3.0.2" 2814 | 2815 | p-try@^1.0.0: 2816 | version "1.0.0" 2817 | resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" 2818 | integrity "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" 2819 | 2820 | p-try@^2.0.0: 2821 | version "2.2.0" 2822 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 2823 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2824 | 2825 | parent-module@^1.0.0: 2826 | version "1.0.1" 2827 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 2828 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 2829 | dependencies: 2830 | callsites "^3.0.0" 2831 | 2832 | parse-json@^5.2.0: 2833 | version "5.2.0" 2834 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" 2835 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 2836 | dependencies: 2837 | "@babel/code-frame" "^7.0.0" 2838 | error-ex "^1.3.1" 2839 | json-parse-even-better-errors "^2.3.0" 2840 | lines-and-columns "^1.1.6" 2841 | 2842 | path-exists@^3.0.0: 2843 | version "3.0.0" 2844 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" 2845 | integrity "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" 2846 | 2847 | path-exists@^4.0.0: 2848 | version "4.0.0" 2849 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 2850 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2851 | 2852 | path-is-absolute@^1.0.0: 2853 | version "1.0.1" 2854 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 2855 | integrity "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 2856 | 2857 | path-key@^3.0.0, path-key@^3.1.0: 2858 | version "3.1.1" 2859 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 2860 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 2861 | 2862 | path-parse@^1.0.7: 2863 | version "1.0.7" 2864 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 2865 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 2866 | 2867 | performance-now@^2.1.0: 2868 | version "2.1.0" 2869 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" 2870 | integrity "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" 2871 | 2872 | picocolors@^1.0.0: 2873 | version "1.0.0" 2874 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" 2875 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 2876 | 2877 | picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: 2878 | version "2.3.1" 2879 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 2880 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 2881 | 2882 | pidusage@^3.0.0: 2883 | version "3.0.0" 2884 | resolved "https://registry.npmjs.org/pidusage/-/pidusage-3.0.0.tgz" 2885 | integrity sha512-8VJLToXhj+RYZGNVw8oxc7dS54iCQXUJ+MDFHezQ/fwF5B8W4OWodAMboc1wb08S/4LiHwAmkT4ohf/d3YPPsw== 2886 | dependencies: 2887 | safe-buffer "^5.2.1" 2888 | 2889 | pirates@^4.0.4: 2890 | version "4.0.5" 2891 | resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" 2892 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== 2893 | 2894 | pkg-dir@^4.2.0: 2895 | version "4.2.0" 2896 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" 2897 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 2898 | dependencies: 2899 | find-up "^4.0.0" 2900 | 2901 | plur@^2.1.2: 2902 | version "2.1.2" 2903 | resolved "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz" 2904 | integrity "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo= sha512-WhcHk576xg9y/iv6RWOuroZgsqvCbJN+XGvAypCJwLAYs2iWDp5LUmvaCdV6JR2O0SMBf8l6p7A94AyLCFVMlQ==" 2905 | dependencies: 2906 | irregular-plurals "^1.0.0" 2907 | 2908 | prelude-ls@^1.2.1: 2909 | version "1.2.1" 2910 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" 2911 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 2912 | 2913 | pretty-format@^28.1.0: 2914 | version "28.1.0" 2915 | resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz" 2916 | integrity sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q== 2917 | dependencies: 2918 | "@jest/schemas" "^28.0.2" 2919 | ansi-regex "^5.0.1" 2920 | ansi-styles "^5.0.0" 2921 | react-is "^18.0.0" 2922 | 2923 | prompts@^2.0.1: 2924 | version "2.4.2" 2925 | resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" 2926 | integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== 2927 | dependencies: 2928 | kleur "^3.0.3" 2929 | sisteransi "^1.0.5" 2930 | 2931 | psl@^1.1.28: 2932 | version "1.8.0" 2933 | resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" 2934 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 2935 | 2936 | punycode@^2.1.0, punycode@^2.1.1: 2937 | version "2.1.1" 2938 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 2939 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2940 | 2941 | qs@~6.5.2: 2942 | version "6.5.3" 2943 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" 2944 | integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== 2945 | 2946 | queue-microtask@^1.2.2: 2947 | version "1.2.3" 2948 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 2949 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 2950 | 2951 | react-is@^18.0.0: 2952 | version "18.1.0" 2953 | resolved "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz" 2954 | integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== 2955 | 2956 | regexp.prototype.flags@^1.4.3: 2957 | version "1.4.3" 2958 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" 2959 | integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== 2960 | dependencies: 2961 | call-bind "^1.0.2" 2962 | define-properties "^1.1.3" 2963 | functions-have-names "^1.2.2" 2964 | 2965 | regexpp@^3.2.0: 2966 | version "3.2.0" 2967 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" 2968 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 2969 | 2970 | request@^2.88.2: 2971 | version "2.88.2" 2972 | resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" 2973 | integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== 2974 | dependencies: 2975 | aws-sign2 "~0.7.0" 2976 | aws4 "^1.8.0" 2977 | caseless "~0.12.0" 2978 | combined-stream "~1.0.6" 2979 | extend "~3.0.2" 2980 | forever-agent "~0.6.1" 2981 | form-data "~2.3.2" 2982 | har-validator "~5.1.3" 2983 | http-signature "~1.2.0" 2984 | is-typedarray "~1.0.0" 2985 | isstream "~0.1.2" 2986 | json-stringify-safe "~5.0.1" 2987 | mime-types "~2.1.19" 2988 | oauth-sign "~0.9.0" 2989 | performance-now "^2.1.0" 2990 | qs "~6.5.2" 2991 | safe-buffer "^5.1.2" 2992 | tough-cookie "~2.5.0" 2993 | tunnel-agent "^0.6.0" 2994 | uuid "^3.3.2" 2995 | 2996 | require-directory@^2.1.1: 2997 | version "2.1.1" 2998 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 2999 | integrity "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" 3000 | 3001 | resolve-cwd@^3.0.0: 3002 | version "3.0.0" 3003 | resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" 3004 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 3005 | dependencies: 3006 | resolve-from "^5.0.0" 3007 | 3008 | resolve-from@^4.0.0: 3009 | version "4.0.0" 3010 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 3011 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 3012 | 3013 | resolve-from@^5.0.0: 3014 | version "5.0.0" 3015 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 3016 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 3017 | 3018 | resolve.exports@^1.1.0: 3019 | version "1.1.0" 3020 | resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" 3021 | integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== 3022 | 3023 | resolve@^1.20.0, resolve@^1.22.0: 3024 | version "1.22.0" 3025 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" 3026 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== 3027 | dependencies: 3028 | is-core-module "^2.8.1" 3029 | path-parse "^1.0.7" 3030 | supports-preserve-symlinks-flag "^1.0.0" 3031 | 3032 | reusify@^1.0.4: 3033 | version "1.0.4" 3034 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 3035 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 3036 | 3037 | rimraf@^3.0.0, rimraf@^3.0.2: 3038 | version "3.0.2" 3039 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 3040 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 3041 | dependencies: 3042 | glob "^7.1.3" 3043 | 3044 | run-parallel@^1.1.9: 3045 | version "1.2.0" 3046 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" 3047 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 3048 | dependencies: 3049 | queue-microtask "^1.2.2" 3050 | 3051 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.1: 3052 | version "5.1.2" 3053 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 3054 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 3055 | 3056 | safe-buffer@^5.2.1: 3057 | version "5.2.1" 3058 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 3059 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 3060 | 3061 | safe-regex-test@^1.0.0: 3062 | version "1.0.0" 3063 | resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" 3064 | integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== 3065 | dependencies: 3066 | call-bind "^1.0.2" 3067 | get-intrinsic "^1.1.3" 3068 | is-regex "^1.1.4" 3069 | 3070 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 3071 | version "2.1.2" 3072 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 3073 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 3074 | 3075 | semver@^6.0.0, semver@^6.3.0: 3076 | version "6.3.0" 3077 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" 3078 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 3079 | 3080 | semver@^7.3.5: 3081 | version "7.3.7" 3082 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" 3083 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== 3084 | dependencies: 3085 | lru-cache "^6.0.0" 3086 | 3087 | shebang-command@^2.0.0: 3088 | version "2.0.0" 3089 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 3090 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 3091 | dependencies: 3092 | shebang-regex "^3.0.0" 3093 | 3094 | shebang-regex@^3.0.0: 3095 | version "3.0.0" 3096 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 3097 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 3098 | 3099 | side-channel@^1.0.4: 3100 | version "1.0.4" 3101 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 3102 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 3103 | dependencies: 3104 | call-bind "^1.0.0" 3105 | get-intrinsic "^1.0.2" 3106 | object-inspect "^1.9.0" 3107 | 3108 | signal-exit@^3.0.3, signal-exit@^3.0.7: 3109 | version "3.0.7" 3110 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" 3111 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 3112 | 3113 | sisteransi@^1.0.5: 3114 | version "1.0.5" 3115 | resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" 3116 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== 3117 | 3118 | slash@^3.0.0: 3119 | version "3.0.0" 3120 | resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" 3121 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 3122 | 3123 | socket.io-adapter@~2.4.0: 3124 | version "2.4.0" 3125 | resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz" 3126 | integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== 3127 | 3128 | socket.io-parser@~4.0.4: 3129 | version "4.0.5" 3130 | resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz" 3131 | integrity sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig== 3132 | dependencies: 3133 | "@types/component-emitter" "^1.2.10" 3134 | component-emitter "~1.3.0" 3135 | debug "~4.3.1" 3136 | 3137 | socket.io@^4.5.0: 3138 | version "4.5.0" 3139 | resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.5.0.tgz" 3140 | integrity sha512-slTYqU2jCgMjXwresG8grhUi/cC6GjzmcfqArzaH3BN/9I/42eZk9yamNvZJdBfTubkjEdKAKs12NEztId+bUA== 3141 | dependencies: 3142 | accepts "~1.3.4" 3143 | base64id "~2.0.0" 3144 | debug "~4.3.2" 3145 | engine.io "~6.2.0" 3146 | socket.io-adapter "~2.4.0" 3147 | socket.io-parser "~4.0.4" 3148 | 3149 | source-map-support@0.5.13: 3150 | version "0.5.13" 3151 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" 3152 | integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== 3153 | dependencies: 3154 | buffer-from "^1.0.0" 3155 | source-map "^0.6.0" 3156 | 3157 | source-map@^0.6.0, source-map@^0.6.1: 3158 | version "0.6.1" 3159 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 3160 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 3161 | 3162 | sprintf-js@~1.0.2: 3163 | version "1.0.3" 3164 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" 3165 | integrity "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 3166 | 3167 | sshpk@^1.7.0: 3168 | version "1.17.0" 3169 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" 3170 | integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== 3171 | dependencies: 3172 | asn1 "~0.2.3" 3173 | assert-plus "^1.0.0" 3174 | bcrypt-pbkdf "^1.0.0" 3175 | dashdash "^1.12.0" 3176 | ecc-jsbn "~0.1.1" 3177 | getpass "^0.1.1" 3178 | jsbn "~0.1.0" 3179 | safer-buffer "^2.0.2" 3180 | tweetnacl "~0.14.0" 3181 | 3182 | stack-utils@^2.0.3: 3183 | version "2.0.5" 3184 | resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" 3185 | integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== 3186 | dependencies: 3187 | escape-string-regexp "^2.0.0" 3188 | 3189 | string-length@^4.0.1: 3190 | version "4.0.2" 3191 | resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" 3192 | integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== 3193 | dependencies: 3194 | char-regex "^1.0.2" 3195 | strip-ansi "^6.0.0" 3196 | 3197 | string-width@^2.0.0: 3198 | version "2.1.1" 3199 | resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" 3200 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 3201 | dependencies: 3202 | is-fullwidth-code-point "^2.0.0" 3203 | strip-ansi "^4.0.0" 3204 | 3205 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: 3206 | version "4.2.3" 3207 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 3208 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 3209 | dependencies: 3210 | emoji-regex "^8.0.0" 3211 | is-fullwidth-code-point "^3.0.0" 3212 | strip-ansi "^6.0.1" 3213 | 3214 | string.prototype.trimend@^1.0.5: 3215 | version "1.0.5" 3216 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" 3217 | integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== 3218 | dependencies: 3219 | call-bind "^1.0.2" 3220 | define-properties "^1.1.4" 3221 | es-abstract "^1.19.5" 3222 | 3223 | string.prototype.trimstart@^1.0.5: 3224 | version "1.0.5" 3225 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" 3226 | integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== 3227 | dependencies: 3228 | call-bind "^1.0.2" 3229 | define-properties "^1.1.4" 3230 | es-abstract "^1.19.5" 3231 | 3232 | strip-ansi@^4.0.0: 3233 | version "4.0.0" 3234 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" 3235 | integrity "sha1-qEeQIusaw2iocTibY1JixQXuNo8= sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==" 3236 | dependencies: 3237 | ansi-regex "^3.0.0" 3238 | 3239 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 3240 | version "6.0.1" 3241 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 3242 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 3243 | dependencies: 3244 | ansi-regex "^5.0.1" 3245 | 3246 | strip-bom@^3.0.0: 3247 | version "3.0.0" 3248 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" 3249 | integrity "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" 3250 | 3251 | strip-bom@^4.0.0: 3252 | version "4.0.0" 3253 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" 3254 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 3255 | 3256 | strip-final-newline@^2.0.0: 3257 | version "2.0.0" 3258 | resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" 3259 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 3260 | 3261 | strip-indent@^2.0.0: 3262 | version "2.0.0" 3263 | resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" 3264 | integrity "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==" 3265 | 3266 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 3267 | version "3.1.1" 3268 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 3269 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 3270 | 3271 | supports-color@^5.3.0: 3272 | version "5.5.0" 3273 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 3274 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 3275 | dependencies: 3276 | has-flag "^3.0.0" 3277 | 3278 | supports-color@^7.0.0, supports-color@^7.1.0: 3279 | version "7.2.0" 3280 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 3281 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 3282 | dependencies: 3283 | has-flag "^4.0.0" 3284 | 3285 | supports-color@^8.0.0: 3286 | version "8.1.1" 3287 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 3288 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 3289 | dependencies: 3290 | has-flag "^4.0.0" 3291 | 3292 | supports-hyperlinks@^2.0.0: 3293 | version "2.2.0" 3294 | resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" 3295 | integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== 3296 | dependencies: 3297 | has-flag "^4.0.0" 3298 | supports-color "^7.0.0" 3299 | 3300 | supports-preserve-symlinks-flag@^1.0.0: 3301 | version "1.0.0" 3302 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" 3303 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 3304 | 3305 | terminal-link@^2.0.0: 3306 | version "2.1.1" 3307 | resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" 3308 | integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== 3309 | dependencies: 3310 | ansi-escapes "^4.2.1" 3311 | supports-hyperlinks "^2.0.0" 3312 | 3313 | test-exclude@^6.0.0: 3314 | version "6.0.0" 3315 | resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" 3316 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 3317 | dependencies: 3318 | "@istanbuljs/schema" "^0.1.2" 3319 | glob "^7.1.4" 3320 | minimatch "^3.0.4" 3321 | 3322 | text-table@^0.2.0: 3323 | version "0.2.0" 3324 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" 3325 | integrity "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" 3326 | 3327 | throat@^6.0.1: 3328 | version "6.0.1" 3329 | resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" 3330 | integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== 3331 | 3332 | tmpl@1.0.5: 3333 | version "1.0.5" 3334 | resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" 3335 | integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== 3336 | 3337 | to-fast-properties@^2.0.0: 3338 | version "2.0.0" 3339 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" 3340 | integrity "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" 3341 | 3342 | to-regex-range@^5.0.1: 3343 | version "5.0.1" 3344 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 3345 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 3346 | dependencies: 3347 | is-number "^7.0.0" 3348 | 3349 | tough-cookie@~2.5.0: 3350 | version "2.5.0" 3351 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" 3352 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== 3353 | dependencies: 3354 | psl "^1.1.28" 3355 | punycode "^2.1.1" 3356 | 3357 | tsconfig-paths@^3.14.1: 3358 | version "3.14.1" 3359 | resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" 3360 | integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== 3361 | dependencies: 3362 | "@types/json5" "^0.0.29" 3363 | json5 "^1.0.1" 3364 | minimist "^1.2.6" 3365 | strip-bom "^3.0.0" 3366 | 3367 | tunnel-agent@^0.6.0: 3368 | version "0.6.0" 3369 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" 3370 | integrity "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==" 3371 | dependencies: 3372 | safe-buffer "^5.0.1" 3373 | 3374 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3375 | version "0.14.5" 3376 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" 3377 | integrity "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" 3378 | 3379 | type-check@^0.4.0, type-check@~0.4.0: 3380 | version "0.4.0" 3381 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" 3382 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 3383 | dependencies: 3384 | prelude-ls "^1.2.1" 3385 | 3386 | type-detect@4.0.8: 3387 | version "4.0.8" 3388 | resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" 3389 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 3390 | 3391 | type-fest@^0.20.2: 3392 | version "0.20.2" 3393 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 3394 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 3395 | 3396 | type-fest@^0.21.3: 3397 | version "0.21.3" 3398 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" 3399 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== 3400 | 3401 | unbox-primitive@^1.0.2: 3402 | version "1.0.2" 3403 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" 3404 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== 3405 | dependencies: 3406 | call-bind "^1.0.2" 3407 | has-bigints "^1.0.2" 3408 | has-symbols "^1.0.3" 3409 | which-boxed-primitive "^1.0.2" 3410 | 3411 | uri-js@^4.2.2: 3412 | version "4.4.1" 3413 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 3414 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 3415 | dependencies: 3416 | punycode "^2.1.0" 3417 | 3418 | uuid@^3.3.2: 3419 | version "3.4.0" 3420 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" 3421 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 3422 | 3423 | v8-to-istanbul@^9.0.0: 3424 | version "9.0.0" 3425 | resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz" 3426 | integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== 3427 | dependencies: 3428 | "@jridgewell/trace-mapping" "^0.3.7" 3429 | "@types/istanbul-lib-coverage" "^2.0.1" 3430 | convert-source-map "^1.6.0" 3431 | 3432 | vary@^1: 3433 | version "1.1.2" 3434 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" 3435 | integrity "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 3436 | 3437 | verror@1.10.0: 3438 | version "1.10.0" 3439 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" 3440 | integrity "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==" 3441 | dependencies: 3442 | assert-plus "^1.0.0" 3443 | core-util-is "1.0.2" 3444 | extsprintf "^1.2.0" 3445 | 3446 | walker@^1.0.7: 3447 | version "1.0.8" 3448 | resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" 3449 | integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== 3450 | dependencies: 3451 | makeerror "1.0.12" 3452 | 3453 | which-boxed-primitive@^1.0.2: 3454 | version "1.0.2" 3455 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" 3456 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 3457 | dependencies: 3458 | is-bigint "^1.0.1" 3459 | is-boolean-object "^1.1.0" 3460 | is-number-object "^1.0.4" 3461 | is-string "^1.0.5" 3462 | is-symbol "^1.0.3" 3463 | 3464 | which@^2.0.1: 3465 | version "2.0.2" 3466 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 3467 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 3468 | dependencies: 3469 | isexe "^2.0.0" 3470 | 3471 | word-wrap@^1.2.3: 3472 | version "1.2.3" 3473 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" 3474 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 3475 | 3476 | wrap-ansi@^7.0.0: 3477 | version "7.0.0" 3478 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 3479 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 3480 | dependencies: 3481 | ansi-styles "^4.0.0" 3482 | string-width "^4.1.0" 3483 | strip-ansi "^6.0.0" 3484 | 3485 | wrappy@1: 3486 | version "1.0.2" 3487 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 3488 | integrity "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 3489 | 3490 | write-file-atomic@^4.0.1: 3491 | version "4.0.1" 3492 | resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz" 3493 | integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== 3494 | dependencies: 3495 | imurmurhash "^0.1.4" 3496 | signal-exit "^3.0.7" 3497 | 3498 | ws@~8.2.3: 3499 | version "8.2.3" 3500 | resolved "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz" 3501 | integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== 3502 | 3503 | y18n@^5.0.5: 3504 | version "5.0.8" 3505 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" 3506 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 3507 | 3508 | yallist@^4.0.0: 3509 | version "4.0.0" 3510 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 3511 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 3512 | 3513 | yargs-parser@^21.0.0: 3514 | version "21.0.1" 3515 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" 3516 | integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== 3517 | 3518 | yargs@^17.3.1: 3519 | version "17.5.1" 3520 | resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" 3521 | integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== 3522 | dependencies: 3523 | cliui "^7.0.2" 3524 | escalade "^3.1.1" 3525 | get-caller-file "^2.0.5" 3526 | require-directory "^2.1.1" 3527 | string-width "^4.2.3" 3528 | y18n "^5.0.5" 3529 | yargs-parser "^21.0.0" 3530 | 3531 | yocto-queue@^0.1.0: 3532 | version "0.1.0" 3533 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 3534 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 3535 | --------------------------------------------------------------------------------