├── .DS_Store ├── .gitignore ├── .npmignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── cloudbuild.json ├── intervalBackoffBasic.svg ├── jest.config.js ├── package-dist.json ├── package-lock.json ├── package.json ├── prettier.config.js ├── retryBackoff.svg ├── scripts └── pack.js ├── spec ├── intervalBackoff-spec.ts └── retryBackoff-spec.ts ├── src ├── index.ts ├── observable │ └── intervalBackoff.ts ├── operators │ └── retryBackoff.ts └── utils.ts ├── tsconfig-dist-cjs.json ├── tsconfig-dist-esm2015.json ├── tsconfig-dist-esm5.json ├── tsconfig-dist.json ├── tsconfig.json ├── webpack.config.js └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alex-okrushko/backoff-rxjs/5702674645b041aa9260d0e7957406c36a0aced5/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | build 4 | bundles 5 | 6 | coverage 7 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | lib/ -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | #### 7.0.0 (2022-06-11) 2 | 3 | ##### Chores 4 | 5 | * 7.0.0 release ([e78c982b](https://github.com/alex-okrushko/backoff-rxjs/commit/e78c982b2a954c66fa3625a1e4aefa24c2651d88)) 6 | 7 | ##### Other Changes 8 | 9 | * //github.com/alex-okrushko/backoff-rxjs ([0afd7e94](https://github.com/alex-okrushko/backoff-rxjs/commit/0afd7e9458a45e510fada2da615dc762878ff67e)) 10 | 11 | ##### Refactors 12 | 13 | * **deps:** update package-lock ([1f20bad5](https://github.com/alex-okrushko/backoff-rxjs/commit/1f20bad54672e040b3e40b6cb9628f0ab3d1ccdd)) 14 | 15 | #### 7.0.0 (2022-06-11) 16 | 17 | ##### Chores 18 | 19 | * 7.0.0 release ([e78c982b](https://github.com/alex-okrushko/backoff-rxjs/commit/e78c982b2a954c66fa3625a1e4aefa24c2651d88)) 20 | 21 | ##### Other Changes 22 | 23 | * //github.com/alex-okrushko/backoff-rxjs ([0afd7e94](https://github.com/alex-okrushko/backoff-rxjs/commit/0afd7e9458a45e510fada2da615dc762878ff67e)) 24 | 25 | ##### Refactors 26 | 27 | * **deps:** update package-lock ([1f20bad5](https://github.com/alex-okrushko/backoff-rxjs/commit/1f20bad54672e040b3e40b6cb9628f0ab3d1ccdd)) 28 | 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Alex Okrushko 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 | # backoff-rxjs 2 | 3 | A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff) 4 | Angular-in-Depth article about this library is at https://indepth.dev/power-of-rxjs-when-using-exponential-backoff/ 5 | 6 | ## intervalBackoff 7 | 8 | ![Basic interval backoff](./intervalBackoffBasic.svg) 9 | 10 | `intervalBackoff` works similarly to `interval` except that it doubles the delay between emissions every time. 11 | 12 | | name | type | attribute | description | 13 | |--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| 14 | | config | [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) \ [IntervalBackoffConfig](https://github.com/alex-okrushko/backoff-rxjs/blob/bddb11d6d06d2d2ccdeb12e3c779bc3ae03311db/src/observable/intervalBackoff.ts#L6) | required | Can take number as initial interval or a config with initial interval, optional max Interval and optional backoff delay function (exponential by default) | 15 | 16 | `interval` is especially useful for periodic polls that are reset whenever user activity is detected: 17 | 18 | ```ts 19 | fromEvent(document, 'mousemove').pipe( 20 | // There could be many mousemoves, we'd want to sample only 21 | // with certain frequency 22 | sampleTime(LOAD_INTERVAL_MS), 23 | 24 | // Start immediately 25 | startWith(null), 26 | 27 | // Resetting exponential interval 28 | switchMapTo( 29 | intervalBackoff({ 30 | initialInterval: LOAD_INTERVAL_MS, 31 | maxInterval: MAX_INTERVAL_MS 32 | }) 33 | ) 34 | ); 35 | ``` 36 | 37 | ## retryBackoff 38 | 39 | ![Retry Backoff Exponential Image](./retryBackoff.svg) 40 | 41 | | name | type | attribute | description | 42 | |--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 43 | | config | [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) \ [RetryBackoffConfig](https://github.com/alex-okrushko/backoff-rxjs/blob/master/src/operators/retryBackoff.ts#L6) | required | Can take number as initial interval or a config with initial interval, optional max Interval, optional max number of retry attempts, optional function to cancel reties and optional backoff delay function (exponential by default) | 44 | 45 | ```ts 46 | this.service.callBackend().pipe( 47 | retryBackoff({ 48 | initialInterval: 100, 49 | maxRetries: 12, 50 | // 👇 resets retries count and delays between them to init values 51 | resetOnSuccess: true 52 | }) 53 | ) 54 | ``` 55 | -------------------------------------------------------------------------------- /cloudbuild.json: -------------------------------------------------------------------------------- 1 | { 2 | "steps": [ 3 | { 4 | "name": "node:12", 5 | "entrypoint": "yarn", 6 | "args": ["install"] 7 | }, 8 | { 9 | "name": "node:12", 10 | "entrypoint": "yarn", 11 | "args": ["add", "rxjs"] 12 | }, 13 | { 14 | "name": "node:12", 15 | "entrypoint": "yarn", 16 | "args": ["test"] 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /intervalBackoffBasic.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 28 | 33 | 39 | 44 | 49 | 55 | 56 | 64 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | intervalBackoff(1000) 84 | 85 | 86 | 90 | 91 | 92 | 97 | 0 102 | 103 | 104 | 105 | 110 | 1 115 | 116 | 117 | 118 | 123 | 2 128 | 129 | 130 | 131 | 136 | 3 141 | 142 | 143 | 144 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'ts-jest', 3 | testEnvironment: 'node', 4 | testMatch: [ 5 | "/spec/**/*.ts", 6 | ], 7 | coverageThreshold: { 8 | global: { 9 | branches: 90, 10 | functions: 90, 11 | lines: 90, 12 | statements: 90 13 | } 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /package-dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": {}, 3 | "es2015": "./esm2015/index.js", 4 | "main": "./index.js", 5 | "module": "./esm5/index.js", 6 | "private": false, 7 | "scripts": {}, 8 | "types": "./index.d.ts", 9 | "unpkg": "./bundles/backoff-rxjs.min.umd.js" 10 | } 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backoff-rxjs", 3 | "version": "7.0.0", 4 | "description": "A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff)", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "es2015": "./dist/esm2015/index.js", 8 | "module": "./dist/esm5/index.js", 9 | "scripts": { 10 | "dist": "yarn run dist:build && yarn run dist:changelog && yarn run dist:copy", 11 | "dist:build": "yarn run dist:clean && yarn run dist:build:cjs && yarn run dist:build:esm2015 && yarn run dist:build:esm5 && yarn run dist:build:bundle", 12 | "dist:build:bundle": "webpack --config webpack.config.js && webpack --config webpack.config.js --env production", 13 | "dist:build:cjs": "tsc -p tsconfig-dist-cjs.json", 14 | "dist:build:esm2015": "tsc -p tsconfig-dist-esm2015.json", 15 | "dist:build:esm5": "tsc -p tsconfig-dist-esm5.json", 16 | "dist:changelog": "changelog generate", 17 | "dist:clean": "rimraf dist && rimraf bundles/backoff-rxjs.* && mkdirp bundles", 18 | "dist:copy": "node scripts/pack.js && cpy bundles/backoff-rxjs.* dist/bundles/ && cpy CHANGELOG.md LICENSE README.md dist/", 19 | "lint": "tslint --project tsconfig.json src/**/*.ts", 20 | "prettier": "prettier --write \"**/*.ts\"", 21 | "test": "yarn run test:build && yarn run test:jest", 22 | "test:build": "yarn run test:clean && tsc -p tsconfig.json", 23 | "test:clean": "rimraf build", 24 | "test:jest": "jest", 25 | "coverage": "jest --coverage --coverageDirectory=./coverage && open ./coverage/lcov-report/index.html" 26 | }, 27 | "repository": { 28 | "type": "git", 29 | "url": "git+https://github.com/alex-okrushko/backoff-rxjs.git" 30 | }, 31 | "keywords": [ 32 | "RxJS", 33 | "backoff", 34 | "exponential" 35 | ], 36 | "author": "Alex Okrushko", 37 | "license": "MIT", 38 | "bugs": { 39 | "url": "https://github.com/alex-okrushko/backoff-rxjs/issues" 40 | }, 41 | "homepage": "https://github.com/alex-okrushko/backoff-rxjs#readme", 42 | "peerDependencies": { 43 | "rxjs": "^7.0.0" 44 | }, 45 | "devDependencies": { 46 | "@types/jest": "^28.1.0", 47 | "@types/node": "^12.12.3", 48 | "cpy-cli": "^4.1.0", 49 | "generate-changelog": "^1.8.0", 50 | "install-peers": "^1.0.4", 51 | "jest": "^28.1.0", 52 | "mkdirp": "^1.0.4", 53 | "prettier": "^2.6.2", 54 | "rimraf": "^3.0.2", 55 | "ts-jest": "^28.0.4", 56 | "ts-loader": "^9.3.0", 57 | "ts-node": "^10.8.1", 58 | "tsconfig-paths": "^4.0.0", 59 | "tslint": "^6.1.3", 60 | "typescript": "^4.7.3", 61 | "webpack": "^5.73.0", 62 | "webpack-cli": "^4.9.2", 63 | "webpack-rxjs-externals": "^2.0.0" 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | trailingComma: 'es5', 4 | arrowParens: 'avoid', 5 | } 6 | -------------------------------------------------------------------------------- /retryBackoff.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 28 | 33 | 39 | 44 | 49 | 55 | 56 | 64 | 68 | 69 | 70 | 71 | 72 | 76 | 77 | 78 | 83 | r 88 | 89 | 90 | 91 | 96 | r 101 | 102 | 103 | 104 | 109 | r 114 | 115 | 116 | 117 | 119 | 120 | 121 | 125 | 126 | 127 | 132 | 1 137 | 138 | 139 | 140 | 145 | 2 150 | 151 | 152 | 153 | 157 | 161 | 162 | 163 | 164 | 170 | retryBackoff 175 | 176 | 177 | 181 | 182 | 183 | 188 | 1 193 | 194 | 195 | 196 | 201 | 2 206 | 207 | 208 | 209 | 214 | 1 219 | 220 | 221 | 222 | 227 | 2 232 | 233 | 234 | 235 | 240 | 1 245 | 246 | 247 | 248 | 253 | 2 258 | 259 | 260 | 261 | 266 | 1 271 | 272 | 273 | 274 | 279 | 2 284 | 285 | 286 | 287 | 289 | 290 | 291 | 292 | -------------------------------------------------------------------------------- /scripts/pack.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | 5 | const content = Object.assign( 6 | {}, 7 | JSON.parse(fs.readFileSync('./package.json')), 8 | JSON.parse(fs.readFileSync('./package-dist.json')) 9 | ); 10 | fs.writeFileSync('./dist/package.json', JSON.stringify(content, null, 2)); 11 | -------------------------------------------------------------------------------- /spec/intervalBackoff-spec.ts: -------------------------------------------------------------------------------- 1 | import { intervalBackoff } from '../src/index'; 2 | import { take } from 'rxjs/operators'; 3 | import { TestScheduler } from 'rxjs/testing'; 4 | 5 | /** @test {interval} */ 6 | describe('interval', () => { 7 | let testScheduler: TestScheduler; 8 | 9 | beforeEach(() => { 10 | testScheduler = new TestScheduler((actual, expected) => { 11 | expect(actual).toEqual(expected); 12 | }); 13 | }); 14 | 15 | it('should emit sequence starting from 0 with exponentially increasing delay', () => { 16 | testScheduler.run(({ expectObservable }) => { 17 | const expected = '01-2---3-------4---------------(5|)'; 18 | expectObservable( 19 | intervalBackoff(1, testScheduler).pipe(take(6)) 20 | ).toBe(expected, [0, 1, 2, 3, 4, 5]); 21 | }); 22 | }); 23 | 24 | it('should emit when relative interval set to zero', () => { 25 | testScheduler.run(({ expectObservable }) => { 26 | const expected = '(012345|)'; 27 | expectObservable( 28 | intervalBackoff(0, testScheduler).pipe(take(6)) 29 | ).toBe(expected, [0, 1, 2, 3, 4, 5]); 30 | }); 31 | }); 32 | 33 | it('should consider negative interval as zero', () => { 34 | testScheduler.run(({ expectObservable }) => { 35 | const expected = '(012345|)'; 36 | expectObservable( 37 | intervalBackoff(-1, testScheduler).pipe(take(6)) 38 | ).toBe(expected, [0, 1, 2, 3, 4, 5]); 39 | }); 40 | }); 41 | 42 | it('should emit values until unsubscribed', done => { 43 | const values: number[] = []; 44 | const expected = [0, 1, 2, 3, 4, 5, 6]; 45 | const e1 = intervalBackoff(2); 46 | const subscription = e1.subscribe( 47 | (x: number) => { 48 | values.push(x); 49 | if (x === 6) { 50 | subscription.unsubscribe(); 51 | expect(values).toEqual(expected); 52 | done(); 53 | } 54 | }, 55 | (err: any) => { 56 | done(new Error('should not be called')); 57 | }, 58 | () => { 59 | done(new Error('should not be called')); 60 | } 61 | ); 62 | }); 63 | 64 | it('should backoff until maxInterval', () => { 65 | testScheduler.run(({ expectObservable }) => { 66 | // 6 frames between 👇 and 👇 67 | const expected = '01-2---3-----4-----(5|)'; 68 | expectObservable( 69 | intervalBackoff( 70 | { 71 | initialInterval: 1, 72 | maxInterval: 6, 73 | }, 74 | testScheduler 75 | ).pipe(take(6)) 76 | ).toBe(expected, [0, 1, 2, 3, 4, 5]); 77 | }); 78 | }); 79 | }); 80 | -------------------------------------------------------------------------------- /spec/retryBackoff-spec.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Observable, 3 | Observer, 4 | of, 5 | Subject, 6 | throwError, 7 | concat, 8 | map, 9 | mergeMap, 10 | share, 11 | from, 12 | concatWith, 13 | } from 'rxjs'; 14 | import { TestScheduler } from 'rxjs/testing'; 15 | import { retryBackoff } from '../src'; 16 | 17 | describe('retryBackoff operator', () => { 18 | let testScheduler: TestScheduler; 19 | 20 | beforeEach(() => { 21 | testScheduler = new TestScheduler((actual, expected) => { 22 | expect(actual).toEqual(expected); 23 | }); 24 | }); 25 | 26 | it('should handle a basic source that emits next then errors, maxRetries 3', () => { 27 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 28 | const source = cold('--1-2-3-#'); 29 | const subs = [ 30 | ' ^-------!', 31 | ' ---------^-------!', 32 | ' -------------------^-------!', 33 | ' -------------------------------^-------!', 34 | ]; 35 | const expected = ' --1-2-3----1-2-3-----1-2-3-------1-2-3-#'; 36 | 37 | expectObservable( 38 | source.pipe( 39 | retryBackoff({ 40 | initialInterval: 1, 41 | maxRetries: 3, 42 | }) 43 | ) 44 | ).toBe(expected); 45 | expectSubscriptions(source.subscriptions).toBe(subs); 46 | }); 47 | }); 48 | 49 | it('should retry a number of times, without error, then complete', done => { 50 | let errors = 0; 51 | const retries = 2; 52 | new Observable((observer: Observer) => { 53 | observer.next(42); 54 | observer.complete(); 55 | }) 56 | .pipe( 57 | map((x: any) => { 58 | if (++errors < retries) { 59 | throw 'bad'; 60 | } 61 | errors = 0; 62 | return x; 63 | }), 64 | retryBackoff({ initialInterval: 1, maxRetries: retries }) 65 | ) 66 | .subscribe({ 67 | next: (x: number) => { 68 | expect(x).toEqual(42); 69 | }, 70 | error: () => { 71 | expect('this was called').toBeTruthy(); 72 | }, 73 | complete: done 74 | }); 75 | }); 76 | 77 | it('should retry a number of times, then call error handler', done => { 78 | let errors = 0; 79 | const retries = 2; 80 | new Observable((observer: Observer) => { 81 | observer.next(42); 82 | observer.complete(); 83 | }) 84 | .pipe( 85 | map(() => { 86 | errors += 1; 87 | throw 'bad'; 88 | }), 89 | retryBackoff({ initialInterval: 1, maxRetries: retries - 1 }) 90 | ) 91 | .subscribe({ 92 | next: (x: number) => { 93 | expect(x).toEqual(42); 94 | }, 95 | error: () => { 96 | expect(errors).toEqual(2); 97 | done(); 98 | }, 99 | complete: () => { 100 | expect('this was called').toBeTruthy(); 101 | } 102 | }); 103 | }); 104 | 105 | it('should retry until successful completion', done => { 106 | let errors = 0; 107 | const retries = 10; 108 | new Observable((observer: Observer) => { 109 | observer.next(42); 110 | observer.complete(); 111 | }) 112 | .pipe( 113 | map((x: any) => { 114 | if (++errors < retries) { 115 | throw 'bad'; 116 | } 117 | errors = 0; 118 | return x; 119 | }), 120 | retryBackoff({ initialInterval: 1 }) 121 | ) 122 | .subscribe({ 123 | next: (x: number) => { 124 | expect(x).toEqual(42); 125 | }, 126 | error: () => { 127 | expect('this was called').toBeTruthy(); 128 | }, 129 | complete:done 130 | }); 131 | }); 132 | 133 | it('should handle an empty source', () => { 134 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 135 | const source = cold('|'); 136 | const subs = ' (^!)'; 137 | const expected = ' |'; 138 | 139 | const result = source.pipe(retryBackoff(1)); 140 | 141 | expectObservable(result).toBe(expected); 142 | expectSubscriptions(source.subscriptions).toBe(subs); 143 | }); 144 | }); 145 | 146 | it('should handle a never source', () => { 147 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 148 | const source = cold('-'); 149 | const subs = ' ^'; 150 | const expected = ' -'; 151 | 152 | const result = source.pipe(retryBackoff(1)); 153 | 154 | expectObservable(result).toBe(expected); 155 | expectSubscriptions(source.subscriptions).toBe(subs); 156 | }); 157 | }); 158 | 159 | it('should return a never observable given an async just-throw source and no count', () => { 160 | testScheduler.run(({ expectObservable, cold }) => { 161 | const source = cold('-#'); // important that it's not a sync error 162 | const unsub = ' -------------------------------------!'; 163 | const expected = ' --------------------------------------'; 164 | 165 | const result = source.pipe(retryBackoff(1)); 166 | 167 | expectObservable(result, unsub).toBe(expected); 168 | }); 169 | }); 170 | 171 | it('should handle a basic source that emits next then completes', () => { 172 | testScheduler.run(({ expectObservable, hot, expectSubscriptions }) => { 173 | const source = hot('--1--2--^--3--4--5---|'); 174 | const subs = ' ^------------!'; 175 | const expected = ' ---3--4--5---|'; 176 | 177 | const result = source.pipe(retryBackoff(1)); 178 | 179 | expectObservable(result).toBe(expected); 180 | expectSubscriptions(source.subscriptions).toBe(subs); 181 | }); 182 | }); 183 | 184 | it('should handle a basic source that emits next but does not complete', () => { 185 | testScheduler.run(({ expectObservable, hot, expectSubscriptions }) => { 186 | const source = hot('--1--2--^--3--4--5---'); 187 | const subs = ' ^------------'; 188 | const expected = ' ---3--4--5---'; 189 | 190 | const result = source.pipe(retryBackoff(1)); 191 | 192 | expectObservable(result).toBe(expected); 193 | expectSubscriptions(source.subscriptions).toBe(subs); 194 | }); 195 | }); 196 | 197 | it('should handle a basic source that emits next then errors, no maxRetries', () => { 198 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 199 | const source = cold('--1-2-3-#'); 200 | const unsub = ' -------------------------------------!'; 201 | const subs = [ 202 | ' ^-------! ', 203 | ' ---------^-------! ', 204 | ' -------------------^-------! ', 205 | ' -------------------------------^-----!', 206 | ]; 207 | const expected = ' --1-2-3----1-2-3-----1-2-3-------1-2--'; 208 | 209 | const result = source.pipe(retryBackoff(1)); 210 | 211 | expectObservable(result, unsub).toBe(expected); 212 | expectSubscriptions(source.subscriptions).toBe(subs); 213 | }); 214 | }); 215 | 216 | it( 217 | 'should handle a source which eventually throws, maxRetries=3, and result is ' + 218 | 'unsubscribed early', 219 | () => { 220 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 221 | const source = cold('--1-2-3-#'); 222 | const unsub = ' -------------!'; 223 | const subs = [ 224 | ' ^-------! ', 225 | ' ---------^---! ', 226 | ]; 227 | const expected = ' --1-2-3----1--'; 228 | 229 | const result = source.pipe( 230 | retryBackoff({ initialInterval: 1, maxRetries: 3 }) 231 | ); 232 | 233 | expectObservable(result, unsub).toBe(expected); 234 | expectSubscriptions(source.subscriptions).toBe(subs); 235 | }); 236 | } 237 | ); 238 | 239 | it('should not break unsubscription chain when unsubscribed explicitly', () => { 240 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 241 | const source = cold('--1-2-3-#'); 242 | const subs = [ 243 | ' ^-------! ', 244 | ' ---------^---! ', 245 | ]; 246 | const expected = ' --1-2-3----1--'; 247 | const unsub = ' -------------! '; 248 | 249 | const result = source.pipe( 250 | mergeMap((x: string) => of(x)), 251 | retryBackoff(1), 252 | mergeMap((x: string) => of(x)) 253 | ); 254 | 255 | expectObservable(result, unsub).toBe(expected); 256 | expectSubscriptions(source.subscriptions).toBe(subs); 257 | }); 258 | }); 259 | 260 | it('should retry a synchronous source (multicasted) multiple times', done => { 261 | const expected = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]; 262 | 263 | const ERR = new Error('bad!'); 264 | 265 | from([1, 2, 3]) 266 | .pipe( 267 | concatWith(throwError(() => ERR)), 268 | share({ 269 | connector: () => new Subject(), 270 | }), 271 | retryBackoff({ initialInterval: 1, maxRetries: 4 }) 272 | ) 273 | .subscribe({ 274 | next: (x: number) => { 275 | expect(x).toEqual(expected.shift()); 276 | }, 277 | error: (err: unknown) => { 278 | expect(err).toEqual(ERR); 279 | expect(expected.length).toEqual(0); 280 | done(); 281 | }, 282 | complete: () => { 283 | done(new Error('should not be called')); 284 | }, 285 | }); 286 | }); 287 | 288 | it('should increase the intervals exponentially up to maxInterval', () => { 289 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 290 | const source = cold('--1-2-3-#'); 291 | const subs = [ 292 | ' ^-------!', 293 | ' ---------^-------!', 294 | ' -------------------^-------!', 295 | ' -----------------------------^-------!', 296 | // interval maxed out at 2 ^ 297 | ]; 298 | const unsub = ' -------------------------------------!'; 299 | const expected = ' --1-2-3----1-2-3-----1-2-3-----1-2-3--'; 300 | 301 | expectObservable( 302 | source.pipe( 303 | retryBackoff({ 304 | initialInterval: 1, 305 | maxInterval: 2, 306 | }) 307 | ), 308 | unsub 309 | ).toBe(expected); 310 | expectSubscriptions(source.subscriptions).toBe(subs); 311 | }); 312 | }); 313 | 314 | it('should retry until shouldRetry is true', done => { 315 | let errors = 0; 316 | const isNotSoBad = (error: any) => error === 'not so bad'; 317 | new Observable((observer: Observer) => { 318 | observer.next(42); 319 | observer.complete(); 320 | }) 321 | .pipe( 322 | map(() => { 323 | errors += 1; 324 | throw errors < 2 ? 'not so bad' : 'really bad'; 325 | }), 326 | retryBackoff({ initialInterval: 1, shouldRetry: isNotSoBad }) 327 | ) 328 | .subscribe({ 329 | next:() => {}, 330 | error:(err: unknown) => { 331 | expect(errors).toEqual(2); 332 | expect(err).toEqual('really bad'); 333 | done(); 334 | } 335 | }); 336 | }); 337 | 338 | it('should increase the intervals calculated by backoffDelay function', () => { 339 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 340 | const constantDelay = (iteration: number, initialInterval: number) => 341 | initialInterval; 342 | const source = cold('-1-#'); 343 | const subs = [ 344 | ' ^--!', 345 | ' ----^--!', 346 | ' --------^--!', 347 | ' ------------^--!', 348 | ' ----------------^--!', 349 | ]; 350 | const unsub = ' -------------------!'; 351 | const expected = ' -1---1---1---1---1--'; 352 | 353 | expectObservable( 354 | source.pipe( 355 | retryBackoff({ 356 | initialInterval: 1, 357 | backoffDelay: constantDelay, 358 | }) 359 | ), 360 | unsub 361 | ).toBe(expected); 362 | expectSubscriptions(source.subscriptions).toBe(subs); 363 | }); 364 | }); 365 | 366 | it('should be referentially transparent', () => { 367 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 368 | const source1 = cold('--#'); 369 | const source2 = cold('--#'); 370 | const unsub = ' ---------!'; 371 | const subs = [ 372 | ' ^-! ', 373 | ' ---^-! ', 374 | ' -------^-!', 375 | ]; 376 | const expected = ' ----------'; 377 | 378 | const op = retryBackoff({ 379 | initialInterval: 1, 380 | }); 381 | 382 | expectObservable(source1.pipe(op), unsub).toBe(expected); 383 | expectSubscriptions(source1.subscriptions).toBe(subs); 384 | 385 | expectObservable(source2.pipe(op), unsub).toBe(expected); 386 | expectSubscriptions(source2.subscriptions).toBe(subs); 387 | }); 388 | }); 389 | 390 | it('should ensure interval state is per-subscription', () => { 391 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 392 | const source = cold('--#'); 393 | const sub1 = ' ^--------!'; 394 | const sub2 = ' ----------^--------!'; 395 | const subs = [ 396 | ' ^-! ', 397 | ' ---^-! ', 398 | ' -------^-!', 399 | ' ----------^-! ', 400 | ' -------------^-! ', 401 | ' -----------------^-!', 402 | ]; 403 | const expected = ' ----------'; 404 | 405 | const result = source.pipe( 406 | retryBackoff({ 407 | initialInterval: 1, 408 | }) 409 | ); 410 | 411 | expectObservable(result, sub1).toBe(expected); 412 | expectObservable(result, sub2).toBe(expected); 413 | expectSubscriptions(source.subscriptions).toBe(subs); 414 | }); 415 | }); 416 | 417 | it('should reset the delay when resetOnSuccess is true', () => { 418 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 419 | const source = cold('--1-2-3-#'); 420 | const subs = [ 421 | ' ^-------!', 422 | ' ---------^-------!', 423 | ' ------------------^-------!', 424 | ' ---------------------------^-------!', 425 | // interval always reset to 1 ^ 426 | ]; 427 | const unsub = ' -----------------------------------!'; 428 | const expected = ' --1-2-3----1-2-3----1-2-3----1-2-3--'; 429 | 430 | expectObservable( 431 | source.pipe( 432 | retryBackoff({ 433 | initialInterval: 1, 434 | resetOnSuccess: true, 435 | }) 436 | ), 437 | unsub 438 | ).toBe(expected); 439 | expectSubscriptions(source.subscriptions).toBe(subs); 440 | }); 441 | }); 442 | 443 | it('should not reset the delay on consecutive errors when resetOnSuccess is true', () => { 444 | testScheduler.run(({ expectObservable, cold, expectSubscriptions }) => { 445 | const source = cold('--------#'); 446 | const unsub = ' -------------------------------------!'; 447 | const subs = [ 448 | ' ^-------! ', 449 | ' ---------^-------! ', 450 | ' -------------------^-------! ', 451 | ' -------------------------------^-----!', 452 | ]; 453 | const expected = ' --------------------------------------'; 454 | 455 | const result = source.pipe( 456 | retryBackoff({ 457 | initialInterval: 1, 458 | resetOnSuccess: true, 459 | }) 460 | ); 461 | 462 | expectObservable(result, unsub).toBe(expected); 463 | expectSubscriptions(source.subscriptions).toBe(subs); 464 | }); 465 | }); 466 | }); 467 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { retryBackoff, RetryBackoffConfig } from './operators/retryBackoff'; 2 | export { 3 | intervalBackoff, 4 | IntervalBackoffConfig, 5 | } from './observable/intervalBackoff'; 6 | -------------------------------------------------------------------------------- /src/observable/intervalBackoff.ts: -------------------------------------------------------------------------------- 1 | import { Observable, of, timer, SchedulerLike, asyncScheduler, expand, mapTo } from 'rxjs'; 2 | import { exponentialBackoffDelay, getDelay } from '../utils'; 3 | 4 | export interface IntervalBackoffConfig { 5 | initialInterval: number; 6 | maxInterval?: number; 7 | backoffDelay?: (iteration: number, initialInterval: number) => number; 8 | } 9 | /** 10 | * Creates an Observable that emits sequential numbers with by default 11 | * exponentially increasing interval of time. 12 | */ 13 | export function intervalBackoff( 14 | config: number | IntervalBackoffConfig, 15 | scheduler: SchedulerLike = asyncScheduler 16 | ): Observable { 17 | let { 18 | initialInterval, 19 | maxInterval = Infinity, 20 | backoffDelay = exponentialBackoffDelay, 21 | } = typeof config === 'number' ? { initialInterval: config } : config; 22 | initialInterval = initialInterval < 0 ? 0 : initialInterval; 23 | return of(0, scheduler).pipe( 24 | // Expend starts with number 1 and then recursively 25 | // projects each value to new Observable and puts it back in. 26 | expand((iteration: number) => 27 | timer(getDelay(backoffDelay(iteration, initialInterval), maxInterval)) 28 | // Once timer is complete, iteration is increased 29 | .pipe(mapTo(iteration + 1)) 30 | ) 31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /src/operators/retryBackoff.ts: -------------------------------------------------------------------------------- 1 | import { defer, iif, Observable, throwError, timer, concatMap, retryWhen, tap } from 'rxjs'; 2 | import { exponentialBackoffDelay, getDelay } from '../utils'; 3 | 4 | export interface RetryBackoffConfig { 5 | // Initial interval. It will eventually go as high as maxInterval. 6 | initialInterval: number; 7 | // Maximum number of retry attempts. 8 | maxRetries?: number; 9 | // Maximum delay between retries. 10 | maxInterval?: number; 11 | // When set to `true` every successful emission will reset the delay and the 12 | // error count. 13 | resetOnSuccess?: boolean; 14 | // Conditional retry. 15 | shouldRetry?: (error: any) => boolean; 16 | backoffDelay?: (iteration: number, initialInterval: number) => number; 17 | } 18 | 19 | /** 20 | * Returns an Observable that mirrors the source Observable except with an error. 21 | * If the source Observable calls error, rather than propagating 22 | * the error call this method will resubscribe to the source Observable with 23 | * exponentially increasing interval and up to a maximum of count 24 | * re-subscriptions (if provided). Retrying can be cancelled at any point if 25 | * shouldRetry returns false. 26 | */ 27 | export function retryBackoff( 28 | config: number | RetryBackoffConfig 29 | ): (source: Observable) => Observable { 30 | const { 31 | initialInterval, 32 | maxRetries = Infinity, 33 | maxInterval = Infinity, 34 | shouldRetry = () => true, 35 | resetOnSuccess = false, 36 | backoffDelay = exponentialBackoffDelay, 37 | } = typeof config === 'number' ? { initialInterval: config } : config; 38 | return (source: Observable) => 39 | defer(() => { 40 | let index = 0; 41 | return source.pipe( 42 | retryWhen(errors => 43 | errors.pipe( 44 | concatMap(error => { 45 | const attempt = index++; 46 | return iif( 47 | () => attempt < maxRetries && shouldRetry(error), 48 | timer( 49 | getDelay(backoffDelay(attempt, initialInterval), maxInterval) 50 | ), 51 | throwError(error) 52 | ); 53 | }) 54 | ) 55 | ), 56 | tap(() => { 57 | if (resetOnSuccess) { 58 | index = 0; 59 | } 60 | }) 61 | ); 62 | }); 63 | } 64 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | /** Calculates the actual delay which can be limited by maxInterval */ 2 | export function getDelay(backoffDelay: number, maxInterval: number) { 3 | return Math.min(backoffDelay, maxInterval); 4 | } 5 | 6 | /** Exponential backoff delay */ 7 | export function exponentialBackoffDelay( 8 | iteration: number, 9 | initialInterval: number 10 | ) { 11 | return Math.pow(2, iteration) * initialInterval; 12 | } 13 | -------------------------------------------------------------------------------- /tsconfig-dist-cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": true, 4 | "module": "commonjs", 5 | "outDir": "dist", 6 | "target": "es5" 7 | }, 8 | "extends": "./tsconfig-dist.json" 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig-dist-esm2015.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": false, 4 | "module": "es2015", 5 | "outDir": "dist/esm2015", 6 | "target": "es2015" 7 | }, 8 | "extends": "./tsconfig-dist.json" 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig-dist-esm5.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": false, 4 | "module": "es2015", 5 | "outDir": "dist/esm5", 6 | "target": "es5" 7 | }, 8 | "extends": "./tsconfig-dist.json" 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig-dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": false, 4 | "importHelpers": false, 5 | "lib": ["es2017"], 6 | "module": "commonjs", 7 | "moduleResolution": "node", 8 | "noEmitHelpers": false, 9 | "noImplicitAny": true, 10 | "outDir": "build", 11 | "removeComments": true, 12 | "skipLibCheck": true, 13 | "sourceMap": false, 14 | "strict": true, 15 | "suppressImplicitAnyIndexErrors": true, 16 | "target": "es2015" 17 | }, 18 | "bazelOptions": { 19 | "suppressTsconfigOverrideWarnings": true 20 | }, 21 | "include": ["src/**/*.ts"] 22 | } 23 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | const webpack = require('webpack'); 5 | const webpackRxjsExternals = require('webpack-rxjs-externals'); 6 | 7 | module.exports = env => { 8 | let filename = 'backoff-rxjs.umd.js'; 9 | let mode = 'development'; 10 | 11 | if (env && env.production) { 12 | filename = 'backoff-rxjs.min.umd.js'; 13 | mode = 'production'; 14 | } 15 | 16 | return { 17 | context: path.join(__dirname, './'), 18 | entry: { 19 | index: './src/index.ts' 20 | }, 21 | externals: webpackRxjsExternals(), 22 | mode, 23 | module: { 24 | rules: [ 25 | { 26 | test: /\.ts$/, 27 | use: { 28 | loader: 'ts-loader', 29 | options: { 30 | compilerOptions: { 31 | declaration: false 32 | }, 33 | configFile: 'tsconfig-dist-cjs.json' 34 | } 35 | } 36 | } 37 | ] 38 | }, 39 | output: { 40 | filename, 41 | library: 'backoff-rxjs', 42 | libraryTarget: 'umd', 43 | path: path.resolve(__dirname, './bundles') 44 | }, 45 | resolve: { 46 | extensions: ['.ts', '.js'] 47 | } 48 | }; 49 | }; 50 | -------------------------------------------------------------------------------- /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 | "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==" 7 | "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" 8 | "version" "2.2.0" 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 | "integrity" "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==" 15 | "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" 16 | "version" "7.16.7" 17 | dependencies: 18 | "@babel/highlight" "^7.16.7" 19 | 20 | "@babel/compat-data@^7.17.10": 21 | "integrity" "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==" 22 | "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz" 23 | "version" "7.17.10" 24 | 25 | "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": 26 | "integrity" "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==" 27 | "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz" 28 | "version" "7.18.2" 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.16.7" 32 | "@babel/generator" "^7.18.2" 33 | "@babel/helper-compilation-targets" "^7.18.2" 34 | "@babel/helper-module-transforms" "^7.18.0" 35 | "@babel/helpers" "^7.18.2" 36 | "@babel/parser" "^7.18.0" 37 | "@babel/template" "^7.16.7" 38 | "@babel/traverse" "^7.18.2" 39 | "@babel/types" "^7.18.2" 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.18.2", "@babel/generator@^7.7.2": 47 | "integrity" "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==" 48 | "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz" 49 | "version" "7.18.2" 50 | dependencies: 51 | "@babel/types" "^7.18.2" 52 | "@jridgewell/gen-mapping" "^0.3.0" 53 | "jsesc" "^2.5.1" 54 | 55 | "@babel/helper-compilation-targets@^7.18.2": 56 | "integrity" "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==" 57 | "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz" 58 | "version" "7.18.2" 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", "@babel/helper-environment-visitor@^7.18.2": 66 | "integrity" "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==" 67 | "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz" 68 | "version" "7.18.2" 69 | 70 | "@babel/helper-function-name@^7.17.9": 71 | "integrity" "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==" 72 | "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" 73 | "version" "7.17.9" 74 | dependencies: 75 | "@babel/template" "^7.16.7" 76 | "@babel/types" "^7.17.0" 77 | 78 | "@babel/helper-hoist-variables@^7.16.7": 79 | "integrity" "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" 80 | "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" 81 | "version" "7.16.7" 82 | dependencies: 83 | "@babel/types" "^7.16.7" 84 | 85 | "@babel/helper-module-imports@^7.16.7": 86 | "integrity" "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" 87 | "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" 88 | "version" "7.16.7" 89 | dependencies: 90 | "@babel/types" "^7.16.7" 91 | 92 | "@babel/helper-module-transforms@^7.18.0": 93 | "integrity" "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==" 94 | "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz" 95 | "version" "7.18.0" 96 | dependencies: 97 | "@babel/helper-environment-visitor" "^7.16.7" 98 | "@babel/helper-module-imports" "^7.16.7" 99 | "@babel/helper-simple-access" "^7.17.7" 100 | "@babel/helper-split-export-declaration" "^7.16.7" 101 | "@babel/helper-validator-identifier" "^7.16.7" 102 | "@babel/template" "^7.16.7" 103 | "@babel/traverse" "^7.18.0" 104 | "@babel/types" "^7.18.0" 105 | 106 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": 107 | "integrity" "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" 108 | "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz" 109 | "version" "7.17.12" 110 | 111 | "@babel/helper-simple-access@^7.17.7": 112 | "integrity" "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==" 113 | "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz" 114 | "version" "7.18.2" 115 | dependencies: 116 | "@babel/types" "^7.18.2" 117 | 118 | "@babel/helper-split-export-declaration@^7.16.7": 119 | "integrity" "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" 120 | "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" 121 | "version" "7.16.7" 122 | dependencies: 123 | "@babel/types" "^7.16.7" 124 | 125 | "@babel/helper-validator-identifier@^7.16.7": 126 | "integrity" "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" 127 | "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" 128 | "version" "7.16.7" 129 | 130 | "@babel/helper-validator-option@^7.16.7": 131 | "integrity" "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" 132 | "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" 133 | "version" "7.16.7" 134 | 135 | "@babel/helpers@^7.18.2": 136 | "integrity" "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==" 137 | "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz" 138 | "version" "7.18.2" 139 | dependencies: 140 | "@babel/template" "^7.16.7" 141 | "@babel/traverse" "^7.18.2" 142 | "@babel/types" "^7.18.2" 143 | 144 | "@babel/highlight@^7.16.7": 145 | "integrity" "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==" 146 | "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz" 147 | "version" "7.17.12" 148 | dependencies: 149 | "@babel/helper-validator-identifier" "^7.16.7" 150 | "chalk" "^2.0.0" 151 | "js-tokens" "^4.0.0" 152 | 153 | "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": 154 | "integrity" "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==" 155 | "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz" 156 | "version" "7.18.4" 157 | 158 | "@babel/plugin-syntax-async-generators@^7.8.4": 159 | "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" 160 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" 161 | "version" "7.8.4" 162 | dependencies: 163 | "@babel/helper-plugin-utils" "^7.8.0" 164 | 165 | "@babel/plugin-syntax-bigint@^7.8.3": 166 | "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" 167 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" 168 | "version" "7.8.3" 169 | dependencies: 170 | "@babel/helper-plugin-utils" "^7.8.0" 171 | 172 | "@babel/plugin-syntax-class-properties@^7.8.3": 173 | "integrity" "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==" 174 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz" 175 | "version" "7.8.3" 176 | dependencies: 177 | "@babel/helper-plugin-utils" "^7.8.3" 178 | 179 | "@babel/plugin-syntax-import-meta@^7.8.3": 180 | "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" 181 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" 182 | "version" "7.10.4" 183 | dependencies: 184 | "@babel/helper-plugin-utils" "^7.10.4" 185 | 186 | "@babel/plugin-syntax-json-strings@^7.8.3": 187 | "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" 188 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" 189 | "version" "7.8.3" 190 | dependencies: 191 | "@babel/helper-plugin-utils" "^7.8.0" 192 | 193 | "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": 194 | "integrity" "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==" 195 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz" 196 | "version" "7.8.3" 197 | dependencies: 198 | "@babel/helper-plugin-utils" "^7.8.3" 199 | 200 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 201 | "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" 202 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" 203 | "version" "7.8.3" 204 | dependencies: 205 | "@babel/helper-plugin-utils" "^7.8.0" 206 | 207 | "@babel/plugin-syntax-numeric-separator@^7.8.3": 208 | "integrity" "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==" 209 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz" 210 | "version" "7.8.3" 211 | dependencies: 212 | "@babel/helper-plugin-utils" "^7.8.3" 213 | 214 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 215 | "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" 216 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" 217 | "version" "7.8.3" 218 | dependencies: 219 | "@babel/helper-plugin-utils" "^7.8.0" 220 | 221 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 222 | "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" 223 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" 224 | "version" "7.8.3" 225 | dependencies: 226 | "@babel/helper-plugin-utils" "^7.8.0" 227 | 228 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 229 | "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" 230 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" 231 | "version" "7.8.3" 232 | dependencies: 233 | "@babel/helper-plugin-utils" "^7.8.0" 234 | 235 | "@babel/plugin-syntax-top-level-await@^7.8.3": 236 | "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" 237 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" 238 | "version" "7.14.5" 239 | dependencies: 240 | "@babel/helper-plugin-utils" "^7.14.5" 241 | 242 | "@babel/plugin-syntax-typescript@^7.7.2": 243 | "integrity" "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==" 244 | "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz" 245 | "version" "7.17.12" 246 | dependencies: 247 | "@babel/helper-plugin-utils" "^7.17.12" 248 | 249 | "@babel/template@^7.16.7", "@babel/template@^7.3.3": 250 | "integrity" "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==" 251 | "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" 252 | "version" "7.16.7" 253 | dependencies: 254 | "@babel/code-frame" "^7.16.7" 255 | "@babel/parser" "^7.16.7" 256 | "@babel/types" "^7.16.7" 257 | 258 | "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.7.2": 259 | "integrity" "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==" 260 | "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz" 261 | "version" "7.18.2" 262 | dependencies: 263 | "@babel/code-frame" "^7.16.7" 264 | "@babel/generator" "^7.18.2" 265 | "@babel/helper-environment-visitor" "^7.18.2" 266 | "@babel/helper-function-name" "^7.17.9" 267 | "@babel/helper-hoist-variables" "^7.16.7" 268 | "@babel/helper-split-export-declaration" "^7.16.7" 269 | "@babel/parser" "^7.18.0" 270 | "@babel/types" "^7.18.2" 271 | "debug" "^4.1.0" 272 | "globals" "^11.1.0" 273 | 274 | "@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": 275 | "integrity" "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==" 276 | "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz" 277 | "version" "7.18.4" 278 | dependencies: 279 | "@babel/helper-validator-identifier" "^7.16.7" 280 | "to-fast-properties" "^2.0.0" 281 | 282 | "@bcoe/v8-coverage@^0.2.3": 283 | "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" 284 | "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" 285 | "version" "0.2.3" 286 | 287 | "@cspotcode/source-map-support@^0.8.0": 288 | "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" 289 | "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" 290 | "version" "0.8.1" 291 | dependencies: 292 | "@jridgewell/trace-mapping" "0.3.9" 293 | 294 | "@discoveryjs/json-ext@^0.5.0": 295 | "integrity" "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==" 296 | "resolved" "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" 297 | "version" "0.5.7" 298 | 299 | "@istanbuljs/load-nyc-config@^1.0.0": 300 | "integrity" "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==" 301 | "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz" 302 | "version" "1.0.0" 303 | dependencies: 304 | "camelcase" "^5.3.1" 305 | "find-up" "^4.1.0" 306 | "js-yaml" "^3.13.1" 307 | "resolve-from" "^5.0.0" 308 | 309 | "@istanbuljs/schema@^0.1.2": 310 | "integrity" "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" 311 | "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz" 312 | "version" "0.1.2" 313 | 314 | "@jest/console@^28.1.1": 315 | "integrity" "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==" 316 | "resolved" "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz" 317 | "version" "28.1.1" 318 | dependencies: 319 | "@jest/types" "^28.1.1" 320 | "@types/node" "*" 321 | "chalk" "^4.0.0" 322 | "jest-message-util" "^28.1.1" 323 | "jest-util" "^28.1.1" 324 | "slash" "^3.0.0" 325 | 326 | "@jest/core@^28.1.1": 327 | "integrity" "sha512-3pYsBoZZ42tXMdlcFeCc/0j9kOlK7MYuXs2B1QbvDgMoW1K9NJ4G/VYvIbMb26iqlkTfPHo7SC2JgjDOk/mxXw==" 328 | "resolved" "https://registry.npmjs.org/@jest/core/-/core-28.1.1.tgz" 329 | "version" "28.1.1" 330 | dependencies: 331 | "@jest/console" "^28.1.1" 332 | "@jest/reporters" "^28.1.1" 333 | "@jest/test-result" "^28.1.1" 334 | "@jest/transform" "^28.1.1" 335 | "@jest/types" "^28.1.1" 336 | "@types/node" "*" 337 | "ansi-escapes" "^4.2.1" 338 | "chalk" "^4.0.0" 339 | "ci-info" "^3.2.0" 340 | "exit" "^0.1.2" 341 | "graceful-fs" "^4.2.9" 342 | "jest-changed-files" "^28.0.2" 343 | "jest-config" "^28.1.1" 344 | "jest-haste-map" "^28.1.1" 345 | "jest-message-util" "^28.1.1" 346 | "jest-regex-util" "^28.0.2" 347 | "jest-resolve" "^28.1.1" 348 | "jest-resolve-dependencies" "^28.1.1" 349 | "jest-runner" "^28.1.1" 350 | "jest-runtime" "^28.1.1" 351 | "jest-snapshot" "^28.1.1" 352 | "jest-util" "^28.1.1" 353 | "jest-validate" "^28.1.1" 354 | "jest-watcher" "^28.1.1" 355 | "micromatch" "^4.0.4" 356 | "pretty-format" "^28.1.1" 357 | "rimraf" "^3.0.0" 358 | "slash" "^3.0.0" 359 | "strip-ansi" "^6.0.0" 360 | 361 | "@jest/environment@^28.1.1": 362 | "integrity" "sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw==" 363 | "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-28.1.1.tgz" 364 | "version" "28.1.1" 365 | dependencies: 366 | "@jest/fake-timers" "^28.1.1" 367 | "@jest/types" "^28.1.1" 368 | "@types/node" "*" 369 | "jest-mock" "^28.1.1" 370 | 371 | "@jest/expect-utils@^28.1.1": 372 | "integrity" "sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw==" 373 | "resolved" "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.1.tgz" 374 | "version" "28.1.1" 375 | dependencies: 376 | "jest-get-type" "^28.0.2" 377 | 378 | "@jest/expect@^28.1.1": 379 | "integrity" "sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg==" 380 | "resolved" "https://registry.npmjs.org/@jest/expect/-/expect-28.1.1.tgz" 381 | "version" "28.1.1" 382 | dependencies: 383 | "expect" "^28.1.1" 384 | "jest-snapshot" "^28.1.1" 385 | 386 | "@jest/fake-timers@^28.1.1": 387 | "integrity" "sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA==" 388 | "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.1.tgz" 389 | "version" "28.1.1" 390 | dependencies: 391 | "@jest/types" "^28.1.1" 392 | "@sinonjs/fake-timers" "^9.1.1" 393 | "@types/node" "*" 394 | "jest-message-util" "^28.1.1" 395 | "jest-mock" "^28.1.1" 396 | "jest-util" "^28.1.1" 397 | 398 | "@jest/globals@^28.1.1": 399 | "integrity" "sha512-dEgl/6v7ToB4vXItdvcltJBgny0xBE6xy6IYQrPJAJggdEinGxCDMivNv7sFzPcTITGquXD6UJwYxfJ/5ZwDSg==" 400 | "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-28.1.1.tgz" 401 | "version" "28.1.1" 402 | dependencies: 403 | "@jest/environment" "^28.1.1" 404 | "@jest/expect" "^28.1.1" 405 | "@jest/types" "^28.1.1" 406 | 407 | "@jest/reporters@^28.1.1": 408 | "integrity" "sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg==" 409 | "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.1.tgz" 410 | "version" "28.1.1" 411 | dependencies: 412 | "@bcoe/v8-coverage" "^0.2.3" 413 | "@jest/console" "^28.1.1" 414 | "@jest/test-result" "^28.1.1" 415 | "@jest/transform" "^28.1.1" 416 | "@jest/types" "^28.1.1" 417 | "@jridgewell/trace-mapping" "^0.3.7" 418 | "@types/node" "*" 419 | "chalk" "^4.0.0" 420 | "collect-v8-coverage" "^1.0.0" 421 | "exit" "^0.1.2" 422 | "glob" "^7.1.3" 423 | "graceful-fs" "^4.2.9" 424 | "istanbul-lib-coverage" "^3.0.0" 425 | "istanbul-lib-instrument" "^5.1.0" 426 | "istanbul-lib-report" "^3.0.0" 427 | "istanbul-lib-source-maps" "^4.0.0" 428 | "istanbul-reports" "^3.1.3" 429 | "jest-message-util" "^28.1.1" 430 | "jest-util" "^28.1.1" 431 | "jest-worker" "^28.1.1" 432 | "slash" "^3.0.0" 433 | "string-length" "^4.0.1" 434 | "strip-ansi" "^6.0.0" 435 | "terminal-link" "^2.0.0" 436 | "v8-to-istanbul" "^9.0.0" 437 | 438 | "@jest/schemas@^28.0.2": 439 | "integrity" "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==" 440 | "resolved" "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz" 441 | "version" "28.0.2" 442 | dependencies: 443 | "@sinclair/typebox" "^0.23.3" 444 | 445 | "@jest/source-map@^28.0.2": 446 | "integrity" "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==" 447 | "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz" 448 | "version" "28.0.2" 449 | dependencies: 450 | "@jridgewell/trace-mapping" "^0.3.7" 451 | "callsites" "^3.0.0" 452 | "graceful-fs" "^4.2.9" 453 | 454 | "@jest/test-result@^28.1.1": 455 | "integrity" "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==" 456 | "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz" 457 | "version" "28.1.1" 458 | dependencies: 459 | "@jest/console" "^28.1.1" 460 | "@jest/types" "^28.1.1" 461 | "@types/istanbul-lib-coverage" "^2.0.0" 462 | "collect-v8-coverage" "^1.0.0" 463 | 464 | "@jest/test-sequencer@^28.1.1": 465 | "integrity" "sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA==" 466 | "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz" 467 | "version" "28.1.1" 468 | dependencies: 469 | "@jest/test-result" "^28.1.1" 470 | "graceful-fs" "^4.2.9" 471 | "jest-haste-map" "^28.1.1" 472 | "slash" "^3.0.0" 473 | 474 | "@jest/transform@^28.1.1": 475 | "integrity" "sha512-PkfaTUuvjUarl1EDr5ZQcCA++oXkFCP9QFUkG0yVKVmNObjhrqDy0kbMpMebfHWm3CCDHjYNem9eUSH8suVNHQ==" 476 | "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-28.1.1.tgz" 477 | "version" "28.1.1" 478 | dependencies: 479 | "@babel/core" "^7.11.6" 480 | "@jest/types" "^28.1.1" 481 | "@jridgewell/trace-mapping" "^0.3.7" 482 | "babel-plugin-istanbul" "^6.1.1" 483 | "chalk" "^4.0.0" 484 | "convert-source-map" "^1.4.0" 485 | "fast-json-stable-stringify" "^2.0.0" 486 | "graceful-fs" "^4.2.9" 487 | "jest-haste-map" "^28.1.1" 488 | "jest-regex-util" "^28.0.2" 489 | "jest-util" "^28.1.1" 490 | "micromatch" "^4.0.4" 491 | "pirates" "^4.0.4" 492 | "slash" "^3.0.0" 493 | "write-file-atomic" "^4.0.1" 494 | 495 | "@jest/types@^28.1.1": 496 | "integrity" "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==" 497 | "resolved" "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz" 498 | "version" "28.1.1" 499 | dependencies: 500 | "@jest/schemas" "^28.0.2" 501 | "@types/istanbul-lib-coverage" "^2.0.0" 502 | "@types/istanbul-reports" "^3.0.0" 503 | "@types/node" "*" 504 | "@types/yargs" "^17.0.8" 505 | "chalk" "^4.0.0" 506 | 507 | "@jridgewell/gen-mapping@^0.1.0": 508 | "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==" 509 | "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" 510 | "version" "0.1.1" 511 | dependencies: 512 | "@jridgewell/set-array" "^1.0.0" 513 | "@jridgewell/sourcemap-codec" "^1.4.10" 514 | 515 | "@jridgewell/gen-mapping@^0.3.0": 516 | "integrity" "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==" 517 | "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz" 518 | "version" "0.3.1" 519 | dependencies: 520 | "@jridgewell/set-array" "^1.0.0" 521 | "@jridgewell/sourcemap-codec" "^1.4.10" 522 | "@jridgewell/trace-mapping" "^0.3.9" 523 | 524 | "@jridgewell/resolve-uri@^3.0.3": 525 | "integrity" "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" 526 | "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" 527 | "version" "3.0.7" 528 | 529 | "@jridgewell/set-array@^1.0.0": 530 | "integrity" "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==" 531 | "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz" 532 | "version" "1.1.1" 533 | 534 | "@jridgewell/source-map@^0.3.2": 535 | "integrity" "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==" 536 | "resolved" "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz" 537 | "version" "0.3.2" 538 | dependencies: 539 | "@jridgewell/gen-mapping" "^0.3.0" 540 | "@jridgewell/trace-mapping" "^0.3.9" 541 | 542 | "@jridgewell/sourcemap-codec@^1.4.10": 543 | "integrity" "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" 544 | "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" 545 | "version" "1.4.13" 546 | 547 | "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": 548 | "integrity" "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==" 549 | "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz" 550 | "version" "0.3.13" 551 | dependencies: 552 | "@jridgewell/resolve-uri" "^3.0.3" 553 | "@jridgewell/sourcemap-codec" "^1.4.10" 554 | 555 | "@jridgewell/trace-mapping@0.3.9": 556 | "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" 557 | "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" 558 | "version" "0.3.9" 559 | dependencies: 560 | "@jridgewell/resolve-uri" "^3.0.3" 561 | "@jridgewell/sourcemap-codec" "^1.4.10" 562 | 563 | "@nodelib/fs.scandir@2.1.5": 564 | "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" 565 | "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 566 | "version" "2.1.5" 567 | dependencies: 568 | "@nodelib/fs.stat" "2.0.5" 569 | "run-parallel" "^1.1.9" 570 | 571 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": 572 | "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 573 | "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 574 | "version" "2.0.5" 575 | 576 | "@nodelib/fs.walk@^1.2.3": 577 | "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" 578 | "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" 579 | "version" "1.2.8" 580 | dependencies: 581 | "@nodelib/fs.scandir" "2.1.5" 582 | "fastq" "^1.6.0" 583 | 584 | "@sinclair/typebox@^0.23.3": 585 | "integrity" "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==" 586 | "resolved" "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz" 587 | "version" "0.23.5" 588 | 589 | "@sinonjs/commons@^1.7.0": 590 | "integrity" "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==" 591 | "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz" 592 | "version" "1.7.2" 593 | dependencies: 594 | "type-detect" "4.0.8" 595 | 596 | "@sinonjs/fake-timers@^9.1.1": 597 | "integrity" "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==" 598 | "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" 599 | "version" "9.1.2" 600 | dependencies: 601 | "@sinonjs/commons" "^1.7.0" 602 | 603 | "@tsconfig/node10@^1.0.7": 604 | "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" 605 | "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" 606 | "version" "1.0.9" 607 | 608 | "@tsconfig/node12@^1.0.7": 609 | "integrity" "sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA==" 610 | "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.10.tgz" 611 | "version" "1.0.10" 612 | 613 | "@tsconfig/node14@^1.0.0": 614 | "integrity" "sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg==" 615 | "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.2.tgz" 616 | "version" "1.0.2" 617 | 618 | "@tsconfig/node16@^1.0.2": 619 | "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" 620 | "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" 621 | "version" "1.0.3" 622 | 623 | "@types/babel__core@^7.1.14": 624 | "integrity" "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==" 625 | "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" 626 | "version" "7.1.19" 627 | dependencies: 628 | "@babel/parser" "^7.1.0" 629 | "@babel/types" "^7.0.0" 630 | "@types/babel__generator" "*" 631 | "@types/babel__template" "*" 632 | "@types/babel__traverse" "*" 633 | 634 | "@types/babel__generator@*": 635 | "integrity" "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==" 636 | "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz" 637 | "version" "7.6.1" 638 | dependencies: 639 | "@babel/types" "^7.0.0" 640 | 641 | "@types/babel__template@*": 642 | "integrity" "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==" 643 | "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz" 644 | "version" "7.0.2" 645 | dependencies: 646 | "@babel/parser" "^7.1.0" 647 | "@babel/types" "^7.0.0" 648 | 649 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": 650 | "integrity" "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==" 651 | "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz" 652 | "version" "7.0.11" 653 | dependencies: 654 | "@babel/types" "^7.3.0" 655 | 656 | "@types/color-name@^1.1.1": 657 | "integrity" "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" 658 | "resolved" "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" 659 | "version" "1.1.1" 660 | 661 | "@types/eslint-scope@^3.7.3": 662 | "integrity" "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==" 663 | "resolved" "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" 664 | "version" "3.7.3" 665 | dependencies: 666 | "@types/eslint" "*" 667 | "@types/estree" "*" 668 | 669 | "@types/eslint@*": 670 | "integrity" "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==" 671 | "resolved" "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz" 672 | "version" "8.4.3" 673 | dependencies: 674 | "@types/estree" "*" 675 | "@types/json-schema" "*" 676 | 677 | "@types/estree@*", "@types/estree@^0.0.51": 678 | "integrity" "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" 679 | "resolved" "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" 680 | "version" "0.0.51" 681 | 682 | "@types/graceful-fs@^4.1.3": 683 | "integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==" 684 | "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" 685 | "version" "4.1.5" 686 | dependencies: 687 | "@types/node" "*" 688 | 689 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": 690 | "integrity" "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==" 691 | "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz" 692 | "version" "2.0.2" 693 | 694 | "@types/istanbul-lib-report@*": 695 | "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" 696 | "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 697 | "version" "3.0.0" 698 | dependencies: 699 | "@types/istanbul-lib-coverage" "*" 700 | 701 | "@types/istanbul-reports@^3.0.0": 702 | "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" 703 | "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" 704 | "version" "3.0.1" 705 | dependencies: 706 | "@types/istanbul-lib-report" "*" 707 | 708 | "@types/jest@^28.1.0": 709 | "integrity" "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==" 710 | "resolved" "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz" 711 | "version" "28.1.1" 712 | dependencies: 713 | "jest-matcher-utils" "^27.0.0" 714 | "pretty-format" "^27.0.0" 715 | 716 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 717 | "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" 718 | "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" 719 | "version" "7.0.11" 720 | 721 | "@types/minimist@^1.2.2": 722 | "integrity" "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" 723 | "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz" 724 | "version" "1.2.2" 725 | 726 | "@types/node@*", "@types/node@^12.12.3": 727 | "integrity" "sha512-opgSsy+cEF9N8MgaVPnWVtdJ3o4mV2aMHvDq7thkQUFt0EuOHJon4rQpJfhjmNHB+ikl0Cd6WhWIErOyQ+f7tw==" 728 | "resolved" "https://registry.npmjs.org/@types/node/-/node-12.12.3.tgz" 729 | "version" "12.12.3" 730 | 731 | "@types/normalize-package-data@^2.4.0": 732 | "integrity" "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" 733 | "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz" 734 | "version" "2.4.0" 735 | 736 | "@types/prettier@^2.1.5": 737 | "integrity" "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" 738 | "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz" 739 | "version" "2.6.3" 740 | 741 | "@types/stack-utils@^2.0.0": 742 | "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" 743 | "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" 744 | "version" "2.0.1" 745 | 746 | "@types/yargs-parser@*": 747 | "integrity" "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" 748 | "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz" 749 | "version" "15.0.0" 750 | 751 | "@types/yargs@^17.0.8": 752 | "integrity" "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==" 753 | "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" 754 | "version" "17.0.10" 755 | dependencies: 756 | "@types/yargs-parser" "*" 757 | 758 | "@webassemblyjs/ast@1.11.1": 759 | "integrity" "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==" 760 | "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" 761 | "version" "1.11.1" 762 | dependencies: 763 | "@webassemblyjs/helper-numbers" "1.11.1" 764 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 765 | 766 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 767 | "integrity" "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" 768 | "resolved" "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" 769 | "version" "1.11.1" 770 | 771 | "@webassemblyjs/helper-api-error@1.11.1": 772 | "integrity" "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" 773 | "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" 774 | "version" "1.11.1" 775 | 776 | "@webassemblyjs/helper-buffer@1.11.1": 777 | "integrity" "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" 778 | "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" 779 | "version" "1.11.1" 780 | 781 | "@webassemblyjs/helper-numbers@1.11.1": 782 | "integrity" "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==" 783 | "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" 784 | "version" "1.11.1" 785 | dependencies: 786 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 787 | "@webassemblyjs/helper-api-error" "1.11.1" 788 | "@xtuc/long" "4.2.2" 789 | 790 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 791 | "integrity" "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" 792 | "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" 793 | "version" "1.11.1" 794 | 795 | "@webassemblyjs/helper-wasm-section@1.11.1": 796 | "integrity" "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==" 797 | "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" 798 | "version" "1.11.1" 799 | dependencies: 800 | "@webassemblyjs/ast" "1.11.1" 801 | "@webassemblyjs/helper-buffer" "1.11.1" 802 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 803 | "@webassemblyjs/wasm-gen" "1.11.1" 804 | 805 | "@webassemblyjs/ieee754@1.11.1": 806 | "integrity" "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==" 807 | "resolved" "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" 808 | "version" "1.11.1" 809 | dependencies: 810 | "@xtuc/ieee754" "^1.2.0" 811 | 812 | "@webassemblyjs/leb128@1.11.1": 813 | "integrity" "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==" 814 | "resolved" "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" 815 | "version" "1.11.1" 816 | dependencies: 817 | "@xtuc/long" "4.2.2" 818 | 819 | "@webassemblyjs/utf8@1.11.1": 820 | "integrity" "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" 821 | "resolved" "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" 822 | "version" "1.11.1" 823 | 824 | "@webassemblyjs/wasm-edit@1.11.1": 825 | "integrity" "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==" 826 | "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" 827 | "version" "1.11.1" 828 | dependencies: 829 | "@webassemblyjs/ast" "1.11.1" 830 | "@webassemblyjs/helper-buffer" "1.11.1" 831 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 832 | "@webassemblyjs/helper-wasm-section" "1.11.1" 833 | "@webassemblyjs/wasm-gen" "1.11.1" 834 | "@webassemblyjs/wasm-opt" "1.11.1" 835 | "@webassemblyjs/wasm-parser" "1.11.1" 836 | "@webassemblyjs/wast-printer" "1.11.1" 837 | 838 | "@webassemblyjs/wasm-gen@1.11.1": 839 | "integrity" "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==" 840 | "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" 841 | "version" "1.11.1" 842 | dependencies: 843 | "@webassemblyjs/ast" "1.11.1" 844 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 845 | "@webassemblyjs/ieee754" "1.11.1" 846 | "@webassemblyjs/leb128" "1.11.1" 847 | "@webassemblyjs/utf8" "1.11.1" 848 | 849 | "@webassemblyjs/wasm-opt@1.11.1": 850 | "integrity" "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==" 851 | "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" 852 | "version" "1.11.1" 853 | dependencies: 854 | "@webassemblyjs/ast" "1.11.1" 855 | "@webassemblyjs/helper-buffer" "1.11.1" 856 | "@webassemblyjs/wasm-gen" "1.11.1" 857 | "@webassemblyjs/wasm-parser" "1.11.1" 858 | 859 | "@webassemblyjs/wasm-parser@1.11.1": 860 | "integrity" "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==" 861 | "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" 862 | "version" "1.11.1" 863 | dependencies: 864 | "@webassemblyjs/ast" "1.11.1" 865 | "@webassemblyjs/helper-api-error" "1.11.1" 866 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 867 | "@webassemblyjs/ieee754" "1.11.1" 868 | "@webassemblyjs/leb128" "1.11.1" 869 | "@webassemblyjs/utf8" "1.11.1" 870 | 871 | "@webassemblyjs/wast-printer@1.11.1": 872 | "integrity" "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==" 873 | "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" 874 | "version" "1.11.1" 875 | dependencies: 876 | "@webassemblyjs/ast" "1.11.1" 877 | "@xtuc/long" "4.2.2" 878 | 879 | "@webpack-cli/configtest@^1.1.1": 880 | "integrity" "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==" 881 | "resolved" "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz" 882 | "version" "1.1.1" 883 | 884 | "@webpack-cli/info@^1.4.1": 885 | "integrity" "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==" 886 | "resolved" "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz" 887 | "version" "1.4.1" 888 | dependencies: 889 | "envinfo" "^7.7.3" 890 | 891 | "@webpack-cli/serve@^1.6.1": 892 | "integrity" "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==" 893 | "resolved" "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz" 894 | "version" "1.6.1" 895 | 896 | "@xtuc/ieee754@^1.2.0": 897 | "integrity" "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" 898 | "resolved" "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" 899 | "version" "1.2.0" 900 | 901 | "@xtuc/long@4.2.2": 902 | "integrity" "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" 903 | "resolved" "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" 904 | "version" "4.2.2" 905 | 906 | "acorn-import-assertions@^1.7.6": 907 | "integrity" "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" 908 | "resolved" "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" 909 | "version" "1.8.0" 910 | 911 | "acorn-walk@^8.1.1": 912 | "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" 913 | "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" 914 | "version" "8.2.0" 915 | 916 | "acorn@^8", "acorn@^8.4.1", "acorn@^8.5.0": 917 | "integrity" "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" 918 | "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" 919 | "version" "8.7.1" 920 | 921 | "aggregate-error@^4.0.0": 922 | "integrity" "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==" 923 | "resolved" "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz" 924 | "version" "4.0.1" 925 | dependencies: 926 | "clean-stack" "^4.0.0" 927 | "indent-string" "^5.0.0" 928 | 929 | "ajv-keywords@^3.5.2": 930 | "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" 931 | "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" 932 | "version" "3.5.2" 933 | 934 | "ajv@^6.12.5", "ajv@^6.9.1": 935 | "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" 936 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 937 | "version" "6.12.6" 938 | dependencies: 939 | "fast-deep-equal" "^3.1.1" 940 | "fast-json-stable-stringify" "^2.0.0" 941 | "json-schema-traverse" "^0.4.1" 942 | "uri-js" "^4.2.2" 943 | 944 | "ansi-escapes@^4.2.1": 945 | "integrity" "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==" 946 | "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz" 947 | "version" "4.3.1" 948 | dependencies: 949 | "type-fest" "^0.11.0" 950 | 951 | "ansi-regex@^5.0.1": 952 | "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 953 | "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 954 | "version" "5.0.1" 955 | 956 | "ansi-styles@^3.2.1": 957 | "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" 958 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" 959 | "version" "3.2.1" 960 | dependencies: 961 | "color-convert" "^1.9.0" 962 | 963 | "ansi-styles@^4.0.0", "ansi-styles@^4.1.0": 964 | "integrity" "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==" 965 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" 966 | "version" "4.2.1" 967 | dependencies: 968 | "@types/color-name" "^1.1.1" 969 | "color-convert" "^2.0.1" 970 | 971 | "ansi-styles@^5.0.0": 972 | "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" 973 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" 974 | "version" "5.2.0" 975 | 976 | "anymatch@^3.0.3": 977 | "integrity" "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==" 978 | "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" 979 | "version" "3.1.1" 980 | dependencies: 981 | "normalize-path" "^3.0.0" 982 | "picomatch" "^2.0.4" 983 | 984 | "arg@^4.1.0": 985 | "integrity" "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==" 986 | "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz" 987 | "version" "4.1.1" 988 | 989 | "argparse@^1.0.7": 990 | "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" 991 | "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" 992 | "version" "1.0.10" 993 | dependencies: 994 | "sprintf-js" "~1.0.2" 995 | 996 | "arrify@^1.0.1": 997 | "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" 998 | "resolved" "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" 999 | "version" "1.0.1" 1000 | 1001 | "arrify@^3.0.0": 1002 | "integrity" "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==" 1003 | "resolved" "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz" 1004 | "version" "3.0.0" 1005 | 1006 | "babel-jest@^28.0.0", "babel-jest@^28.1.1": 1007 | "integrity" "sha512-MEt0263viUdAkTq5D7upHPNxvt4n9uLUGa6pPz3WviNBMtOmStb1lIXS3QobnoqM+qnH+vr4EKlvhe8QcmxIYw==" 1008 | "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.1.tgz" 1009 | "version" "28.1.1" 1010 | dependencies: 1011 | "@jest/transform" "^28.1.1" 1012 | "@types/babel__core" "^7.1.14" 1013 | "babel-plugin-istanbul" "^6.1.1" 1014 | "babel-preset-jest" "^28.1.1" 1015 | "chalk" "^4.0.0" 1016 | "graceful-fs" "^4.2.9" 1017 | "slash" "^3.0.0" 1018 | 1019 | "babel-plugin-istanbul@^6.1.1": 1020 | "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==" 1021 | "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" 1022 | "version" "6.1.1" 1023 | dependencies: 1024 | "@babel/helper-plugin-utils" "^7.0.0" 1025 | "@istanbuljs/load-nyc-config" "^1.0.0" 1026 | "@istanbuljs/schema" "^0.1.2" 1027 | "istanbul-lib-instrument" "^5.0.4" 1028 | "test-exclude" "^6.0.0" 1029 | 1030 | "babel-plugin-jest-hoist@^28.1.1": 1031 | "integrity" "sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw==" 1032 | "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz" 1033 | "version" "28.1.1" 1034 | dependencies: 1035 | "@babel/template" "^7.3.3" 1036 | "@babel/types" "^7.3.3" 1037 | "@types/babel__core" "^7.1.14" 1038 | "@types/babel__traverse" "^7.0.6" 1039 | 1040 | "babel-preset-current-node-syntax@^1.0.0": 1041 | "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" 1042 | "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" 1043 | "version" "1.0.1" 1044 | dependencies: 1045 | "@babel/plugin-syntax-async-generators" "^7.8.4" 1046 | "@babel/plugin-syntax-bigint" "^7.8.3" 1047 | "@babel/plugin-syntax-class-properties" "^7.8.3" 1048 | "@babel/plugin-syntax-import-meta" "^7.8.3" 1049 | "@babel/plugin-syntax-json-strings" "^7.8.3" 1050 | "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" 1051 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 1052 | "@babel/plugin-syntax-numeric-separator" "^7.8.3" 1053 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 1054 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 1055 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 1056 | "@babel/plugin-syntax-top-level-await" "^7.8.3" 1057 | 1058 | "babel-preset-jest@^28.1.1": 1059 | "integrity" "sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g==" 1060 | "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz" 1061 | "version" "28.1.1" 1062 | dependencies: 1063 | "babel-plugin-jest-hoist" "^28.1.1" 1064 | "babel-preset-current-node-syntax" "^1.0.0" 1065 | 1066 | "balanced-match@^1.0.0": 1067 | "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c= sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg==" 1068 | "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" 1069 | "version" "1.0.0" 1070 | 1071 | "bluebird@^3.0.6": 1072 | "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" 1073 | "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" 1074 | "version" "3.7.2" 1075 | 1076 | "brace-expansion@^1.1.7": 1077 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" 1078 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 1079 | "version" "1.1.11" 1080 | dependencies: 1081 | "balanced-match" "^1.0.0" 1082 | "concat-map" "0.0.1" 1083 | 1084 | "braces@^3.0.2": 1085 | "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" 1086 | "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" 1087 | "version" "3.0.2" 1088 | dependencies: 1089 | "fill-range" "^7.0.1" 1090 | 1091 | "browserslist@^4.14.5", "browserslist@^4.20.2": 1092 | "integrity" "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==" 1093 | "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz" 1094 | "version" "4.20.4" 1095 | dependencies: 1096 | "caniuse-lite" "^1.0.30001349" 1097 | "electron-to-chromium" "^1.4.147" 1098 | "escalade" "^3.1.1" 1099 | "node-releases" "^2.0.5" 1100 | "picocolors" "^1.0.0" 1101 | 1102 | "bs-logger@0.x": 1103 | "integrity" "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==" 1104 | "resolved" "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" 1105 | "version" "0.2.6" 1106 | dependencies: 1107 | "fast-json-stable-stringify" "2.x" 1108 | 1109 | "bser@2.1.1": 1110 | "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" 1111 | "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" 1112 | "version" "2.1.1" 1113 | dependencies: 1114 | "node-int64" "^0.4.0" 1115 | 1116 | "buffer-from@^1.0.0": 1117 | "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 1118 | "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" 1119 | "version" "1.1.1" 1120 | 1121 | "builtin-modules@^1.1.1": 1122 | "integrity" "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==" 1123 | "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" 1124 | "version" "1.1.1" 1125 | 1126 | "callsites@^3.0.0": 1127 | "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 1128 | "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 1129 | "version" "3.1.0" 1130 | 1131 | "camelcase-keys@^7.0.0": 1132 | "integrity" "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==" 1133 | "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz" 1134 | "version" "7.0.2" 1135 | dependencies: 1136 | "camelcase" "^6.3.0" 1137 | "map-obj" "^4.1.0" 1138 | "quick-lru" "^5.1.1" 1139 | "type-fest" "^1.2.1" 1140 | 1141 | "camelcase@^5.3.1": 1142 | "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 1143 | "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" 1144 | "version" "5.3.1" 1145 | 1146 | "camelcase@^6.2.0": 1147 | "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" 1148 | "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" 1149 | "version" "6.3.0" 1150 | 1151 | "camelcase@^6.3.0": 1152 | "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" 1153 | "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" 1154 | "version" "6.3.0" 1155 | 1156 | "caniuse-lite@^1.0.30001349": 1157 | "integrity" "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==" 1158 | "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz" 1159 | "version" "1.0.30001352" 1160 | 1161 | "chalk@^2.0.0": 1162 | "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" 1163 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 1164 | "version" "2.4.2" 1165 | dependencies: 1166 | "ansi-styles" "^3.2.1" 1167 | "escape-string-regexp" "^1.0.5" 1168 | "supports-color" "^5.3.0" 1169 | 1170 | "chalk@^2.3.0": 1171 | "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" 1172 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 1173 | "version" "2.4.2" 1174 | dependencies: 1175 | "ansi-styles" "^3.2.1" 1176 | "escape-string-regexp" "^1.0.5" 1177 | "supports-color" "^5.3.0" 1178 | 1179 | "chalk@^4.0.0": 1180 | "integrity" "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==" 1181 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz" 1182 | "version" "4.0.0" 1183 | dependencies: 1184 | "ansi-styles" "^4.1.0" 1185 | "supports-color" "^7.1.0" 1186 | 1187 | "chalk@^4.1.0": 1188 | "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" 1189 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 1190 | "version" "4.1.2" 1191 | dependencies: 1192 | "ansi-styles" "^4.1.0" 1193 | "supports-color" "^7.1.0" 1194 | 1195 | "char-regex@^1.0.2": 1196 | "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" 1197 | "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" 1198 | "version" "1.0.2" 1199 | 1200 | "chrome-trace-event@^1.0.2": 1201 | "integrity" "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==" 1202 | "resolved" "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz" 1203 | "version" "1.0.2" 1204 | dependencies: 1205 | "tslib" "^1.9.0" 1206 | 1207 | "ci-info@^3.2.0": 1208 | "integrity" "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==" 1209 | "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz" 1210 | "version" "3.3.1" 1211 | 1212 | "cjs-module-lexer@^1.0.0": 1213 | "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" 1214 | "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" 1215 | "version" "1.2.2" 1216 | 1217 | "clean-stack@^4.0.0": 1218 | "integrity" "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==" 1219 | "resolved" "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz" 1220 | "version" "4.2.0" 1221 | dependencies: 1222 | "escape-string-regexp" "5.0.0" 1223 | 1224 | "cliui@^7.0.2": 1225 | "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" 1226 | "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" 1227 | "version" "7.0.4" 1228 | dependencies: 1229 | "string-width" "^4.2.0" 1230 | "strip-ansi" "^6.0.0" 1231 | "wrap-ansi" "^7.0.0" 1232 | 1233 | "clone-deep@^4.0.1": 1234 | "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" 1235 | "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" 1236 | "version" "4.0.1" 1237 | dependencies: 1238 | "is-plain-object" "^2.0.4" 1239 | "kind-of" "^6.0.2" 1240 | "shallow-clone" "^3.0.0" 1241 | 1242 | "co@^4.6.0": 1243 | "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" 1244 | "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" 1245 | "version" "4.6.0" 1246 | 1247 | "collect-v8-coverage@^1.0.0": 1248 | "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" 1249 | "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" 1250 | "version" "1.0.1" 1251 | 1252 | "color-convert@^1.9.0": 1253 | "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" 1254 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" 1255 | "version" "1.9.3" 1256 | dependencies: 1257 | "color-name" "1.1.3" 1258 | 1259 | "color-convert@^2.0.1": 1260 | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" 1261 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 1262 | "version" "2.0.1" 1263 | dependencies: 1264 | "color-name" "~1.1.4" 1265 | 1266 | "color-name@~1.1.4": 1267 | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1268 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 1269 | "version" "1.1.4" 1270 | 1271 | "color-name@1.1.3": 1272 | "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1273 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" 1274 | "version" "1.1.3" 1275 | 1276 | "colorette@^2.0.14": 1277 | "integrity" "sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==" 1278 | "resolved" "https://registry.npmjs.org/colorette/-/colorette-2.0.17.tgz" 1279 | "version" "2.0.17" 1280 | 1281 | "commander@^2.12.1", "commander@^2.20.0", "commander@^2.9.0": 1282 | "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 1283 | "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" 1284 | "version" "2.20.3" 1285 | 1286 | "commander@^7.0.0": 1287 | "integrity" "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" 1288 | "resolved" "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" 1289 | "version" "7.2.0" 1290 | 1291 | "concat-map@0.0.1": 1292 | "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 1293 | "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 1294 | "version" "0.0.1" 1295 | 1296 | "convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0": 1297 | "integrity" "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==" 1298 | "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" 1299 | "version" "1.7.0" 1300 | dependencies: 1301 | "safe-buffer" "~5.1.1" 1302 | 1303 | "cp-file@^9.1.0": 1304 | "integrity" "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==" 1305 | "resolved" "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz" 1306 | "version" "9.1.0" 1307 | dependencies: 1308 | "graceful-fs" "^4.1.2" 1309 | "make-dir" "^3.0.0" 1310 | "nested-error-stacks" "^2.0.0" 1311 | "p-event" "^4.1.0" 1312 | 1313 | "cpy-cli@^4.1.0": 1314 | "integrity" "sha512-JA6bth6/mxPCa19SrWkIuPEBrea8vO9g1v0qhmCLnAKOfTcsNk5/X3W1o9aZuOHgugRcxdyR67rO4Gw/DA+4Qg==" 1315 | "resolved" "https://registry.npmjs.org/cpy-cli/-/cpy-cli-4.1.0.tgz" 1316 | "version" "4.1.0" 1317 | dependencies: 1318 | "cpy" "^9.0.0" 1319 | "meow" "^10.1.2" 1320 | 1321 | "cpy@^9.0.0": 1322 | "integrity" "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==" 1323 | "resolved" "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz" 1324 | "version" "9.0.1" 1325 | dependencies: 1326 | "arrify" "^3.0.0" 1327 | "cp-file" "^9.1.0" 1328 | "globby" "^13.1.1" 1329 | "junk" "^4.0.0" 1330 | "micromatch" "^4.0.4" 1331 | "nested-error-stacks" "^2.1.0" 1332 | "p-filter" "^3.0.0" 1333 | "p-map" "^5.3.0" 1334 | 1335 | "create-require@^1.1.0": 1336 | "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" 1337 | "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" 1338 | "version" "1.1.1" 1339 | 1340 | "cross-spawn@^7.0.3": 1341 | "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" 1342 | "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 1343 | "version" "7.0.3" 1344 | dependencies: 1345 | "path-key" "^3.1.0" 1346 | "shebang-command" "^2.0.0" 1347 | "which" "^2.0.1" 1348 | 1349 | "debug@^4.1.0", "debug@^4.1.1": 1350 | "integrity" "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" 1351 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" 1352 | "version" "4.1.1" 1353 | dependencies: 1354 | "ms" "^2.1.1" 1355 | 1356 | "decamelize-keys@^1.1.0": 1357 | "integrity" "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==" 1358 | "resolved" "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" 1359 | "version" "1.1.0" 1360 | dependencies: 1361 | "decamelize" "^1.1.0" 1362 | "map-obj" "^1.0.0" 1363 | 1364 | "decamelize@^1.1.0": 1365 | "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" 1366 | "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" 1367 | "version" "1.2.0" 1368 | 1369 | "decamelize@^5.0.0": 1370 | "integrity" "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==" 1371 | "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz" 1372 | "version" "5.0.1" 1373 | 1374 | "dedent@^0.7.0": 1375 | "integrity" "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" 1376 | "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" 1377 | "version" "0.7.0" 1378 | 1379 | "deepmerge@^4.2.2": 1380 | "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 1381 | "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" 1382 | "version" "4.2.2" 1383 | 1384 | "detect-newline@^3.0.0": 1385 | "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" 1386 | "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" 1387 | "version" "3.1.0" 1388 | 1389 | "diff-sequences@^27.5.1": 1390 | "integrity" "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" 1391 | "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" 1392 | "version" "27.5.1" 1393 | 1394 | "diff-sequences@^28.1.1": 1395 | "integrity" "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==" 1396 | "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" 1397 | "version" "28.1.1" 1398 | 1399 | "diff@^4.0.1": 1400 | "integrity" "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==" 1401 | "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz" 1402 | "version" "4.0.1" 1403 | 1404 | "dir-glob@^3.0.1": 1405 | "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" 1406 | "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" 1407 | "version" "3.0.1" 1408 | dependencies: 1409 | "path-type" "^4.0.0" 1410 | 1411 | "electron-to-chromium@^1.4.147": 1412 | "integrity" "sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg==" 1413 | "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz" 1414 | "version" "1.4.152" 1415 | 1416 | "emittery@^0.10.2": 1417 | "integrity" "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" 1418 | "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" 1419 | "version" "0.10.2" 1420 | 1421 | "emoji-regex@^8.0.0": 1422 | "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1423 | "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 1424 | "version" "8.0.0" 1425 | 1426 | "enhanced-resolve@^5.0.0", "enhanced-resolve@^5.9.3": 1427 | "integrity" "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==" 1428 | "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz" 1429 | "version" "5.9.3" 1430 | dependencies: 1431 | "graceful-fs" "^4.2.4" 1432 | "tapable" "^2.2.0" 1433 | 1434 | "envinfo@^7.7.3": 1435 | "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" 1436 | "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" 1437 | "version" "7.8.1" 1438 | 1439 | "error-ex@^1.3.1": 1440 | "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" 1441 | "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 1442 | "version" "1.3.2" 1443 | dependencies: 1444 | "is-arrayish" "^0.2.1" 1445 | 1446 | "es-module-lexer@^0.9.0": 1447 | "integrity" "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" 1448 | "resolved" "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" 1449 | "version" "0.9.3" 1450 | 1451 | "escalade@^3.1.1": 1452 | "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" 1453 | "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 1454 | "version" "3.1.1" 1455 | 1456 | "escape-string-regexp@^1.0.5": 1457 | "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 1458 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 1459 | "version" "1.0.5" 1460 | 1461 | "escape-string-regexp@^2.0.0": 1462 | "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" 1463 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" 1464 | "version" "2.0.0" 1465 | 1466 | "escape-string-regexp@5.0.0": 1467 | "integrity" "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" 1468 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" 1469 | "version" "5.0.0" 1470 | 1471 | "eslint-scope@5.1.1": 1472 | "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" 1473 | "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" 1474 | "version" "5.1.1" 1475 | dependencies: 1476 | "esrecurse" "^4.3.0" 1477 | "estraverse" "^4.1.1" 1478 | 1479 | "esprima@^4.0.0": 1480 | "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 1481 | "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" 1482 | "version" "4.0.1" 1483 | 1484 | "esrecurse@^4.3.0": 1485 | "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" 1486 | "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 1487 | "version" "4.3.0" 1488 | dependencies: 1489 | "estraverse" "^5.2.0" 1490 | 1491 | "estraverse@^4.1.1": 1492 | "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 1493 | "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" 1494 | "version" "4.3.0" 1495 | 1496 | "estraverse@^5.2.0": 1497 | "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" 1498 | "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 1499 | "version" "5.3.0" 1500 | 1501 | "events@^3.2.0": 1502 | "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" 1503 | "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" 1504 | "version" "3.3.0" 1505 | 1506 | "execa@^5.0.0": 1507 | "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" 1508 | "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" 1509 | "version" "5.1.1" 1510 | dependencies: 1511 | "cross-spawn" "^7.0.3" 1512 | "get-stream" "^6.0.0" 1513 | "human-signals" "^2.1.0" 1514 | "is-stream" "^2.0.0" 1515 | "merge-stream" "^2.0.0" 1516 | "npm-run-path" "^4.0.1" 1517 | "onetime" "^5.1.2" 1518 | "signal-exit" "^3.0.3" 1519 | "strip-final-newline" "^2.0.0" 1520 | 1521 | "executioner@^2.0.1": 1522 | "integrity" "sha512-idZAlKsxEZASjaIqP4PQ1txyS1bOcDwWCHy/8p5oMmLGV0XNCQPD6WWAOwJCUVsWItWzAN2BEash5N78PliaIw==" 1523 | "resolved" "https://registry.npmjs.org/executioner/-/executioner-2.0.1.tgz" 1524 | "version" "2.0.1" 1525 | dependencies: 1526 | "mixly" "^1.0.0" 1527 | 1528 | "exit@^0.1.2": 1529 | "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" 1530 | "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" 1531 | "version" "0.1.2" 1532 | 1533 | "expect@^28.1.1": 1534 | "integrity" "sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w==" 1535 | "resolved" "https://registry.npmjs.org/expect/-/expect-28.1.1.tgz" 1536 | "version" "28.1.1" 1537 | dependencies: 1538 | "@jest/expect-utils" "^28.1.1" 1539 | "jest-get-type" "^28.0.2" 1540 | "jest-matcher-utils" "^28.1.1" 1541 | "jest-message-util" "^28.1.1" 1542 | "jest-util" "^28.1.1" 1543 | 1544 | "fast-deep-equal@^3.1.1": 1545 | "integrity" "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" 1546 | "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz" 1547 | "version" "3.1.1" 1548 | 1549 | "fast-glob@^3.2.11": 1550 | "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==" 1551 | "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" 1552 | "version" "3.2.11" 1553 | dependencies: 1554 | "@nodelib/fs.stat" "^2.0.2" 1555 | "@nodelib/fs.walk" "^1.2.3" 1556 | "glob-parent" "^5.1.2" 1557 | "merge2" "^1.3.0" 1558 | "micromatch" "^4.0.4" 1559 | 1560 | "fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@2.x": 1561 | "integrity" "sha1-1RQsDK7msRifh9OnYREGT4bIu/I= sha512-eIgZvM9C3P05kg0qxfqaVU6Tma4QedCPIByQOcemV0vju8ot3cS2DpHi4m2G2JvbSMI152rjfLX0p1pkSdyPlQ==" 1562 | "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" 1563 | "version" "2.0.0" 1564 | 1565 | "fastest-levenshtein@^1.0.12": 1566 | "integrity" "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" 1567 | "resolved" "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" 1568 | "version" "1.0.12" 1569 | 1570 | "fastq@^1.6.0": 1571 | "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" 1572 | "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" 1573 | "version" "1.13.0" 1574 | dependencies: 1575 | "reusify" "^1.0.4" 1576 | 1577 | "fb-watchman@^2.0.0": 1578 | "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" 1579 | "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" 1580 | "version" "2.0.1" 1581 | dependencies: 1582 | "bser" "2.1.1" 1583 | 1584 | "fill-range@^7.0.1": 1585 | "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" 1586 | "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" 1587 | "version" "7.0.1" 1588 | dependencies: 1589 | "to-regex-range" "^5.0.1" 1590 | 1591 | "find-up@^4.0.0", "find-up@^4.1.0": 1592 | "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" 1593 | "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 1594 | "version" "4.1.0" 1595 | dependencies: 1596 | "locate-path" "^5.0.0" 1597 | "path-exists" "^4.0.0" 1598 | 1599 | "find-up@^5.0.0": 1600 | "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" 1601 | "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 1602 | "version" "5.0.0" 1603 | dependencies: 1604 | "locate-path" "^6.0.0" 1605 | "path-exists" "^4.0.0" 1606 | 1607 | "fs.realpath@^1.0.0": 1608 | "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 1609 | "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 1610 | "version" "1.0.0" 1611 | 1612 | "fsevents@^2.3.2": 1613 | "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" 1614 | "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" 1615 | "version" "2.3.2" 1616 | 1617 | "fulcon@^1.0.1": 1618 | "integrity" "sha512-vYwUBqbdo9XK0NmN7cFmURmy2T1YHpEsTCbxGO3aErxx6a0Z/HkWXcqcPkk7yOuJ74mSAHGWGBSBBd6v3GKebA==" 1619 | "resolved" "https://registry.npmjs.org/fulcon/-/fulcon-1.0.2.tgz" 1620 | "version" "1.0.2" 1621 | 1622 | "function-bind@^1.1.1": 1623 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1624 | "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 1625 | "version" "1.1.1" 1626 | 1627 | "generate-changelog@^1.8.0": 1628 | "integrity" "sha512-msgpxeB75Ziyg3wGsZuPNl7c5RxChMKmYcAX5obnhUow90dBZW3nLic6nxGtst7Bpx453oS6zAIHcX7F3QVasw==" 1629 | "resolved" "https://registry.npmjs.org/generate-changelog/-/generate-changelog-1.8.0.tgz" 1630 | "version" "1.8.0" 1631 | dependencies: 1632 | "bluebird" "^3.0.6" 1633 | "commander" "^2.9.0" 1634 | "github-url-from-git" "^1.4.0" 1635 | 1636 | "gensync@^1.0.0-beta.2": 1637 | "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" 1638 | "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" 1639 | "version" "1.0.0-beta.2" 1640 | 1641 | "get-caller-file@^2.0.5": 1642 | "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 1643 | "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 1644 | "version" "2.0.5" 1645 | 1646 | "get-stream@^6.0.0": 1647 | "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" 1648 | "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" 1649 | "version" "6.0.1" 1650 | 1651 | "github-url-from-git@^1.4.0": 1652 | "integrity" "sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==" 1653 | "resolved" "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz" 1654 | "version" "1.5.0" 1655 | 1656 | "glob-parent@^5.1.2": 1657 | "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" 1658 | "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 1659 | "version" "5.1.2" 1660 | dependencies: 1661 | "is-glob" "^4.0.1" 1662 | 1663 | "glob-to-regexp@^0.4.1": 1664 | "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" 1665 | "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" 1666 | "version" "0.4.1" 1667 | 1668 | "glob@^7.1.1", "glob@^7.1.3", "glob@^7.1.4": 1669 | "integrity" "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==" 1670 | "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz" 1671 | "version" "7.1.5" 1672 | dependencies: 1673 | "fs.realpath" "^1.0.0" 1674 | "inflight" "^1.0.4" 1675 | "inherits" "2" 1676 | "minimatch" "^3.0.4" 1677 | "once" "^1.3.0" 1678 | "path-is-absolute" "^1.0.0" 1679 | 1680 | "globals@^11.1.0": 1681 | "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" 1682 | "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" 1683 | "version" "11.12.0" 1684 | 1685 | "globby@^13.1.1": 1686 | "integrity" "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==" 1687 | "resolved" "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz" 1688 | "version" "13.1.1" 1689 | dependencies: 1690 | "dir-glob" "^3.0.1" 1691 | "fast-glob" "^3.2.11" 1692 | "ignore" "^5.2.0" 1693 | "merge2" "^1.4.1" 1694 | "slash" "^4.0.0" 1695 | 1696 | "graceful-fs@^4.1.2", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9": 1697 | "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" 1698 | "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" 1699 | "version" "4.2.10" 1700 | 1701 | "hard-rejection@^2.1.0": 1702 | "integrity" "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" 1703 | "resolved" "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" 1704 | "version" "2.1.0" 1705 | 1706 | "has-flag@^3.0.0": 1707 | "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 1708 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 1709 | "version" "3.0.0" 1710 | 1711 | "has-flag@^4.0.0": 1712 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 1713 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 1714 | "version" "4.0.0" 1715 | 1716 | "has@^1.0.3": 1717 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" 1718 | "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 1719 | "version" "1.0.3" 1720 | dependencies: 1721 | "function-bind" "^1.1.1" 1722 | 1723 | "hosted-git-info@^4.0.1": 1724 | "integrity" "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==" 1725 | "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" 1726 | "version" "4.1.0" 1727 | dependencies: 1728 | "lru-cache" "^6.0.0" 1729 | 1730 | "html-escaper@^2.0.0": 1731 | "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" 1732 | "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" 1733 | "version" "2.0.2" 1734 | 1735 | "human-signals@^2.1.0": 1736 | "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" 1737 | "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" 1738 | "version" "2.1.0" 1739 | 1740 | "ignore@^5.2.0": 1741 | "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" 1742 | "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" 1743 | "version" "5.2.0" 1744 | 1745 | "import-local@^3.0.2": 1746 | "integrity" "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==" 1747 | "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz" 1748 | "version" "3.0.2" 1749 | dependencies: 1750 | "pkg-dir" "^4.2.0" 1751 | "resolve-cwd" "^3.0.0" 1752 | 1753 | "imurmurhash@^0.1.4": 1754 | "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" 1755 | "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 1756 | "version" "0.1.4" 1757 | 1758 | "indent-string@^5.0.0": 1759 | "integrity" "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" 1760 | "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz" 1761 | "version" "5.0.0" 1762 | 1763 | "inflight@^1.0.4": 1764 | "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" 1765 | "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 1766 | "version" "1.0.6" 1767 | dependencies: 1768 | "once" "^1.3.0" 1769 | "wrappy" "1" 1770 | 1771 | "inherits@2": 1772 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1773 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 1774 | "version" "2.0.4" 1775 | 1776 | "install-peers@^1.0.4": 1777 | "integrity" "sha512-0POFG2zRn/rt0uO1tUekCDhq6t6l3HDjxR42+Hcbjmj75Gv4yuqEfMe63HC76piO1lsctAp/cQW+Ny+i/SxTlg==" 1778 | "resolved" "https://registry.npmjs.org/install-peers/-/install-peers-1.0.4.tgz" 1779 | "version" "1.0.4" 1780 | dependencies: 1781 | "executioner" "^2.0.1" 1782 | 1783 | "interpret@^2.2.0": 1784 | "integrity" "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" 1785 | "resolved" "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" 1786 | "version" "2.2.0" 1787 | 1788 | "is-arrayish@^0.2.1": 1789 | "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 1790 | "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 1791 | "version" "0.2.1" 1792 | 1793 | "is-core-module@^2.5.0", "is-core-module@^2.8.1": 1794 | "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==" 1795 | "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" 1796 | "version" "2.9.0" 1797 | dependencies: 1798 | "has" "^1.0.3" 1799 | 1800 | "is-extglob@^2.1.1": 1801 | "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 1802 | "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 1803 | "version" "2.1.1" 1804 | 1805 | "is-fullwidth-code-point@^3.0.0": 1806 | "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1807 | "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 1808 | "version" "3.0.0" 1809 | 1810 | "is-generator-fn@^2.0.0": 1811 | "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" 1812 | "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" 1813 | "version" "2.1.0" 1814 | 1815 | "is-glob@^4.0.1": 1816 | "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" 1817 | "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 1818 | "version" "4.0.3" 1819 | dependencies: 1820 | "is-extglob" "^2.1.1" 1821 | 1822 | "is-number@^7.0.0": 1823 | "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 1824 | "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 1825 | "version" "7.0.0" 1826 | 1827 | "is-plain-obj@^1.1.0": 1828 | "integrity" "sha1-caUMhCnfync8kqOQpKA7OfzVHT4= sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" 1829 | "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" 1830 | "version" "1.1.0" 1831 | 1832 | "is-plain-object@^2.0.4": 1833 | "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" 1834 | "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" 1835 | "version" "2.0.4" 1836 | dependencies: 1837 | "isobject" "^3.0.1" 1838 | 1839 | "is-stream@^2.0.0": 1840 | "integrity" "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" 1841 | "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" 1842 | "version" "2.0.0" 1843 | 1844 | "isexe@^2.0.0": 1845 | "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 1846 | "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 1847 | "version" "2.0.0" 1848 | 1849 | "isobject@^3.0.1": 1850 | "integrity" "sha1-TkMekrEalzFjaqH5yNHMvP2reN8= sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" 1851 | "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" 1852 | "version" "3.0.1" 1853 | 1854 | "istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": 1855 | "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" 1856 | "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" 1857 | "version" "3.2.0" 1858 | 1859 | "istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0": 1860 | "integrity" "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==" 1861 | "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" 1862 | "version" "5.2.0" 1863 | dependencies: 1864 | "@babel/core" "^7.12.3" 1865 | "@babel/parser" "^7.14.7" 1866 | "@istanbuljs/schema" "^0.1.2" 1867 | "istanbul-lib-coverage" "^3.2.0" 1868 | "semver" "^6.3.0" 1869 | 1870 | "istanbul-lib-report@^3.0.0": 1871 | "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" 1872 | "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 1873 | "version" "3.0.0" 1874 | dependencies: 1875 | "istanbul-lib-coverage" "^3.0.0" 1876 | "make-dir" "^3.0.0" 1877 | "supports-color" "^7.1.0" 1878 | 1879 | "istanbul-lib-source-maps@^4.0.0": 1880 | "integrity" "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==" 1881 | "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" 1882 | "version" "4.0.0" 1883 | dependencies: 1884 | "debug" "^4.1.1" 1885 | "istanbul-lib-coverage" "^3.0.0" 1886 | "source-map" "^0.6.1" 1887 | 1888 | "istanbul-reports@^3.1.3": 1889 | "integrity" "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==" 1890 | "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" 1891 | "version" "3.1.4" 1892 | dependencies: 1893 | "html-escaper" "^2.0.0" 1894 | "istanbul-lib-report" "^3.0.0" 1895 | 1896 | "jest-changed-files@^28.0.2": 1897 | "integrity" "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==" 1898 | "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz" 1899 | "version" "28.0.2" 1900 | dependencies: 1901 | "execa" "^5.0.0" 1902 | "throat" "^6.0.1" 1903 | 1904 | "jest-circus@^28.1.1": 1905 | "integrity" "sha512-75+BBVTsL4+p2w198DQpCeyh1RdaS2lhEG87HkaFX/UG0gJExVq2skG2pT7XZEGBubNj2CytcWSPan4QEPNosw==" 1906 | "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.1.tgz" 1907 | "version" "28.1.1" 1908 | dependencies: 1909 | "@jest/environment" "^28.1.1" 1910 | "@jest/expect" "^28.1.1" 1911 | "@jest/test-result" "^28.1.1" 1912 | "@jest/types" "^28.1.1" 1913 | "@types/node" "*" 1914 | "chalk" "^4.0.0" 1915 | "co" "^4.6.0" 1916 | "dedent" "^0.7.0" 1917 | "is-generator-fn" "^2.0.0" 1918 | "jest-each" "^28.1.1" 1919 | "jest-matcher-utils" "^28.1.1" 1920 | "jest-message-util" "^28.1.1" 1921 | "jest-runtime" "^28.1.1" 1922 | "jest-snapshot" "^28.1.1" 1923 | "jest-util" "^28.1.1" 1924 | "pretty-format" "^28.1.1" 1925 | "slash" "^3.0.0" 1926 | "stack-utils" "^2.0.3" 1927 | "throat" "^6.0.1" 1928 | 1929 | "jest-cli@^28.1.1": 1930 | "integrity" "sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ==" 1931 | "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.1.tgz" 1932 | "version" "28.1.1" 1933 | dependencies: 1934 | "@jest/core" "^28.1.1" 1935 | "@jest/test-result" "^28.1.1" 1936 | "@jest/types" "^28.1.1" 1937 | "chalk" "^4.0.0" 1938 | "exit" "^0.1.2" 1939 | "graceful-fs" "^4.2.9" 1940 | "import-local" "^3.0.2" 1941 | "jest-config" "^28.1.1" 1942 | "jest-util" "^28.1.1" 1943 | "jest-validate" "^28.1.1" 1944 | "prompts" "^2.0.1" 1945 | "yargs" "^17.3.1" 1946 | 1947 | "jest-config@^28.1.1": 1948 | "integrity" "sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA==" 1949 | "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-28.1.1.tgz" 1950 | "version" "28.1.1" 1951 | dependencies: 1952 | "@babel/core" "^7.11.6" 1953 | "@jest/test-sequencer" "^28.1.1" 1954 | "@jest/types" "^28.1.1" 1955 | "babel-jest" "^28.1.1" 1956 | "chalk" "^4.0.0" 1957 | "ci-info" "^3.2.0" 1958 | "deepmerge" "^4.2.2" 1959 | "glob" "^7.1.3" 1960 | "graceful-fs" "^4.2.9" 1961 | "jest-circus" "^28.1.1" 1962 | "jest-environment-node" "^28.1.1" 1963 | "jest-get-type" "^28.0.2" 1964 | "jest-regex-util" "^28.0.2" 1965 | "jest-resolve" "^28.1.1" 1966 | "jest-runner" "^28.1.1" 1967 | "jest-util" "^28.1.1" 1968 | "jest-validate" "^28.1.1" 1969 | "micromatch" "^4.0.4" 1970 | "parse-json" "^5.2.0" 1971 | "pretty-format" "^28.1.1" 1972 | "slash" "^3.0.0" 1973 | "strip-json-comments" "^3.1.1" 1974 | 1975 | "jest-diff@^27.5.1": 1976 | "integrity" "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==" 1977 | "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" 1978 | "version" "27.5.1" 1979 | dependencies: 1980 | "chalk" "^4.0.0" 1981 | "diff-sequences" "^27.5.1" 1982 | "jest-get-type" "^27.5.1" 1983 | "pretty-format" "^27.5.1" 1984 | 1985 | "jest-diff@^28.1.1": 1986 | "integrity" "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==" 1987 | "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz" 1988 | "version" "28.1.1" 1989 | dependencies: 1990 | "chalk" "^4.0.0" 1991 | "diff-sequences" "^28.1.1" 1992 | "jest-get-type" "^28.0.2" 1993 | "pretty-format" "^28.1.1" 1994 | 1995 | "jest-docblock@^28.1.1": 1996 | "integrity" "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==" 1997 | "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" 1998 | "version" "28.1.1" 1999 | dependencies: 2000 | "detect-newline" "^3.0.0" 2001 | 2002 | "jest-each@^28.1.1": 2003 | "integrity" "sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw==" 2004 | "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-28.1.1.tgz" 2005 | "version" "28.1.1" 2006 | dependencies: 2007 | "@jest/types" "^28.1.1" 2008 | "chalk" "^4.0.0" 2009 | "jest-get-type" "^28.0.2" 2010 | "jest-util" "^28.1.1" 2011 | "pretty-format" "^28.1.1" 2012 | 2013 | "jest-environment-node@^28.1.1": 2014 | "integrity" "sha512-2aV/eeY/WNgUUJrrkDJ3cFEigjC5fqT1+fCclrY6paqJ5zVPoM//sHmfgUUp7WLYxIdbPwMiVIzejpN56MxnNA==" 2015 | "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.1.tgz" 2016 | "version" "28.1.1" 2017 | dependencies: 2018 | "@jest/environment" "^28.1.1" 2019 | "@jest/fake-timers" "^28.1.1" 2020 | "@jest/types" "^28.1.1" 2021 | "@types/node" "*" 2022 | "jest-mock" "^28.1.1" 2023 | "jest-util" "^28.1.1" 2024 | 2025 | "jest-get-type@^27.5.1": 2026 | "integrity" "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" 2027 | "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" 2028 | "version" "27.5.1" 2029 | 2030 | "jest-get-type@^28.0.2": 2031 | "integrity" "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==" 2032 | "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" 2033 | "version" "28.0.2" 2034 | 2035 | "jest-haste-map@^28.1.1": 2036 | "integrity" "sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ==" 2037 | "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.1.tgz" 2038 | "version" "28.1.1" 2039 | dependencies: 2040 | "@jest/types" "^28.1.1" 2041 | "@types/graceful-fs" "^4.1.3" 2042 | "@types/node" "*" 2043 | "anymatch" "^3.0.3" 2044 | "fb-watchman" "^2.0.0" 2045 | "graceful-fs" "^4.2.9" 2046 | "jest-regex-util" "^28.0.2" 2047 | "jest-util" "^28.1.1" 2048 | "jest-worker" "^28.1.1" 2049 | "micromatch" "^4.0.4" 2050 | "walker" "^1.0.8" 2051 | optionalDependencies: 2052 | "fsevents" "^2.3.2" 2053 | 2054 | "jest-leak-detector@^28.1.1": 2055 | "integrity" "sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw==" 2056 | "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz" 2057 | "version" "28.1.1" 2058 | dependencies: 2059 | "jest-get-type" "^28.0.2" 2060 | "pretty-format" "^28.1.1" 2061 | 2062 | "jest-matcher-utils@^27.0.0": 2063 | "integrity" "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==" 2064 | "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" 2065 | "version" "27.5.1" 2066 | dependencies: 2067 | "chalk" "^4.0.0" 2068 | "jest-diff" "^27.5.1" 2069 | "jest-get-type" "^27.5.1" 2070 | "pretty-format" "^27.5.1" 2071 | 2072 | "jest-matcher-utils@^28.1.1": 2073 | "integrity" "sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==" 2074 | "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz" 2075 | "version" "28.1.1" 2076 | dependencies: 2077 | "chalk" "^4.0.0" 2078 | "jest-diff" "^28.1.1" 2079 | "jest-get-type" "^28.0.2" 2080 | "pretty-format" "^28.1.1" 2081 | 2082 | "jest-message-util@^28.1.1": 2083 | "integrity" "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==" 2084 | "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz" 2085 | "version" "28.1.1" 2086 | dependencies: 2087 | "@babel/code-frame" "^7.12.13" 2088 | "@jest/types" "^28.1.1" 2089 | "@types/stack-utils" "^2.0.0" 2090 | "chalk" "^4.0.0" 2091 | "graceful-fs" "^4.2.9" 2092 | "micromatch" "^4.0.4" 2093 | "pretty-format" "^28.1.1" 2094 | "slash" "^3.0.0" 2095 | "stack-utils" "^2.0.3" 2096 | 2097 | "jest-mock@^28.1.1": 2098 | "integrity" "sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw==" 2099 | "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.1.tgz" 2100 | "version" "28.1.1" 2101 | dependencies: 2102 | "@jest/types" "^28.1.1" 2103 | "@types/node" "*" 2104 | 2105 | "jest-pnp-resolver@^1.2.2": 2106 | "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" 2107 | "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" 2108 | "version" "1.2.2" 2109 | 2110 | "jest-regex-util@^28.0.2": 2111 | "integrity" "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" 2112 | "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" 2113 | "version" "28.0.2" 2114 | 2115 | "jest-resolve-dependencies@^28.1.1": 2116 | "integrity" "sha512-p8Y150xYJth4EXhOuB8FzmS9r8IGLEioiaetgdNGb9VHka4fl0zqWlVe4v7mSkYOuEUg2uB61iE+zySDgrOmgQ==" 2117 | "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.1.tgz" 2118 | "version" "28.1.1" 2119 | dependencies: 2120 | "jest-regex-util" "^28.0.2" 2121 | "jest-snapshot" "^28.1.1" 2122 | 2123 | "jest-resolve@*", "jest-resolve@^28.1.1": 2124 | "integrity" "sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA==" 2125 | "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.1.tgz" 2126 | "version" "28.1.1" 2127 | dependencies: 2128 | "chalk" "^4.0.0" 2129 | "graceful-fs" "^4.2.9" 2130 | "jest-haste-map" "^28.1.1" 2131 | "jest-pnp-resolver" "^1.2.2" 2132 | "jest-util" "^28.1.1" 2133 | "jest-validate" "^28.1.1" 2134 | "resolve" "^1.20.0" 2135 | "resolve.exports" "^1.1.0" 2136 | "slash" "^3.0.0" 2137 | 2138 | "jest-runner@^28.1.1": 2139 | "integrity" "sha512-W5oFUiDBgTsCloTAj6q95wEvYDB0pxIhY6bc5F26OucnwBN+K58xGTGbliSMI4ChQal5eANDF+xvELaYkJxTmA==" 2140 | "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.1.tgz" 2141 | "version" "28.1.1" 2142 | dependencies: 2143 | "@jest/console" "^28.1.1" 2144 | "@jest/environment" "^28.1.1" 2145 | "@jest/test-result" "^28.1.1" 2146 | "@jest/transform" "^28.1.1" 2147 | "@jest/types" "^28.1.1" 2148 | "@types/node" "*" 2149 | "chalk" "^4.0.0" 2150 | "emittery" "^0.10.2" 2151 | "graceful-fs" "^4.2.9" 2152 | "jest-docblock" "^28.1.1" 2153 | "jest-environment-node" "^28.1.1" 2154 | "jest-haste-map" "^28.1.1" 2155 | "jest-leak-detector" "^28.1.1" 2156 | "jest-message-util" "^28.1.1" 2157 | "jest-resolve" "^28.1.1" 2158 | "jest-runtime" "^28.1.1" 2159 | "jest-util" "^28.1.1" 2160 | "jest-watcher" "^28.1.1" 2161 | "jest-worker" "^28.1.1" 2162 | "source-map-support" "0.5.13" 2163 | "throat" "^6.0.1" 2164 | 2165 | "jest-runtime@^28.1.1": 2166 | "integrity" "sha512-J89qEJWW0leOsqyi0D9zHpFEYHwwafFdS9xgvhFHtIdRghbadodI0eA+DrthK/1PebBv3Px8mFSMGKrtaVnleg==" 2167 | "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.1.tgz" 2168 | "version" "28.1.1" 2169 | dependencies: 2170 | "@jest/environment" "^28.1.1" 2171 | "@jest/fake-timers" "^28.1.1" 2172 | "@jest/globals" "^28.1.1" 2173 | "@jest/source-map" "^28.0.2" 2174 | "@jest/test-result" "^28.1.1" 2175 | "@jest/transform" "^28.1.1" 2176 | "@jest/types" "^28.1.1" 2177 | "chalk" "^4.0.0" 2178 | "cjs-module-lexer" "^1.0.0" 2179 | "collect-v8-coverage" "^1.0.0" 2180 | "execa" "^5.0.0" 2181 | "glob" "^7.1.3" 2182 | "graceful-fs" "^4.2.9" 2183 | "jest-haste-map" "^28.1.1" 2184 | "jest-message-util" "^28.1.1" 2185 | "jest-mock" "^28.1.1" 2186 | "jest-regex-util" "^28.0.2" 2187 | "jest-resolve" "^28.1.1" 2188 | "jest-snapshot" "^28.1.1" 2189 | "jest-util" "^28.1.1" 2190 | "slash" "^3.0.0" 2191 | "strip-bom" "^4.0.0" 2192 | 2193 | "jest-snapshot@^28.1.1": 2194 | "integrity" "sha512-1KjqHJ98adRcbIdMizjF5DipwZFbvxym/kFO4g4fVZCZRxH/dqV8TiBFCa6rqic3p0karsy8RWS1y4E07b7P0A==" 2195 | "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.1.tgz" 2196 | "version" "28.1.1" 2197 | dependencies: 2198 | "@babel/core" "^7.11.6" 2199 | "@babel/generator" "^7.7.2" 2200 | "@babel/plugin-syntax-typescript" "^7.7.2" 2201 | "@babel/traverse" "^7.7.2" 2202 | "@babel/types" "^7.3.3" 2203 | "@jest/expect-utils" "^28.1.1" 2204 | "@jest/transform" "^28.1.1" 2205 | "@jest/types" "^28.1.1" 2206 | "@types/babel__traverse" "^7.0.6" 2207 | "@types/prettier" "^2.1.5" 2208 | "babel-preset-current-node-syntax" "^1.0.0" 2209 | "chalk" "^4.0.0" 2210 | "expect" "^28.1.1" 2211 | "graceful-fs" "^4.2.9" 2212 | "jest-diff" "^28.1.1" 2213 | "jest-get-type" "^28.0.2" 2214 | "jest-haste-map" "^28.1.1" 2215 | "jest-matcher-utils" "^28.1.1" 2216 | "jest-message-util" "^28.1.1" 2217 | "jest-util" "^28.1.1" 2218 | "natural-compare" "^1.4.0" 2219 | "pretty-format" "^28.1.1" 2220 | "semver" "^7.3.5" 2221 | 2222 | "jest-util@^28.0.0", "jest-util@^28.1.1": 2223 | "integrity" "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==" 2224 | "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz" 2225 | "version" "28.1.1" 2226 | dependencies: 2227 | "@jest/types" "^28.1.1" 2228 | "@types/node" "*" 2229 | "chalk" "^4.0.0" 2230 | "ci-info" "^3.2.0" 2231 | "graceful-fs" "^4.2.9" 2232 | "picomatch" "^2.2.3" 2233 | 2234 | "jest-validate@^28.1.1": 2235 | "integrity" "sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug==" 2236 | "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.1.tgz" 2237 | "version" "28.1.1" 2238 | dependencies: 2239 | "@jest/types" "^28.1.1" 2240 | "camelcase" "^6.2.0" 2241 | "chalk" "^4.0.0" 2242 | "jest-get-type" "^28.0.2" 2243 | "leven" "^3.1.0" 2244 | "pretty-format" "^28.1.1" 2245 | 2246 | "jest-watcher@^28.1.1": 2247 | "integrity" "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==" 2248 | "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz" 2249 | "version" "28.1.1" 2250 | dependencies: 2251 | "@jest/test-result" "^28.1.1" 2252 | "@jest/types" "^28.1.1" 2253 | "@types/node" "*" 2254 | "ansi-escapes" "^4.2.1" 2255 | "chalk" "^4.0.0" 2256 | "emittery" "^0.10.2" 2257 | "jest-util" "^28.1.1" 2258 | "string-length" "^4.0.1" 2259 | 2260 | "jest-worker@^27.4.5": 2261 | "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" 2262 | "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" 2263 | "version" "27.5.1" 2264 | dependencies: 2265 | "@types/node" "*" 2266 | "merge-stream" "^2.0.0" 2267 | "supports-color" "^8.0.0" 2268 | 2269 | "jest-worker@^28.1.1": 2270 | "integrity" "sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ==" 2271 | "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.1.tgz" 2272 | "version" "28.1.1" 2273 | dependencies: 2274 | "@types/node" "*" 2275 | "merge-stream" "^2.0.0" 2276 | "supports-color" "^8.0.0" 2277 | 2278 | "jest@^28.0.0", "jest@^28.1.0": 2279 | "integrity" "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==" 2280 | "resolved" "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz" 2281 | "version" "28.1.1" 2282 | dependencies: 2283 | "@jest/core" "^28.1.1" 2284 | "@jest/types" "^28.1.1" 2285 | "import-local" "^3.0.2" 2286 | "jest-cli" "^28.1.1" 2287 | 2288 | "js-tokens@^4.0.0": 2289 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2290 | "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 2291 | "version" "4.0.0" 2292 | 2293 | "js-yaml@^3.13.1": 2294 | "integrity" "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" 2295 | "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" 2296 | "version" "3.13.1" 2297 | dependencies: 2298 | "argparse" "^1.0.7" 2299 | "esprima" "^4.0.0" 2300 | 2301 | "jsesc@^2.5.1": 2302 | "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" 2303 | "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" 2304 | "version" "2.5.2" 2305 | 2306 | "json-parse-even-better-errors@^2.3.0", "json-parse-even-better-errors@^2.3.1": 2307 | "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 2308 | "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" 2309 | "version" "2.3.1" 2310 | 2311 | "json-schema-traverse@^0.4.1": 2312 | "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 2313 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 2314 | "version" "0.4.1" 2315 | 2316 | "json5@^2.2.1": 2317 | "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" 2318 | "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" 2319 | "version" "2.2.1" 2320 | 2321 | "junk@^4.0.0": 2322 | "integrity" "sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w==" 2323 | "resolved" "https://registry.npmjs.org/junk/-/junk-4.0.0.tgz" 2324 | "version" "4.0.0" 2325 | 2326 | "kind-of@^6.0.2", "kind-of@^6.0.3": 2327 | "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" 2328 | "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" 2329 | "version" "6.0.3" 2330 | 2331 | "kleur@^3.0.3": 2332 | "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" 2333 | "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" 2334 | "version" "3.0.3" 2335 | 2336 | "leven@^3.1.0": 2337 | "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" 2338 | "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" 2339 | "version" "3.1.0" 2340 | 2341 | "lines-and-columns@^1.1.6": 2342 | "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ==" 2343 | "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" 2344 | "version" "1.1.6" 2345 | 2346 | "loader-runner@^4.2.0": 2347 | "integrity" "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" 2348 | "resolved" "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" 2349 | "version" "4.3.0" 2350 | 2351 | "locate-path@^5.0.0": 2352 | "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" 2353 | "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 2354 | "version" "5.0.0" 2355 | dependencies: 2356 | "p-locate" "^4.1.0" 2357 | 2358 | "locate-path@^6.0.0": 2359 | "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" 2360 | "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 2361 | "version" "6.0.0" 2362 | dependencies: 2363 | "p-locate" "^5.0.0" 2364 | 2365 | "lodash.memoize@4.x": 2366 | "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" 2367 | "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" 2368 | "version" "4.1.2" 2369 | 2370 | "lru-cache@^6.0.0": 2371 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" 2372 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 2373 | "version" "6.0.0" 2374 | dependencies: 2375 | "yallist" "^4.0.0" 2376 | 2377 | "make-dir@^3.0.0": 2378 | "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" 2379 | "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" 2380 | "version" "3.1.0" 2381 | dependencies: 2382 | "semver" "^6.0.0" 2383 | 2384 | "make-error@^1.1.1", "make-error@1.x": 2385 | "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" 2386 | "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" 2387 | "version" "1.3.6" 2388 | 2389 | "makeerror@1.0.12": 2390 | "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" 2391 | "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" 2392 | "version" "1.0.12" 2393 | dependencies: 2394 | "tmpl" "1.0.5" 2395 | 2396 | "map-obj@^1.0.0": 2397 | "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==" 2398 | "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" 2399 | "version" "1.0.1" 2400 | 2401 | "map-obj@^4.1.0": 2402 | "integrity" "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" 2403 | "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" 2404 | "version" "4.3.0" 2405 | 2406 | "meow@^10.1.2": 2407 | "integrity" "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==" 2408 | "resolved" "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz" 2409 | "version" "10.1.2" 2410 | dependencies: 2411 | "@types/minimist" "^1.2.2" 2412 | "camelcase-keys" "^7.0.0" 2413 | "decamelize" "^5.0.0" 2414 | "decamelize-keys" "^1.1.0" 2415 | "hard-rejection" "^2.1.0" 2416 | "minimist-options" "4.1.0" 2417 | "normalize-package-data" "^3.0.2" 2418 | "read-pkg-up" "^8.0.0" 2419 | "redent" "^4.0.0" 2420 | "trim-newlines" "^4.0.2" 2421 | "type-fest" "^1.2.2" 2422 | "yargs-parser" "^20.2.9" 2423 | 2424 | "merge-stream@^2.0.0": 2425 | "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 2426 | "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" 2427 | "version" "2.0.0" 2428 | 2429 | "merge2@^1.3.0", "merge2@^1.4.1": 2430 | "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 2431 | "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" 2432 | "version" "1.4.1" 2433 | 2434 | "micromatch@^4.0.0", "micromatch@^4.0.4": 2435 | "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" 2436 | "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" 2437 | "version" "4.0.5" 2438 | dependencies: 2439 | "braces" "^3.0.2" 2440 | "picomatch" "^2.3.1" 2441 | 2442 | "mime-db@1.52.0": 2443 | "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 2444 | "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 2445 | "version" "1.52.0" 2446 | 2447 | "mime-types@^2.1.27": 2448 | "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" 2449 | "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 2450 | "version" "2.1.35" 2451 | dependencies: 2452 | "mime-db" "1.52.0" 2453 | 2454 | "mimic-fn@^2.1.0": 2455 | "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 2456 | "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" 2457 | "version" "2.1.0" 2458 | 2459 | "min-indent@^1.0.1": 2460 | "integrity" "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" 2461 | "resolved" "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" 2462 | "version" "1.0.1" 2463 | 2464 | "minimatch@^3.0.4": 2465 | "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" 2466 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" 2467 | "version" "3.0.4" 2468 | dependencies: 2469 | "brace-expansion" "^1.1.7" 2470 | 2471 | "minimist-options@4.1.0": 2472 | "integrity" "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==" 2473 | "resolved" "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" 2474 | "version" "4.1.0" 2475 | dependencies: 2476 | "arrify" "^1.0.1" 2477 | "is-plain-obj" "^1.1.0" 2478 | "kind-of" "^6.0.3" 2479 | 2480 | "minimist@^1.2.6": 2481 | "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" 2482 | "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" 2483 | "version" "1.2.6" 2484 | 2485 | "mixly@^1.0.0": 2486 | "integrity" "sha512-ks+xIMVeIDwuYK4LnOMXTfmiEI8oo3tFNFirpHd60C4r2H0wMwKN5/qHCrFBKFK+BYx2Gp7qs+evUJw7QO9D2w==" 2487 | "resolved" "https://registry.npmjs.org/mixly/-/mixly-1.0.0.tgz" 2488 | "version" "1.0.0" 2489 | dependencies: 2490 | "fulcon" "^1.0.1" 2491 | 2492 | "mkdirp@^0.5.3": 2493 | "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" 2494 | "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" 2495 | "version" "0.5.6" 2496 | dependencies: 2497 | "minimist" "^1.2.6" 2498 | 2499 | "mkdirp@^1.0.4": 2500 | "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 2501 | "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" 2502 | "version" "1.0.4" 2503 | 2504 | "ms@^2.1.1": 2505 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 2506 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 2507 | "version" "2.1.2" 2508 | 2509 | "natural-compare@^1.4.0": 2510 | "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" 2511 | "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 2512 | "version" "1.4.0" 2513 | 2514 | "neo-async@^2.6.2": 2515 | "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" 2516 | "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" 2517 | "version" "2.6.2" 2518 | 2519 | "nested-error-stacks@^2.0.0", "nested-error-stacks@^2.1.0": 2520 | "integrity" "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" 2521 | "resolved" "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz" 2522 | "version" "2.1.0" 2523 | 2524 | "node-int64@^0.4.0": 2525 | "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" 2526 | "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" 2527 | "version" "0.4.0" 2528 | 2529 | "node-releases@^2.0.5": 2530 | "integrity" "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" 2531 | "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz" 2532 | "version" "2.0.5" 2533 | 2534 | "normalize-package-data@^3.0.2": 2535 | "integrity" "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==" 2536 | "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" 2537 | "version" "3.0.3" 2538 | dependencies: 2539 | "hosted-git-info" "^4.0.1" 2540 | "is-core-module" "^2.5.0" 2541 | "semver" "^7.3.4" 2542 | "validate-npm-package-license" "^3.0.1" 2543 | 2544 | "normalize-path@^3.0.0": 2545 | "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" 2546 | "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 2547 | "version" "3.0.0" 2548 | 2549 | "npm-run-path@^4.0.1": 2550 | "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" 2551 | "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" 2552 | "version" "4.0.1" 2553 | dependencies: 2554 | "path-key" "^3.0.0" 2555 | 2556 | "once@^1.3.0": 2557 | "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" 2558 | "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 2559 | "version" "1.4.0" 2560 | dependencies: 2561 | "wrappy" "1" 2562 | 2563 | "onetime@^5.1.2": 2564 | "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" 2565 | "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" 2566 | "version" "5.1.2" 2567 | dependencies: 2568 | "mimic-fn" "^2.1.0" 2569 | 2570 | "p-event@^4.1.0": 2571 | "integrity" "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==" 2572 | "resolved" "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz" 2573 | "version" "4.2.0" 2574 | dependencies: 2575 | "p-timeout" "^3.1.0" 2576 | 2577 | "p-filter@^3.0.0": 2578 | "integrity" "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==" 2579 | "resolved" "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz" 2580 | "version" "3.0.0" 2581 | dependencies: 2582 | "p-map" "^5.1.0" 2583 | 2584 | "p-finally@^1.0.0": 2585 | "integrity" "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" 2586 | "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" 2587 | "version" "1.0.0" 2588 | 2589 | "p-limit@^2.2.0": 2590 | "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" 2591 | "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 2592 | "version" "2.3.0" 2593 | dependencies: 2594 | "p-try" "^2.0.0" 2595 | 2596 | "p-limit@^3.0.2": 2597 | "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" 2598 | "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 2599 | "version" "3.1.0" 2600 | dependencies: 2601 | "yocto-queue" "^0.1.0" 2602 | 2603 | "p-locate@^4.1.0": 2604 | "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" 2605 | "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 2606 | "version" "4.1.0" 2607 | dependencies: 2608 | "p-limit" "^2.2.0" 2609 | 2610 | "p-locate@^5.0.0": 2611 | "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" 2612 | "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 2613 | "version" "5.0.0" 2614 | dependencies: 2615 | "p-limit" "^3.0.2" 2616 | 2617 | "p-map@^5.1.0", "p-map@^5.3.0": 2618 | "integrity" "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==" 2619 | "resolved" "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz" 2620 | "version" "5.5.0" 2621 | dependencies: 2622 | "aggregate-error" "^4.0.0" 2623 | 2624 | "p-timeout@^3.1.0": 2625 | "integrity" "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==" 2626 | "resolved" "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" 2627 | "version" "3.2.0" 2628 | dependencies: 2629 | "p-finally" "^1.0.0" 2630 | 2631 | "p-try@^2.0.0": 2632 | "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 2633 | "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 2634 | "version" "2.2.0" 2635 | 2636 | "parse-json@^5.2.0": 2637 | "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" 2638 | "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" 2639 | "version" "5.2.0" 2640 | dependencies: 2641 | "@babel/code-frame" "^7.0.0" 2642 | "error-ex" "^1.3.1" 2643 | "json-parse-even-better-errors" "^2.3.0" 2644 | "lines-and-columns" "^1.1.6" 2645 | 2646 | "path-exists@^4.0.0": 2647 | "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 2648 | "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 2649 | "version" "4.0.0" 2650 | 2651 | "path-is-absolute@^1.0.0": 2652 | "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 2653 | "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 2654 | "version" "1.0.1" 2655 | 2656 | "path-key@^3.0.0", "path-key@^3.1.0": 2657 | "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 2658 | "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 2659 | "version" "3.1.1" 2660 | 2661 | "path-parse@^1.0.7": 2662 | "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 2663 | "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 2664 | "version" "1.0.7" 2665 | 2666 | "path-type@^4.0.0": 2667 | "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 2668 | "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" 2669 | "version" "4.0.0" 2670 | 2671 | "picocolors@^1.0.0": 2672 | "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 2673 | "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" 2674 | "version" "1.0.0" 2675 | 2676 | "picomatch@^2.0.4", "picomatch@^2.2.3", "picomatch@^2.3.1": 2677 | "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 2678 | "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 2679 | "version" "2.3.1" 2680 | 2681 | "pirates@^4.0.4": 2682 | "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" 2683 | "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" 2684 | "version" "4.0.5" 2685 | 2686 | "pkg-dir@^4.2.0": 2687 | "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" 2688 | "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" 2689 | "version" "4.2.0" 2690 | dependencies: 2691 | "find-up" "^4.0.0" 2692 | 2693 | "prettier@^2.6.2": 2694 | "integrity" "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==" 2695 | "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz" 2696 | "version" "2.6.2" 2697 | 2698 | "pretty-format@^27.0.0", "pretty-format@^27.5.1": 2699 | "integrity" "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==" 2700 | "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" 2701 | "version" "27.5.1" 2702 | dependencies: 2703 | "ansi-regex" "^5.0.1" 2704 | "ansi-styles" "^5.0.0" 2705 | "react-is" "^17.0.1" 2706 | 2707 | "pretty-format@^28.1.1": 2708 | "integrity" "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==" 2709 | "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz" 2710 | "version" "28.1.1" 2711 | dependencies: 2712 | "@jest/schemas" "^28.0.2" 2713 | "ansi-regex" "^5.0.1" 2714 | "ansi-styles" "^5.0.0" 2715 | "react-is" "^18.0.0" 2716 | 2717 | "prompts@^2.0.1": 2718 | "integrity" "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==" 2719 | "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz" 2720 | "version" "2.3.2" 2721 | dependencies: 2722 | "kleur" "^3.0.3" 2723 | "sisteransi" "^1.0.4" 2724 | 2725 | "punycode@^2.1.0": 2726 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 2727 | "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 2728 | "version" "2.1.1" 2729 | 2730 | "queue-microtask@^1.2.2": 2731 | "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 2732 | "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 2733 | "version" "1.2.3" 2734 | 2735 | "quick-lru@^5.1.1": 2736 | "integrity" "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" 2737 | "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" 2738 | "version" "5.1.1" 2739 | 2740 | "randombytes@^2.1.0": 2741 | "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" 2742 | "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" 2743 | "version" "2.1.0" 2744 | dependencies: 2745 | "safe-buffer" "^5.1.0" 2746 | 2747 | "react-is@^17.0.1": 2748 | "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 2749 | "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" 2750 | "version" "17.0.2" 2751 | 2752 | "react-is@^18.0.0": 2753 | "integrity" "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==" 2754 | "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz" 2755 | "version" "18.1.0" 2756 | 2757 | "read-pkg-up@^8.0.0": 2758 | "integrity" "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==" 2759 | "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz" 2760 | "version" "8.0.0" 2761 | dependencies: 2762 | "find-up" "^5.0.0" 2763 | "read-pkg" "^6.0.0" 2764 | "type-fest" "^1.0.1" 2765 | 2766 | "read-pkg@^6.0.0": 2767 | "integrity" "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==" 2768 | "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz" 2769 | "version" "6.0.0" 2770 | dependencies: 2771 | "@types/normalize-package-data" "^2.4.0" 2772 | "normalize-package-data" "^3.0.2" 2773 | "parse-json" "^5.2.0" 2774 | "type-fest" "^1.0.1" 2775 | 2776 | "rechoir@^0.7.0": 2777 | "integrity" "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==" 2778 | "resolved" "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" 2779 | "version" "0.7.1" 2780 | dependencies: 2781 | "resolve" "^1.9.0" 2782 | 2783 | "redent@^4.0.0": 2784 | "integrity" "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==" 2785 | "resolved" "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz" 2786 | "version" "4.0.0" 2787 | dependencies: 2788 | "indent-string" "^5.0.0" 2789 | "strip-indent" "^4.0.0" 2790 | 2791 | "require-directory@^2.1.1": 2792 | "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" 2793 | "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 2794 | "version" "2.1.1" 2795 | 2796 | "resolve-cwd@^3.0.0": 2797 | "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" 2798 | "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" 2799 | "version" "3.0.0" 2800 | dependencies: 2801 | "resolve-from" "^5.0.0" 2802 | 2803 | "resolve-from@^5.0.0": 2804 | "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" 2805 | "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 2806 | "version" "5.0.0" 2807 | 2808 | "resolve.exports@^1.1.0": 2809 | "integrity" "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" 2810 | "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" 2811 | "version" "1.1.0" 2812 | 2813 | "resolve@^1.20.0", "resolve@^1.3.2", "resolve@^1.9.0": 2814 | "integrity" "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==" 2815 | "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" 2816 | "version" "1.22.0" 2817 | dependencies: 2818 | "is-core-module" "^2.8.1" 2819 | "path-parse" "^1.0.7" 2820 | "supports-preserve-symlinks-flag" "^1.0.0" 2821 | 2822 | "reusify@^1.0.4": 2823 | "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 2824 | "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 2825 | "version" "1.0.4" 2826 | 2827 | "rimraf@^3.0.0", "rimraf@^3.0.2": 2828 | "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" 2829 | "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 2830 | "version" "3.0.2" 2831 | dependencies: 2832 | "glob" "^7.1.3" 2833 | 2834 | "run-parallel@^1.1.9": 2835 | "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" 2836 | "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" 2837 | "version" "1.2.0" 2838 | dependencies: 2839 | "queue-microtask" "^1.2.2" 2840 | 2841 | "rxjs@^7.0.0": 2842 | "integrity" "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==" 2843 | "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz" 2844 | "version" "7.5.5" 2845 | dependencies: 2846 | "tslib" "^2.1.0" 2847 | 2848 | "safe-buffer@^5.1.0", "safe-buffer@~5.1.1": 2849 | "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2850 | "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 2851 | "version" "5.1.2" 2852 | 2853 | "schema-utils@^3.1.0", "schema-utils@^3.1.1": 2854 | "integrity" "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==" 2855 | "resolved" "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" 2856 | "version" "3.1.1" 2857 | dependencies: 2858 | "@types/json-schema" "^7.0.8" 2859 | "ajv" "^6.12.5" 2860 | "ajv-keywords" "^3.5.2" 2861 | 2862 | "semver@^5.3.0": 2863 | "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 2864 | "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" 2865 | "version" "5.7.1" 2866 | 2867 | "semver@^6.0.0", "semver@^6.3.0": 2868 | "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 2869 | "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" 2870 | "version" "6.3.0" 2871 | 2872 | "semver@^7.3.4": 2873 | "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" 2874 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" 2875 | "version" "7.3.7" 2876 | dependencies: 2877 | "lru-cache" "^6.0.0" 2878 | 2879 | "semver@^7.3.5": 2880 | "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" 2881 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" 2882 | "version" "7.3.7" 2883 | dependencies: 2884 | "lru-cache" "^6.0.0" 2885 | 2886 | "semver@7.x": 2887 | "integrity" "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" 2888 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" 2889 | "version" "7.3.2" 2890 | 2891 | "serialize-javascript@^6.0.0": 2892 | "integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==" 2893 | "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" 2894 | "version" "6.0.0" 2895 | dependencies: 2896 | "randombytes" "^2.1.0" 2897 | 2898 | "shallow-clone@^3.0.0": 2899 | "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" 2900 | "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" 2901 | "version" "3.0.1" 2902 | dependencies: 2903 | "kind-of" "^6.0.2" 2904 | 2905 | "shebang-command@^2.0.0": 2906 | "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" 2907 | "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 2908 | "version" "2.0.0" 2909 | dependencies: 2910 | "shebang-regex" "^3.0.0" 2911 | 2912 | "shebang-regex@^3.0.0": 2913 | "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 2914 | "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 2915 | "version" "3.0.0" 2916 | 2917 | "signal-exit@^3.0.3", "signal-exit@^3.0.7": 2918 | "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 2919 | "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" 2920 | "version" "3.0.7" 2921 | 2922 | "sisteransi@^1.0.4": 2923 | "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" 2924 | "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" 2925 | "version" "1.0.5" 2926 | 2927 | "slash@^3.0.0": 2928 | "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" 2929 | "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" 2930 | "version" "3.0.0" 2931 | 2932 | "slash@^4.0.0": 2933 | "integrity" "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" 2934 | "resolved" "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" 2935 | "version" "4.0.0" 2936 | 2937 | "source-map-support@~0.5.20": 2938 | "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" 2939 | "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" 2940 | "version" "0.5.21" 2941 | dependencies: 2942 | "buffer-from" "^1.0.0" 2943 | "source-map" "^0.6.0" 2944 | 2945 | "source-map-support@0.5.13": 2946 | "integrity" "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==" 2947 | "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" 2948 | "version" "0.5.13" 2949 | dependencies: 2950 | "buffer-from" "^1.0.0" 2951 | "source-map" "^0.6.0" 2952 | 2953 | "source-map@^0.6.0", "source-map@^0.6.1": 2954 | "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 2955 | "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 2956 | "version" "0.6.1" 2957 | 2958 | "spdx-correct@^3.0.0": 2959 | "integrity" "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==" 2960 | "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" 2961 | "version" "3.1.0" 2962 | dependencies: 2963 | "spdx-expression-parse" "^3.0.0" 2964 | "spdx-license-ids" "^3.0.0" 2965 | 2966 | "spdx-exceptions@^2.1.0": 2967 | "integrity" "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" 2968 | "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz" 2969 | "version" "2.2.0" 2970 | 2971 | "spdx-expression-parse@^3.0.0": 2972 | "integrity" "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==" 2973 | "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" 2974 | "version" "3.0.0" 2975 | dependencies: 2976 | "spdx-exceptions" "^2.1.0" 2977 | "spdx-license-ids" "^3.0.0" 2978 | 2979 | "spdx-license-ids@^3.0.0": 2980 | "integrity" "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" 2981 | "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz" 2982 | "version" "3.0.5" 2983 | 2984 | "sprintf-js@~1.0.2": 2985 | "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 2986 | "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" 2987 | "version" "1.0.3" 2988 | 2989 | "stack-utils@^2.0.3": 2990 | "integrity" "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==" 2991 | "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" 2992 | "version" "2.0.5" 2993 | dependencies: 2994 | "escape-string-regexp" "^2.0.0" 2995 | 2996 | "string-length@^4.0.1": 2997 | "integrity" "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==" 2998 | "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz" 2999 | "version" "4.0.1" 3000 | dependencies: 3001 | "char-regex" "^1.0.2" 3002 | "strip-ansi" "^6.0.0" 3003 | 3004 | "string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3": 3005 | "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" 3006 | "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 3007 | "version" "4.2.3" 3008 | dependencies: 3009 | "emoji-regex" "^8.0.0" 3010 | "is-fullwidth-code-point" "^3.0.0" 3011 | "strip-ansi" "^6.0.1" 3012 | 3013 | "strip-ansi@^6.0.0", "strip-ansi@^6.0.1": 3014 | "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" 3015 | "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 3016 | "version" "6.0.1" 3017 | dependencies: 3018 | "ansi-regex" "^5.0.1" 3019 | 3020 | "strip-bom@^3.0.0": 3021 | "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" 3022 | "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" 3023 | "version" "3.0.0" 3024 | 3025 | "strip-bom@^4.0.0": 3026 | "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" 3027 | "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" 3028 | "version" "4.0.0" 3029 | 3030 | "strip-final-newline@^2.0.0": 3031 | "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" 3032 | "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" 3033 | "version" "2.0.0" 3034 | 3035 | "strip-indent@^4.0.0": 3036 | "integrity" "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==" 3037 | "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz" 3038 | "version" "4.0.0" 3039 | dependencies: 3040 | "min-indent" "^1.0.1" 3041 | 3042 | "strip-json-comments@^3.1.1": 3043 | "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" 3044 | "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 3045 | "version" "3.1.1" 3046 | 3047 | "supports-color@^5.3.0": 3048 | "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" 3049 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 3050 | "version" "5.5.0" 3051 | dependencies: 3052 | "has-flag" "^3.0.0" 3053 | 3054 | "supports-color@^7.0.0", "supports-color@^7.1.0": 3055 | "integrity" "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==" 3056 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" 3057 | "version" "7.1.0" 3058 | dependencies: 3059 | "has-flag" "^4.0.0" 3060 | 3061 | "supports-color@^8.0.0": 3062 | "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" 3063 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 3064 | "version" "8.1.1" 3065 | dependencies: 3066 | "has-flag" "^4.0.0" 3067 | 3068 | "supports-hyperlinks@^2.0.0": 3069 | "integrity" "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==" 3070 | "resolved" "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz" 3071 | "version" "2.1.0" 3072 | dependencies: 3073 | "has-flag" "^4.0.0" 3074 | "supports-color" "^7.0.0" 3075 | 3076 | "supports-preserve-symlinks-flag@^1.0.0": 3077 | "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" 3078 | "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" 3079 | "version" "1.0.0" 3080 | 3081 | "tapable@^2.1.1", "tapable@^2.2.0": 3082 | "integrity" "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" 3083 | "resolved" "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" 3084 | "version" "2.2.1" 3085 | 3086 | "terminal-link@^2.0.0": 3087 | "integrity" "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==" 3088 | "resolved" "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" 3089 | "version" "2.1.1" 3090 | dependencies: 3091 | "ansi-escapes" "^4.2.1" 3092 | "supports-hyperlinks" "^2.0.0" 3093 | 3094 | "terser-webpack-plugin@^5.1.3": 3095 | "integrity" "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==" 3096 | "resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz" 3097 | "version" "5.3.3" 3098 | dependencies: 3099 | "@jridgewell/trace-mapping" "^0.3.7" 3100 | "jest-worker" "^27.4.5" 3101 | "schema-utils" "^3.1.1" 3102 | "serialize-javascript" "^6.0.0" 3103 | "terser" "^5.7.2" 3104 | 3105 | "terser@^5.7.2": 3106 | "integrity" "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==" 3107 | "resolved" "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz" 3108 | "version" "5.14.1" 3109 | dependencies: 3110 | "@jridgewell/source-map" "^0.3.2" 3111 | "acorn" "^8.5.0" 3112 | "commander" "^2.20.0" 3113 | "source-map-support" "~0.5.20" 3114 | 3115 | "test-exclude@^6.0.0": 3116 | "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" 3117 | "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" 3118 | "version" "6.0.0" 3119 | dependencies: 3120 | "@istanbuljs/schema" "^0.1.2" 3121 | "glob" "^7.1.4" 3122 | "minimatch" "^3.0.4" 3123 | 3124 | "throat@^6.0.1": 3125 | "integrity" "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" 3126 | "resolved" "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" 3127 | "version" "6.0.1" 3128 | 3129 | "tmpl@1.0.5": 3130 | "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" 3131 | "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" 3132 | "version" "1.0.5" 3133 | 3134 | "to-fast-properties@^2.0.0": 3135 | "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" 3136 | "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" 3137 | "version" "2.0.0" 3138 | 3139 | "to-regex-range@^5.0.1": 3140 | "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" 3141 | "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 3142 | "version" "5.0.1" 3143 | dependencies: 3144 | "is-number" "^7.0.0" 3145 | 3146 | "trim-newlines@^4.0.2": 3147 | "integrity" "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==" 3148 | "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz" 3149 | "version" "4.0.2" 3150 | 3151 | "ts-jest@^28.0.4": 3152 | "integrity" "sha512-S6uRDDdCJBvnZqyGjB4VCnwbQrbgdL8WPeP4jevVSpYsBaeGRQAIS08o3Svav2Ex+oXwLgJ/m7F24TNq62kA1A==" 3153 | "resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.4.tgz" 3154 | "version" "28.0.4" 3155 | dependencies: 3156 | "bs-logger" "0.x" 3157 | "fast-json-stable-stringify" "2.x" 3158 | "jest-util" "^28.0.0" 3159 | "json5" "^2.2.1" 3160 | "lodash.memoize" "4.x" 3161 | "make-error" "1.x" 3162 | "semver" "7.x" 3163 | "yargs-parser" "^20.x" 3164 | 3165 | "ts-loader@^9.3.0": 3166 | "integrity" "sha512-2kLLAdAD+FCKijvGKi9sS0OzoqxLCF3CxHpok7rVgCZ5UldRzH0TkbwG9XECKjBzHsAewntC5oDaI/FwKzEUog==" 3167 | "resolved" "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.0.tgz" 3168 | "version" "9.3.0" 3169 | dependencies: 3170 | "chalk" "^4.1.0" 3171 | "enhanced-resolve" "^5.0.0" 3172 | "micromatch" "^4.0.0" 3173 | "semver" "^7.3.4" 3174 | 3175 | "ts-node@^10.8.1", "ts-node@>=9.0.0": 3176 | "integrity" "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==" 3177 | "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz" 3178 | "version" "10.8.1" 3179 | dependencies: 3180 | "@cspotcode/source-map-support" "^0.8.0" 3181 | "@tsconfig/node10" "^1.0.7" 3182 | "@tsconfig/node12" "^1.0.7" 3183 | "@tsconfig/node14" "^1.0.0" 3184 | "@tsconfig/node16" "^1.0.2" 3185 | "acorn" "^8.4.1" 3186 | "acorn-walk" "^8.1.1" 3187 | "arg" "^4.1.0" 3188 | "create-require" "^1.1.0" 3189 | "diff" "^4.0.1" 3190 | "make-error" "^1.1.1" 3191 | "v8-compile-cache-lib" "^3.0.1" 3192 | "yn" "3.1.1" 3193 | 3194 | "tsconfig-paths@^4.0.0": 3195 | "integrity" "sha512-SLBg2GBKlR6bVtMgJJlud/o3waplKtL7skmLkExomIiaAtLGtVsoXIqP3SYdjbcH9lq/KVv7pMZeCBpLYOit6Q==" 3196 | "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.0.0.tgz" 3197 | "version" "4.0.0" 3198 | dependencies: 3199 | "json5" "^2.2.1" 3200 | "minimist" "^1.2.6" 3201 | "strip-bom" "^3.0.0" 3202 | 3203 | "tslib@^1.13.0": 3204 | "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 3205 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" 3206 | "version" "1.14.1" 3207 | 3208 | "tslib@^1.8.1": 3209 | "integrity" "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" 3210 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" 3211 | "version" "1.10.0" 3212 | 3213 | "tslib@^1.9.0": 3214 | "integrity" "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" 3215 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" 3216 | "version" "1.10.0" 3217 | 3218 | "tslib@^2.1.0": 3219 | "integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" 3220 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" 3221 | "version" "2.4.0" 3222 | 3223 | "tslint@^6.1.3": 3224 | "integrity" "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==" 3225 | "resolved" "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz" 3226 | "version" "6.1.3" 3227 | dependencies: 3228 | "@babel/code-frame" "^7.0.0" 3229 | "builtin-modules" "^1.1.1" 3230 | "chalk" "^2.3.0" 3231 | "commander" "^2.12.1" 3232 | "diff" "^4.0.1" 3233 | "glob" "^7.1.1" 3234 | "js-yaml" "^3.13.1" 3235 | "minimatch" "^3.0.4" 3236 | "mkdirp" "^0.5.3" 3237 | "resolve" "^1.3.2" 3238 | "semver" "^5.3.0" 3239 | "tslib" "^1.13.0" 3240 | "tsutils" "^2.29.0" 3241 | 3242 | "tsutils@^2.29.0": 3243 | "integrity" "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==" 3244 | "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz" 3245 | "version" "2.29.0" 3246 | dependencies: 3247 | "tslib" "^1.8.1" 3248 | 3249 | "type-detect@4.0.8": 3250 | "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" 3251 | "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" 3252 | "version" "4.0.8" 3253 | 3254 | "type-fest@^0.11.0": 3255 | "integrity" "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" 3256 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz" 3257 | "version" "0.11.0" 3258 | 3259 | "type-fest@^1.0.1": 3260 | "integrity" "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" 3261 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" 3262 | "version" "1.4.0" 3263 | 3264 | "type-fest@^1.2.1": 3265 | "integrity" "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" 3266 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" 3267 | "version" "1.4.0" 3268 | 3269 | "type-fest@^1.2.2": 3270 | "integrity" "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" 3271 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" 3272 | "version" "1.4.0" 3273 | 3274 | "typescript@*", "typescript@^4.7.3", "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev", "typescript@>=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev", "typescript@>=2.7", "typescript@>=4.3": 3275 | "integrity" "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" 3276 | "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz" 3277 | "version" "4.7.3" 3278 | 3279 | "uri-js@^4.2.2": 3280 | "integrity" "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==" 3281 | "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" 3282 | "version" "4.2.2" 3283 | dependencies: 3284 | "punycode" "^2.1.0" 3285 | 3286 | "v8-compile-cache-lib@^3.0.1": 3287 | "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" 3288 | "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" 3289 | "version" "3.0.1" 3290 | 3291 | "v8-to-istanbul@^9.0.0": 3292 | "integrity" "sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==" 3293 | "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz" 3294 | "version" "9.0.0" 3295 | dependencies: 3296 | "@jridgewell/trace-mapping" "^0.3.7" 3297 | "@types/istanbul-lib-coverage" "^2.0.1" 3298 | "convert-source-map" "^1.6.0" 3299 | 3300 | "validate-npm-package-license@^3.0.1": 3301 | "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" 3302 | "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" 3303 | "version" "3.0.4" 3304 | dependencies: 3305 | "spdx-correct" "^3.0.0" 3306 | "spdx-expression-parse" "^3.0.0" 3307 | 3308 | "walker@^1.0.8": 3309 | "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" 3310 | "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" 3311 | "version" "1.0.8" 3312 | dependencies: 3313 | "makeerror" "1.0.12" 3314 | 3315 | "watchpack@^2.3.1": 3316 | "integrity" "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==" 3317 | "resolved" "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz" 3318 | "version" "2.4.0" 3319 | dependencies: 3320 | "glob-to-regexp" "^0.4.1" 3321 | "graceful-fs" "^4.1.2" 3322 | 3323 | "webpack-cli@^4.9.2", "webpack-cli@4.x.x": 3324 | "integrity" "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==" 3325 | "resolved" "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz" 3326 | "version" "4.9.2" 3327 | dependencies: 3328 | "@discoveryjs/json-ext" "^0.5.0" 3329 | "@webpack-cli/configtest" "^1.1.1" 3330 | "@webpack-cli/info" "^1.4.1" 3331 | "@webpack-cli/serve" "^1.6.1" 3332 | "colorette" "^2.0.14" 3333 | "commander" "^7.0.0" 3334 | "execa" "^5.0.0" 3335 | "fastest-levenshtein" "^1.0.12" 3336 | "import-local" "^3.0.2" 3337 | "interpret" "^2.2.0" 3338 | "rechoir" "^0.7.0" 3339 | "webpack-merge" "^5.7.3" 3340 | 3341 | "webpack-merge@^5.7.3": 3342 | "integrity" "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==" 3343 | "resolved" "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" 3344 | "version" "5.8.0" 3345 | dependencies: 3346 | "clone-deep" "^4.0.1" 3347 | "wildcard" "^2.0.0" 3348 | 3349 | "webpack-rxjs-externals@^2.0.0": 3350 | "integrity" "sha512-K6EH1FSZbbUgmCUD9gD7coHbZYM/5cYcLS6slWKo5oG7dmCpOznbjOBZ/w+5PXeqrApwx+7mWgrZE2WVIZGJCw==" 3351 | "resolved" "https://registry.npmjs.org/webpack-rxjs-externals/-/webpack-rxjs-externals-2.0.0.tgz" 3352 | "version" "2.0.0" 3353 | 3354 | "webpack-sources@^3.2.3": 3355 | "integrity" "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" 3356 | "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" 3357 | "version" "3.2.3" 3358 | 3359 | "webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.73.0", "webpack@>=2.0.0", "webpack@4.x.x || 5.x.x": 3360 | "integrity" "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==" 3361 | "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz" 3362 | "version" "5.73.0" 3363 | dependencies: 3364 | "@types/eslint-scope" "^3.7.3" 3365 | "@types/estree" "^0.0.51" 3366 | "@webassemblyjs/ast" "1.11.1" 3367 | "@webassemblyjs/wasm-edit" "1.11.1" 3368 | "@webassemblyjs/wasm-parser" "1.11.1" 3369 | "acorn" "^8.4.1" 3370 | "acorn-import-assertions" "^1.7.6" 3371 | "browserslist" "^4.14.5" 3372 | "chrome-trace-event" "^1.0.2" 3373 | "enhanced-resolve" "^5.9.3" 3374 | "es-module-lexer" "^0.9.0" 3375 | "eslint-scope" "5.1.1" 3376 | "events" "^3.2.0" 3377 | "glob-to-regexp" "^0.4.1" 3378 | "graceful-fs" "^4.2.9" 3379 | "json-parse-even-better-errors" "^2.3.1" 3380 | "loader-runner" "^4.2.0" 3381 | "mime-types" "^2.1.27" 3382 | "neo-async" "^2.6.2" 3383 | "schema-utils" "^3.1.0" 3384 | "tapable" "^2.1.1" 3385 | "terser-webpack-plugin" "^5.1.3" 3386 | "watchpack" "^2.3.1" 3387 | "webpack-sources" "^3.2.3" 3388 | 3389 | "which@^2.0.1": 3390 | "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" 3391 | "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 3392 | "version" "2.0.2" 3393 | dependencies: 3394 | "isexe" "^2.0.0" 3395 | 3396 | "wildcard@^2.0.0": 3397 | "integrity" "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" 3398 | "resolved" "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" 3399 | "version" "2.0.0" 3400 | 3401 | "wrap-ansi@^7.0.0": 3402 | "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" 3403 | "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 3404 | "version" "7.0.0" 3405 | dependencies: 3406 | "ansi-styles" "^4.0.0" 3407 | "string-width" "^4.1.0" 3408 | "strip-ansi" "^6.0.0" 3409 | 3410 | "wrappy@1": 3411 | "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 3412 | "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 3413 | "version" "1.0.2" 3414 | 3415 | "write-file-atomic@^4.0.1": 3416 | "integrity" "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==" 3417 | "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz" 3418 | "version" "4.0.1" 3419 | dependencies: 3420 | "imurmurhash" "^0.1.4" 3421 | "signal-exit" "^3.0.7" 3422 | 3423 | "y18n@^5.0.5": 3424 | "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" 3425 | "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" 3426 | "version" "5.0.8" 3427 | 3428 | "yallist@^4.0.0": 3429 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 3430 | "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 3431 | "version" "4.0.0" 3432 | 3433 | "yargs-parser@^20.2.9", "yargs-parser@^20.x": 3434 | "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" 3435 | "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" 3436 | "version" "20.2.9" 3437 | 3438 | "yargs-parser@^21.0.0": 3439 | "integrity" "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" 3440 | "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" 3441 | "version" "21.0.1" 3442 | 3443 | "yargs@^17.3.1": 3444 | "integrity" "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==" 3445 | "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" 3446 | "version" "17.5.1" 3447 | dependencies: 3448 | "cliui" "^7.0.2" 3449 | "escalade" "^3.1.1" 3450 | "get-caller-file" "^2.0.5" 3451 | "require-directory" "^2.1.1" 3452 | "string-width" "^4.2.3" 3453 | "y18n" "^5.0.5" 3454 | "yargs-parser" "^21.0.0" 3455 | 3456 | "yn@3.1.1": 3457 | "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" 3458 | "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" 3459 | "version" "3.1.1" 3460 | 3461 | "yocto-queue@^0.1.0": 3462 | "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" 3463 | "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 3464 | "version" "0.1.0" 3465 | --------------------------------------------------------------------------------