├── spec ├── __fixtures__ │ └── foo │ │ ├── bar.ts │ │ └── bar │ │ ├── baz │ │ └── index.ts │ │ └── index.js └── index.test.ts ├── .gitignore ├── .indo.json ├── jest.config.js ├── tsconfig.json ├── src ├── sortPaths.ts ├── glob.ts ├── types.ts └── index.ts ├── rollup.config.js ├── .github └── workflows │ └── release.yml ├── LICENSE ├── package.json ├── README.md └── pnpm-lock.yaml /spec/__fixtures__/foo/bar.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/__fixtures__/foo/bar/baz/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/__fixtures__/foo/bar/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | vendor 4 | dist 5 | -------------------------------------------------------------------------------- /.indo.json: -------------------------------------------------------------------------------- 1 | { 2 | "repos": { 3 | "vendor/wait-for-path": { 4 | "url": "https://github.com/aleclarson/wait-for-path" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | collectCoverageFrom: ['src/**/*.ts'], 3 | coveragePathIgnorePatterns: ['src/types.ts'], 4 | testEnvironment: 'node', 5 | moduleNameMapper: { 6 | '^filespy$': '/src/index.ts', 7 | }, 8 | transform: { 9 | '\\.tsx?$': ['esbuild-jest', { sourcemap: true }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["src"], 3 | "compilerOptions": { 4 | "declaration": true, 5 | "lib": ["es2018"], 6 | "module": "commonjs", 7 | "moduleResolution": "node", 8 | "noEmit": true, 9 | "noUnusedLocals": true, 10 | "strict": true, 11 | "sourceMap": true, 12 | "target": "es2018" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/sortPaths.ts: -------------------------------------------------------------------------------- 1 | // Adapted from https://github.com/hughsk/path-sort 2 | export function sortPaths(as: string, bs: string) { 3 | let a = as.split('/') 4 | let b = bs.split('/') 5 | let l = Math.min(a.length, b.length) 6 | for (let i = 0; i < l; i += 1) { 7 | let ac = a[i].toUpperCase() 8 | let bc = b[i].toUpperCase() 9 | if (ac > bc) return +1 10 | if (ac < bc) return -1 11 | } 12 | return a.length - b.length 13 | } 14 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import dts from 'rollup-plugin-dts' 2 | import esbuild from 'rollup-plugin-esbuild' 3 | import nodeResolve from '@rollup/plugin-node-resolve' 4 | 5 | const name = require('./package.json').main.replace(/\.js$/, '') 6 | 7 | const bundle = config => ({ 8 | ...config, 9 | input: 'src/index.ts', 10 | external: id => !/^[./]/.test(id) && id !== 'wait-for-path', 11 | }) 12 | 13 | export default [ 14 | bundle({ 15 | plugins: [esbuild(), nodeResolve()], 16 | output: { 17 | file: `${name}.js`, 18 | format: 'cjs', 19 | sourcemap: true, 20 | sourcemapExcludeSources: true, 21 | }, 22 | }), 23 | bundle({ 24 | plugins: [dts(), nodeResolve()], 25 | output: { 26 | file: `${name}.d.ts`, 27 | format: 'es', 28 | }, 29 | }), 30 | ] 31 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: [push] 3 | jobs: 4 | test: 5 | name: Test on node ${{ matrix.node_version }} and ${{ matrix.os }} 6 | runs-on: ${{ matrix.os }} 7 | strategy: 8 | fail-fast: false 9 | matrix: 10 | node_version: [10, 12, 14] 11 | os: [ubuntu-latest, windows-latest, macos-latest] 12 | 13 | steps: 14 | - uses: actions/checkout@v2 15 | 16 | - uses: actions/setup-node@v1 17 | with: 18 | node-version: ${{ matrix.node_version }} 19 | 20 | - name: Install 21 | uses: pnpm/action-setup@v1.2.1 22 | with: 23 | version: 5 24 | run_install: | 25 | args: [--frozen-lockfile] 26 | 27 | - name: Test 28 | run: yarn test --coverage 29 | 30 | - name: Reset fixtures 31 | run: git clean -df 32 | 33 | - name: Upload coverage 34 | run: npx codecov 35 | env: 36 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Alec Larson 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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "filespy", 3 | "version": "1.2.4", 4 | "description": "Spy on files", 5 | "author": "Alec Larson", 6 | "license": "MIT", 7 | "repository": "alloc/filespy", 8 | "main": "dist/filespy.js", 9 | "types": "dist/filespy.d.ts", 10 | "files": [ 11 | "src", 12 | "dist", 13 | "vendor/wait-for-path/src", 14 | "!*.test.ts" 15 | ], 16 | "scripts": { 17 | "test": "jest", 18 | "build": "rollup -c", 19 | "prepare": "indo && yarn build" 20 | }, 21 | "dependencies": { 22 | "@parcel/watcher": "^2.0.0-alpha.10", 23 | "binary-insert": "^1.2.1", 24 | "glob-regex": "^0.3.2", 25 | "slash": "^3.0.0" 26 | }, 27 | "devDependencies": { 28 | "@alloc/prettier-config": "^1.0.0", 29 | "@cush/exec": "^1.7.1", 30 | "@rollup/plugin-node-resolve": "^11.2.0", 31 | "@types/is-windows": "^1.0.0", 32 | "@types/jest": "^26.0.20", 33 | "delay": "^5.0.0", 34 | "dequal": "^2.0.2", 35 | "esbuild": "^0.8.36", 36 | "esbuild-jest": "npm:@alloc/esbuild-jest@^0.3.0", 37 | "filespy": "link:.", 38 | "indo": "^0.3.42", 39 | "is-windows": "^1.0.2", 40 | "jest": "^26.6.3", 41 | "prettier": "^2.0.5", 42 | "rollup": "^2.38.1", 43 | "rollup-plugin-dts": "^2.0.1", 44 | "rollup-plugin-esbuild": "^2.6.1", 45 | "saxon": "^0.2.11", 46 | "typescript": "^4.0.0", 47 | "wait-for-path": "^0.1.1" 48 | }, 49 | "prettier": "@alloc/prettier-config", 50 | "keywords": [ 51 | "fs", 52 | "watch", 53 | "watcher", 54 | "watchman", 55 | "watchFile", 56 | "file", 57 | "watching", 58 | "fsevents", 59 | "inotify", 60 | "crawl", 61 | "chokidar" 62 | ] 63 | } 64 | -------------------------------------------------------------------------------- /src/glob.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path' 2 | import globRegex from 'glob-regex' 3 | 4 | /** Tests true for absolute paths and globs starting with two asterisks. */ 5 | const globAllRE = new RegExp(`(?:\\${path.sep}|\\*\\*)`) 6 | 7 | /** Merge regular expressions together. */ 8 | const matchAny = (patterns: string[]) => 9 | new RegExp(`^(?:${patterns.join('|')})$`) 10 | 11 | /** Provide the `name` argument to avoid unnecessary `path.basename` calls */ 12 | export type GlobMatcher = (file: string, name?: string) => boolean 13 | 14 | /** 15 | * Compile a single Recrawl glob string into its "RegExp pattern" equivalent. 16 | * 17 | * Note: This is only useful for globs with "/" or "**" in them. 18 | */ 19 | export function compileGlob(glob: string, root?: string) { 20 | if (glob[0] == path.sep) { 21 | glob = glob.slice(1) 22 | } else if (glob[0] !== '*') { 23 | glob = '**/' + glob 24 | } 25 | if (glob.endsWith('/')) { 26 | glob += '**' 27 | } 28 | if (root) glob = path.join(root, glob) 29 | return globRegex.replace(glob) 30 | } 31 | 32 | /** 33 | * Create a function that tests against an array of Recrawl glob strings by 34 | * compiling them into RegExp objects. 35 | */ 36 | export function createMatcher( 37 | globs: string[] | undefined, 38 | root?: string 39 | ): GlobMatcher | null { 40 | if (!globs || !globs.length) { 41 | return null 42 | } 43 | const fileGlobs: string[] = [] 44 | const nameGlobs: string[] = [] 45 | globs.forEach(glob => { 46 | if (globAllRE.test(glob)) { 47 | fileGlobs.push(compileGlob(glob, root)) 48 | } else { 49 | nameGlobs.push(globRegex.replace(glob)) 50 | } 51 | }) 52 | const fileRE = fileGlobs.length ? matchAny(fileGlobs) : false 53 | const nameRE = nameGlobs.length ? matchAny(nameGlobs) : false 54 | return (file, name) => 55 | (nameRE && nameRE.test(name || path.basename(file))) || 56 | (fileRE && fileRE.test(file)) 57 | } 58 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import type { EventType, BackendType } from '@parcel/watcher' 2 | import * as fs from 'fs' 3 | 4 | export interface FileSpy { 5 | readonly cwd: string 6 | /** 7 | * Readonly set of currently watched directories. 8 | */ 9 | readonly dirs: ReadonlySet 10 | /** 11 | * Readonly sorted list of currently watched paths. 12 | */ 13 | readonly files: readonly string[] 14 | /** 15 | * Readonly sorted list of existing paths that were skipped. 16 | */ 17 | readonly skipped: readonly string[] 18 | 19 | on( 20 | event: 'create' | 'update', 21 | callback: (name: string, stats: fs.Stats, cwd: string) => void 22 | ): this 23 | 24 | on(event: 'delete', callback: (name: string, cwd: string) => void): this 25 | 26 | /** A directory has been crawled. */ 27 | on(event: 'crawl', callback: (dir: string, cwd: string) => void): this 28 | 29 | /** The watcher is ready. */ 30 | on(event: 'ready', callback: () => void): this 31 | 32 | /** Crawling failed or the watcher failed. */ 33 | on(event: 'error', callback: (error: FileSpy.Error) => void): this 34 | 35 | on( 36 | event: 'all', 37 | callback: ( 38 | event: EventType, 39 | name: string, 40 | stats: fs.Stats | null, 41 | cwd: string 42 | ) => void 43 | ): this 44 | 45 | /** List all watched descendants of a directory. */ 46 | list(dir: string): string[] 47 | 48 | close(): Promise 49 | } 50 | 51 | export namespace FileSpy { 52 | export interface Options { 53 | /** 54 | * Emit only the files that match these Recrawl-style globs. 55 | * 56 | * https://www.npmjs.com/package/recrawl#pattern-syntax 57 | */ 58 | only?: string[] 59 | /** 60 | * Avoid emitting files and crawling directories that match 61 | * these Recrawl-style globs. 62 | * 63 | * https://www.npmjs.com/package/recrawl#pattern-syntax 64 | */ 65 | skip?: string[] 66 | /** 67 | * Choose a specific watcher backend. 68 | * 69 | * The available backends listed in priority order: 70 | * - `FSEvents` on macOS 71 | * - `Watchman` if installed 72 | * - `inotify` on Linux 73 | * - `ReadDirectoryChangesW` on Windows 74 | */ 75 | backend?: BackendType 76 | } 77 | 78 | export type Error = AccessError | UnknownError 79 | 80 | interface AccessError extends GlobalError { 81 | code: 'EACCES' 82 | path: string 83 | } 84 | 85 | interface UnknownError extends GlobalError { 86 | code?: undefined 87 | } 88 | } 89 | 90 | type GlobalError = Error 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # filespy 2 | 3 | [![npm](https://img.shields.io/npm/v/filespy.svg)](https://www.npmjs.com/package/filespy) 4 | [![ci](https://github.com/alloc/filespy/actions/workflows/release.yml/badge.svg)](https://github.com/alloc/filespy/actions/workflows/release.yml) 5 | [![codecov](https://codecov.io/gh/alloc/filespy/branch/master/graph/badge.svg)](https://codecov.io/gh/alloc/filespy) 6 | [![Bundle size](https://badgen.net/bundlephobia/min/filespy)](https://bundlephobia.com/result?p=filespy) 7 | [![Code style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) 8 | [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/alecdotbiz) 9 | 10 | > Spy on files 11 | 12 |   13 | 14 | ### Features 15 | 16 | - Emits files only 17 | - Crawls **asynchronously** before watching 18 | - Powered by `@parcel/watcher` for native performance, event throttling, and [Watchman](https://facebook.github.io/watchman/) support 19 | - Tolerates permission errors 20 | - Has powerful [pattern syntax](#pattern-syntax) 21 | - Handles renamed directories properly 22 | - Exposes the paths being watched 23 | - Exposes the paths that were skipped 24 | - Ensures file paths use forward slashes 25 | - Protects against reentrancy by using `setImmediate` before emitting 26 | - Splits up long-running listeners with `setImmediate` 27 | - Crashes if you don't handle `error` events 28 | - Waits for root directory to exist 29 | 30 |   31 | 32 | ## Usage 33 | 34 | ```ts 35 | import filespy from 'filespy' 36 | 37 | const spy = filespy(process.cwd(), { 38 | only: ['*.[jt]sx?'], 39 | skip: ['node_modules'], 40 | }).on('all', (event, file, stats, cwd) => { 41 | // "file" argument is relative to "cwd" 42 | // "stats" is from lstat call 43 | 44 | if (event == 'create') { 45 | // File created. 46 | } else if (event == 'update') { 47 | // File changed. 48 | } else { 49 | // File deleted. 50 | } 51 | }).on('error', error => { 52 | // Permission error or watcher failed. 53 | }).on('ready', () => { 54 | // Initial crawl completed. Watcher initialized. 55 | }) 56 | 57 | spy.dirs // Set of watched directories. 58 | spy.files // Sorted list of watched paths (even directories). 59 | spy.skipped // Sorted list of existing paths that were skipped. 60 | 61 | // List all watched paths within a watched directory. 62 | // Returned paths are relative to cwd. 63 | spy.list('foo/bar') 64 | 65 | // Stop watching. 66 | spy.close() 67 | ``` 68 | 69 |   70 | 71 | ## Events 72 | 73 | ```ts 74 | interface { 75 | all( 76 | event: 'create' | 'update' | 'delete', 77 | /** Path relative to cwd */ 78 | file: string, 79 | /** Equals null for "delete" events */ 80 | stats: fs.Stats | null, // https://nodejs.org/api/fs.html#fs_class_fs_stats 81 | /** The root directory */ 82 | cwd: string 83 | ): void 84 | 85 | /** Permission error or watcher failure */ 86 | error(error: Error): void 87 | 88 | /** Directory was crawled */ 89 | crawl(dir: string, cwd: string): void 90 | 91 | /** Watcher is ready */ 92 | ready(): void 93 | 94 | /** File created */ 95 | create(file: string, stats: fs.Stats, cwd: string): void 96 | 97 | /** File changed */ 98 | update(file: string, stats: fs.Stats, cwd: string): void 99 | 100 | /** File deleted */ 101 | delete(file: string, cwd: string): void 102 | } 103 | ``` 104 | 105 |   106 | 107 | ## Pattern syntax 108 | 109 | Filespy mixes globbing with regular expressions, a concept borrowed from [Recrawl](https://github.com/aleclarson/recrawl). 110 | 111 | 1. When a path has no separators (`/`), only the basename is matched. 112 | 113 | ```js 114 | '*.js' // matches 'a.js' and 'a/b.js' 115 | ``` 116 | 117 | 2. Recursivity is implicit. 118 | 119 | ```js 120 | 'a/b' // identical to '**/a/b' 121 | ``` 122 | 123 | 3. Use a leading separator to match against the root. 124 | 125 | ```js 126 | '/*.js' // matches 'a.js' not 'a/b.js' 127 | ``` 128 | 129 | 4. Use a trailing separator to match all descendants. 130 | 131 | ```js 132 | 'foo/' // matches 'foo/bar' and 'foo/bar/baz' etc 133 | ``` 134 | 135 | 5. Regular expression syntax is supported. (except dot-all) 136 | 137 | ```js 138 | '*.jsx?' // matches 'a.js' and 'b.jsx' 139 | '*.(js|ts)' // matches 'a.js' and 'b.ts' 140 | ``` 141 | 142 | 6. Recursive globbing is supported. 143 | 144 | ```js 145 | 'foo/**/bar' // matches 'foo/bar' and 'foo/a/b/c/bar' etc 146 | ``` 147 | -------------------------------------------------------------------------------- /spec/index.test.ts: -------------------------------------------------------------------------------- 1 | import { FileSpy, filespy } from 'filespy' 2 | import * as path from 'path' 3 | import { dequal } from 'dequal' 4 | import delay from 'delay' 5 | import exec = require('@cush/exec') 6 | import isWindows = require('is-windows') 7 | import fs = require('saxon/sync') 8 | 9 | const throttleDelay = process.env.CI ? 200 : 100 10 | 11 | const cwd = path.resolve(__dirname, '__fixtures__') 12 | process.chdir(cwd) 13 | 14 | let spy: FileSpy 15 | 16 | describe('filespy', () => { 17 | describe('initial crawl', () => { 18 | it('emits "create" once per file', async () => { 19 | const listener = jest.fn() 20 | spy = filespy(cwd).on('all', listener) 21 | 22 | await getReadyPromise(spy) 23 | expectEvents(listener, [ 24 | ['create', 'foo/bar.ts'], 25 | ['create', 'foo/bar/index.js'], 26 | ['create', 'foo/bar/baz/index.ts'], 27 | ]) 28 | }) 29 | 30 | it('emits "crawl" once per directory', async () => { 31 | const listener = jest.fn() 32 | spy = filespy(cwd).on('crawl', dir => { 33 | listener('crawl', dir) 34 | }) 35 | 36 | await getReadyPromise(spy) 37 | expectEvents(listener, [ 38 | ['crawl', 'foo/bar/baz'], 39 | ['crawl', 'foo/bar'], 40 | ['crawl', 'foo'], 41 | ['crawl', ''], 42 | ]) 43 | }) 44 | 45 | it('tracks directories', async () => { 46 | spy = filespy(cwd) 47 | await getReadyPromise(spy) 48 | expect(spy.dirs).toMatchInlineSnapshot(` 49 | Set { 50 | "foo", 51 | "foo/bar", 52 | "foo/bar/baz", 53 | } 54 | `) 55 | }) 56 | 57 | it('tracks skipped paths', async () => { 58 | spy = filespy(cwd, { 59 | only: ['*.ts'], 60 | skip: ['bar.ts', 'baz'], 61 | }) 62 | await getReadyPromise(spy) 63 | expect(spy.skipped).toMatchInlineSnapshot(` 64 | Array [ 65 | "foo/bar/baz", 66 | "foo/bar/index.js", 67 | "foo/bar.ts", 68 | ] 69 | `) 70 | }) 71 | }) 72 | 73 | describe('watching', () => { 74 | it('crawls new directories', async () => { 75 | spy = filespy(cwd) 76 | await getReadyPromise(spy) 77 | 78 | const listener = jest.fn() 79 | spy.on('all', listener) 80 | spy.on('crawl', dir => listener('crawl', dir)) 81 | 82 | addDir('test', ['a']) 83 | addDir('test2', []) 84 | addFile('test/b') 85 | await delay(throttleDelay) 86 | 87 | expectEvents(listener, [ 88 | ['crawl', 'test2'], 89 | ['create', 'test/a'], 90 | ['create', 'test/b'], 91 | ['crawl', 'test'], 92 | ]) 93 | }) 94 | 95 | it('crawls renamed directories', async () => { 96 | spy = filespy(cwd) 97 | await getReadyPromise(spy) 98 | addDir('test', ['a', 'b']) 99 | 100 | await delay(throttleDelay) 101 | const listener = jest.fn() 102 | spy.on('all', listener) 103 | spy.on('crawl', dir => listener('crawl', dir)) 104 | 105 | fs.rename('test', 'test2') 106 | 107 | await delay(throttleDelay) 108 | expectEvents(listener, [ 109 | ['delete', 'test/a'], 110 | ['delete', 'test/b'], 111 | ['create', 'test2/a'], 112 | ['create', 'test2/b'], 113 | ['crawl', 'test2'], 114 | ]) 115 | }) 116 | 117 | it('ignores skipped directories', async () => { 118 | spy = filespy(cwd, { skip: ['test', 'bar'] }) 119 | await getReadyPromise(spy) 120 | 121 | const listener = jest.fn() 122 | spy.on('all', listener) 123 | 124 | // Add a file whose directory was skipped *before* watcher init. 125 | addFile('foo/bar/a') 126 | 127 | // Add a skipped directory. 128 | addDir('test', ['a']) 129 | 130 | await delay(throttleDelay) 131 | expectEvents(listener, []) 132 | 133 | // Add a file whose directory was skipped *after* watcher init. 134 | addFile('test/b') 135 | 136 | await delay(throttleDelay) 137 | expectEvents(listener, []) 138 | }) 139 | 140 | it('ignores skipped files', async () => { 141 | spy = filespy(cwd, { skip: ['*.md'] }) 142 | await getReadyPromise(spy) 143 | 144 | const listener = jest.fn() 145 | spy.on('all', listener) 146 | 147 | addFile('a.md') 148 | addFile('b.js') 149 | 150 | await delay(throttleDelay) 151 | expectEvents(listener, [['create', 'b.js']]) 152 | }) 153 | 154 | describe('when skipped file is deleted', () => { 155 | it('cleans up the "skipped" array', async () => { 156 | spy = filespy(cwd, { 157 | only: ['/foo/bar/'], 158 | skip: ['*.js'], 159 | }) 160 | await getReadyPromise(spy) 161 | 162 | // Add a file skipped by "skip" globs. 163 | addFile('foo/bar/foo.js') 164 | // Add a file skipped by "only" globs. 165 | addFile('foo/index.ts') 166 | 167 | // Remove a pre-crawl file skipped by "skip" globs. 168 | fs.remove('foo/bar/index.js') 169 | // Remove a pre-crawl file skipped by "only" globs. 170 | fs.remove('foo/bar.ts') 171 | 172 | await delay(throttleDelay) 173 | 174 | // Remove post-crawl skipped files. 175 | fs.remove('foo/bar/foo.js') 176 | fs.remove('foo/index.ts') 177 | 178 | await delay(throttleDelay) 179 | 180 | expect(spy.skipped).not.toContain('foo/bar/foo.js') 181 | expect(spy.skipped).not.toContain('foo/index.ts') 182 | 183 | // Since these files were skipped on initial crawl, 184 | // we don't receive events for them, and so we can't 185 | // remove them from `skipped` when they're deleted. 186 | expect(spy.skipped).toContain('foo/bar/index.js') 187 | expect(spy.skipped).toContain('foo/bar.ts') 188 | }) 189 | }) 190 | }) 191 | 192 | describe('list method', () => { 193 | it('works with watched directory', async () => { 194 | spy = filespy(cwd) 195 | await getReadyPromise(spy) 196 | 197 | expect(spy.list('foo/bar')).toMatchInlineSnapshot(` 198 | Array [ 199 | "foo/bar/baz", 200 | "foo/bar/baz/index.ts", 201 | "foo/bar/index.js", 202 | ] 203 | `) 204 | }) 205 | 206 | it('returns empty array for skipped path', async () => { 207 | spy = filespy(cwd, { skip: ['bar'] }) 208 | await getReadyPromise(spy) 209 | 210 | expect(spy.list('foo/bar')).toEqual([]) 211 | }) 212 | 213 | it('returns empty array for non-existent path', async () => { 214 | spy = filespy(cwd) 215 | await getReadyPromise(spy) 216 | 217 | expect(spy.list('unknown')).toEqual([]) 218 | }) 219 | }) 220 | 221 | describe('close method', () => { 222 | it('can close immediately', async () => { 223 | spy = filespy(cwd) 224 | await spy.close() 225 | }) 226 | 227 | it('can close before root dir exists', done => { 228 | const onError = jest.fn() 229 | spy = filespy(path.join(cwd, 'unknown')) 230 | spy.on('error', onError) 231 | delay(10).then(() => { 232 | let closed = false 233 | Promise.race([ 234 | delay(100), 235 | spy.close().then(() => { 236 | closed = true 237 | }), 238 | ]).then(() => { 239 | expect(closed).toBeTruthy() 240 | expect(onError).not.toBeCalled() 241 | done() 242 | }) 243 | }) 244 | }) 245 | }) 246 | 247 | describe('permission errors', () => { 248 | it('tolerates them', async () => { 249 | fs.mkdir('xxx/a', 0o333) 250 | fs.mkdir('xxx/b', 0o333) 251 | 252 | const errors: FileSpy.Error[] = [] 253 | spy = filespy(cwd).on('error', e => errors.push(e)) 254 | await getReadyPromise(spy, true) 255 | 256 | // Errors do not crash the crawler. 257 | expect(spy.files.length).toBeGreaterThan(0) 258 | 259 | if (isWindows()) { 260 | // TODO: reproduce permission error on Windows 261 | return expect(errors).toEqual([]) 262 | } 263 | 264 | if (!errors.some(e => e.code)) { 265 | return expect(errors).not.toEqual(errors) 266 | } 267 | 268 | // Multiple permission errors can be emitted. 269 | expect(errors.map(e => e.code)).toMatchInlineSnapshot(` 270 | Array [ 271 | "EACCES", 272 | "EACCES", 273 | ] 274 | `) 275 | 276 | // Related files are skipped. 277 | expect(spy.skipped).toMatchInlineSnapshot(` 278 | Array [ 279 | "xxx/a", 280 | "xxx/b", 281 | ] 282 | `) 283 | }) 284 | 285 | it('removes directory from "files" and "dirs"', async () => { 286 | fs.mkdir('xxx', 0o333) 287 | 288 | spy = filespy(cwd) 289 | await getReadyPromise(spy, true) 290 | 291 | expect(spy.files).not.toContain('xxx') 292 | expect(spy.dirs).not.toContain('xxx') 293 | }) 294 | }) 295 | }) 296 | 297 | afterEach(async () => { 298 | await spy?.close() 299 | exec.sync('git clean -df __fixtures__', { cwd: __dirname }) 300 | exec.sync('git checkout HEAD __fixtures__', { cwd: __dirname }) 301 | return delay(throttleDelay) 302 | }) 303 | 304 | function addDir(dir: string, children: string[], mode?: number) { 305 | fs.mkdir(dir, mode) 306 | children.forEach(file => { 307 | fs.write(path.join(dir, file), '') 308 | }) 309 | } 310 | 311 | function addFile(file: string) { 312 | fs.write(file, '') 313 | } 314 | 315 | function getReadyPromise(spy: FileSpy, skipErrors?: boolean) { 316 | return new Promise((resolve, reject) => { 317 | spy.on('ready', resolve) 318 | skipErrors || spy.on('error', reject) 319 | }) 320 | } 321 | 322 | function getEvents(mock: jest.Mock) { 323 | const events = mock.mock.calls.map(call => [...call].slice(0, 2)) 324 | mock.mockClear() 325 | return events 326 | } 327 | 328 | function expectEvents(mock: jest.Mock, expected: any[]) { 329 | const actual = getEvents(mock) 330 | expect(actual).toEqual(resolveExpectedEvents(actual, expected)) 331 | } 332 | 333 | // Order-agnostic deep value matching 334 | function resolveExpectedEvents([...actual]: any[], expected: any[]) { 335 | const matched: any[] = [] 336 | const unmatched: any[] = [] 337 | 338 | // This symbol ensures values are never matched twice. 339 | const skip = Symbol() 340 | 341 | for (let i = 0; i < expected.length; i++) { 342 | const matchIndex = actual.findIndex(value => { 343 | return dequal(expected[i], value) 344 | }) 345 | if (matchIndex >= 0) { 346 | matched[matchIndex] = actual[matchIndex] 347 | actual[matchIndex] = skip 348 | } else { 349 | unmatched.push(expected[i]) 350 | } 351 | } 352 | 353 | return matched.concat(unmatched) 354 | } 355 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { 2 | subscribe as watch, 3 | AsyncSubscription as Watcher, 4 | Event, 5 | } from '@parcel/watcher' 6 | import { waitForPath, WaitForPathResult } from 'wait-for-path' 7 | import { dirname, resolve } from 'path' 8 | import { EventEmitter } from 'events' 9 | import { binaryInsert } from 'binary-insert' 10 | import assert = require('assert') 11 | import slash = require('slash') 12 | import * as fs from 'fs' 13 | import { createMatcher } from './glob' 14 | import { sortPaths } from './sortPaths' 15 | import type { FileSpy } from './types' 16 | 17 | const fsp = fs.promises 18 | const { S_IFMT, S_IFDIR } = fs.constants 19 | 20 | const alwaysTrue = () => true 21 | const alwaysFalse = () => false 22 | 23 | const CREATE = 'create' 24 | const UPDATE = 'update' 25 | const DELETE = 'delete' 26 | 27 | export { FileSpy } 28 | 29 | export function filespy(cwd: string, opts: FileSpy.Options = {}): FileSpy { 30 | cwd = slash(resolve(cwd)).replace(/\/$/, '') 31 | 32 | const only = createMatcher(opts.only) || alwaysTrue 33 | const skip = createMatcher(opts.skip) || alwaysFalse 34 | const dirs = new Set() 35 | const files: string[] = [] 36 | const skipped: string[] = [] 37 | const emitter = new EventEmitter() 38 | const emit = wrapEmit((event, args) => { 39 | emitter.emit(event, ...args) 40 | if (event == CREATE || event == UPDATE || event == DELETE) { 41 | event == DELETE && args.splice(1, 0, null) 42 | emitter.emit('all', event, ...args) 43 | } 44 | }) 45 | 46 | let closed = false 47 | let waiting: WaitForPathResult | undefined 48 | let watching: Promise | undefined 49 | 50 | // Wait for listeners to be attached. 51 | setImmediate(() => { 52 | if (closed) return 53 | waiting = waitForPath(cwd) 54 | waiting 55 | .then(() => { 56 | watching = crawl('').then(async () => { 57 | if (closed) return 58 | const watcher = await watch(cwd, processEvents, { 59 | backend: opts.backend, 60 | ignore: skipped, 61 | }) 62 | 63 | emit('ready') 64 | return watcher 65 | }) 66 | return watching 67 | }) 68 | .catch(onError) 69 | }) 70 | 71 | function onError(err: FileSpy.Error) { 72 | if (err.code == 'EACCES') { 73 | const file = err.path.slice(cwd.length + 1) 74 | addSkipped(file) 75 | if (dirs.has(file)) { 76 | removeDir(file) 77 | } 78 | } 79 | emit('error', err) 80 | return undefined 81 | } 82 | 83 | // Promise may reject for permission error. 84 | async function crawl(dir: string): Promise { 85 | const children = await fsp.readdir(join(cwd, dir)) 86 | await Promise.all( 87 | children.map(name => { 88 | const file = join(dir, name) 89 | return skip(file, name) 90 | ? addSkipped(file) 91 | : addPath(file, name).catch(onError) 92 | }) 93 | ) 94 | emit('crawl', dir, cwd) 95 | } 96 | 97 | // Promise may reject for permission error. 98 | async function addPath(file: string, name?: string) { 99 | const stats = await fsp.lstat(join(cwd, file)) 100 | if ((stats.mode & S_IFMT) == S_IFDIR) { 101 | return addDir(file) 102 | } 103 | if (only(file, name)) { 104 | addFile(file, stats) 105 | } else { 106 | addSkipped(file) 107 | } 108 | } 109 | 110 | // Returns true for directories. 111 | function addPathSync(file: string) { 112 | // Protect against permission errors. 113 | try { 114 | const stats = fs.lstatSync(join(cwd, file)) 115 | if ((stats.mode & S_IFMT) == S_IFDIR) { 116 | return true 117 | } 118 | if (only(file)) { 119 | addFile(file, stats) 120 | } else { 121 | addSkipped(file) 122 | } 123 | } catch (err) { 124 | onError(err) 125 | } 126 | } 127 | 128 | function addFile(file: string, stats: fs.Stats) { 129 | binaryInsert(files, file, sortPaths) 130 | emit(CREATE, file, stats, cwd) 131 | } 132 | 133 | // Promise may reject for permission error. 134 | function addDir(dir: string) { 135 | dirs.add(dir) 136 | binaryInsert(files, dir, sortPaths) 137 | return crawl(dir) 138 | } 139 | 140 | function removeDir(dir: string) { 141 | const fromIndex = files.indexOf(dir) 142 | assert(fromIndex >= 0) 143 | 144 | let i = fromIndex 145 | while (++i < files.length) { 146 | const file = files[i] 147 | if (!isDescendant(file, dir)) { 148 | break 149 | } 150 | emit(DELETE, file, cwd) 151 | } 152 | 153 | files.splice(fromIndex, i - fromIndex) 154 | dirs.delete(dir) 155 | } 156 | 157 | function addSkipped(path: string) { 158 | binaryInsert(skipped, path, sortPaths) 159 | } 160 | 161 | function removeSkipped(path: string, recursive?: boolean) { 162 | const fromIndex = skipped.indexOf(path) 163 | if (fromIndex >= 0) { 164 | let i = fromIndex 165 | if (recursive) 166 | while (++i < skipped.length && isDescendant(skipped[i], path)) {} 167 | else i++ 168 | 169 | skipped.splice(fromIndex, i - fromIndex) 170 | } 171 | } 172 | 173 | function processEvents(err: Error | null, events: Event[]) { 174 | if (err) { 175 | return onError(err) 176 | } 177 | const dirQueue = new Set() 178 | eventLoop: for (let i = 0; i < events.length; i++) { 179 | const { type, path } = events[i] 180 | const file = slash(path).slice(cwd.length + 1) 181 | if (skip(file)) { 182 | // If the file's directory was skipped *after* the watcher was created, 183 | // the file still gets added to `skipped` but it's whatever. 184 | if (type == CREATE) { 185 | addSkipped(file) 186 | } else if (type == DELETE) { 187 | removeSkipped(file, true) 188 | } 189 | // The watcher ensures that events for descendants 190 | // of a directory come right after it. 191 | while (i + 1 < events.length) { 192 | if (isDescendant(events[i + 1].path, path)) { 193 | i += 1 // Skip this event since its directory got skipped. 194 | } else break 195 | } 196 | continue 197 | } 198 | let stats: fs.Stats | null = null 199 | if (type == CREATE) { 200 | let dir = dirname(file) 201 | if (dir == '.' || dirs.has(dir)) { 202 | if (addPathSync(file)) { 203 | // Crawl after events are processed. 204 | dirQueue.add((dir = file)) 205 | 206 | // The watcher ensures that events for descendants of 207 | // this directory come right after it. 208 | while (i + 1 < events.length) { 209 | if (isDescendant(events[i + 1].path, path)) { 210 | i += 1 // Skip this event since its directory will be crawled. 211 | } else break 212 | } 213 | } 214 | } else { 215 | // Find the furthest ancestor not yet crawled. 216 | while (true) { 217 | if (skip(dir)) { 218 | continue eventLoop 219 | } 220 | const ancestor = dirname(dir) 221 | if (ancestor == '.' || dirs.has(ancestor)) break 222 | dir = ancestor 223 | } 224 | // Crawl after events are processed. 225 | dirQueue.add(dir) 226 | } 227 | } else if (dirs.has(file)) { 228 | if (type == DELETE) { 229 | removeDir(file) 230 | } 231 | } else if (only(file)) { 232 | if (type == UPDATE) { 233 | // Protect against permission errors. 234 | try { 235 | stats = fs.lstatSync(path) 236 | } catch (err) { 237 | onError(err) 238 | continue 239 | } 240 | emit(UPDATE, file, stats, cwd) 241 | } else { 242 | emit(DELETE, file, cwd) 243 | } 244 | } else if (type == DELETE) { 245 | removeSkipped(file) 246 | } 247 | } 248 | return Promise.all( 249 | Array.from(dirQueue, dir => { 250 | return addDir(dir).catch(onError) 251 | }) 252 | ) 253 | } 254 | 255 | return { 256 | cwd, 257 | dirs, 258 | files, 259 | skipped, 260 | on(event: string, callback: any) { 261 | emitter.on(event, callback) 262 | return this 263 | }, 264 | list(dir) { 265 | const fromIndex = files.indexOf(dir) + 1 266 | if (fromIndex > 0) { 267 | let i = fromIndex 268 | while (i < files.length && isDescendant(files[i], dir)) { 269 | i += 1 270 | } 271 | return files.slice(fromIndex, i) 272 | } 273 | return [] 274 | }, 275 | async close() { 276 | closed = true 277 | waiting?.close() 278 | return watching?.then(watcher => { 279 | watcher?.unsubscribe() 280 | }) 281 | }, 282 | } 283 | } 284 | 285 | function isDescendant(file: string, dir: string) { 286 | return file[dir.length] == '/' && dir == file.slice(0, dir.length) 287 | } 288 | 289 | function join(parent: string, child: string) { 290 | return parent ? parent + '/' + child : child 291 | } 292 | 293 | type QueuedEmit = [event: string, args: any[]] | null 294 | 295 | function wrapEmit(emitSync: (event: string, args: any[]) => void) { 296 | // Skip event filtering during the initial crawl. 297 | let crawling = true 298 | 299 | // Pretend to be processing until the "ready" event. 300 | let processing = true 301 | 302 | // The queue is reset whenever fully processed. 303 | let queue: QueuedEmit[] = [] 304 | 305 | return (event: string, ...args: any[]) => { 306 | // Ensure fatal errors are processed synchronously. 307 | if (event == 'error' && args[0].code != 'EACCES') { 308 | return emitSync(event, args) 309 | } 310 | 311 | const [file, stats, cwd] = args 312 | if (!crawling) { 313 | // Try to cancel out a "delete" event. 314 | if (event == CREATE) { 315 | const index = queue.findIndex( 316 | e => e && e[0] == DELETE && e[1][0] == file 317 | ) 318 | if (~index) { 319 | queue[index] = null 320 | event = UPDATE 321 | args = [file, stats, cwd] 322 | } 323 | } 324 | 325 | // Try to update a "create" or "update" event. 326 | else if (event == UPDATE) { 327 | const index = queue.findIndex( 328 | e => e && (e[0] == CREATE || e[0] == UPDATE) && e[1][0] == file 329 | ) 330 | if (~index) { 331 | queue[index]![1][1] = stats 332 | return 333 | } 334 | } 335 | 336 | // Try to cancel out a "create" or "update" event. 337 | else if (event == DELETE) { 338 | const index = queue.findIndex( 339 | e => e && (e[0] == CREATE || e[0] == UPDATE) && e[1][0] == file 340 | ) 341 | if (~index) { 342 | const [event] = queue[index]! 343 | queue[index] = null 344 | if (event == CREATE) { 345 | return // Skip "delete" event since "create" was never handled. 346 | } 347 | } 348 | } 349 | 350 | // Process crawl events now that the watcher is ready. 351 | else if (event == 'ready') { 352 | processing = false 353 | } 354 | } 355 | 356 | // Enable event filtering once the root directory is crawled. 357 | else if (event == 'crawl') { 358 | if (!file) { 359 | crawling = false 360 | } 361 | } 362 | 363 | // Listeners may be blocking us, or the watcher is initializing. 364 | queue.push([event, args]) 365 | if (!processing) { 366 | processing = true 367 | setImmediate(() => { 368 | processEmits(0) 369 | }) 370 | } 371 | } 372 | 373 | function processEmits(i: number) { 374 | let elapsed = 0 375 | for (let e: QueuedEmit; i < queue.length && elapsed < 100; i++) { 376 | if ((e = queue[i])) { 377 | queue[i] = null 378 | const start = Date.now() 379 | try { 380 | emitSync(...e) 381 | } catch (e) { 382 | process.emit('uncaughtException', e) 383 | } 384 | elapsed += Date.now() - start 385 | } 386 | } 387 | if (i < queue.length) { 388 | setImmediate(() => { 389 | processEmits(i) 390 | }) 391 | } else { 392 | queue = [] 393 | processing = false 394 | } 395 | } 396 | } 397 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | '@parcel/watcher': 2.0.0-alpha.10 3 | binary-insert: 1.2.1 4 | glob-regex: 0.3.2 5 | slash: 3.0.0 6 | devDependencies: 7 | '@alloc/prettier-config': 1.0.0 8 | '@cush/exec': 1.7.1 9 | '@rollup/plugin-node-resolve': 11.2.0_rollup@2.41.2 10 | '@types/is-windows': 1.0.0 11 | '@types/jest': 26.0.20 12 | delay: 5.0.0 13 | dequal: 2.0.2 14 | esbuild: 0.8.57 15 | esbuild-jest: /@alloc/esbuild-jest/0.3.5_esbuild@0.8.57 16 | filespy: 'link:' 17 | indo: 0.3.42 18 | is-windows: 1.0.2 19 | jest: 26.6.3 20 | prettier: 2.2.1 21 | rollup: 2.41.2 22 | rollup-plugin-dts: 2.0.1_rollup@2.41.2+typescript@4.2.3 23 | rollup-plugin-esbuild: 2.6.1_esbuild@0.8.57+rollup@2.41.2 24 | saxon: 0.2.11 25 | typescript: 4.2.3 26 | wait-for-path: 0.1.1 27 | lockfileVersion: 5.2 28 | packages: 29 | /@alloc/esbuild-jest/0.3.5_esbuild@0.8.57: 30 | dependencies: 31 | esbuild: 0.8.57 32 | dev: true 33 | peerDependencies: 34 | esbuild: '>=0.8.31' 35 | resolution: 36 | integrity: sha512-Wz9Jdb/J7YYbt9ANNOMyZCqHa90zNbjWqetKJsOtID8vfyK7r8xLBLCBMZYoAitTY5GobPlebSd+5uNinpZfrQ== 37 | /@alloc/prettier-config/1.0.0: 38 | dev: true 39 | resolution: 40 | integrity: sha512-xm50V1qxSdTh1O1fKA+gqcU605YSnxfq6HwtYSFU3fRsKMFnUSuSOxqSAPI7y2sRxqPed2EIuGmNn107LVQM6g== 41 | /@babel/code-frame/7.12.13: 42 | dependencies: 43 | '@babel/highlight': 7.13.10 44 | dev: true 45 | resolution: 46 | integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== 47 | /@babel/compat-data/7.13.11: 48 | dev: true 49 | resolution: 50 | integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== 51 | /@babel/core/7.13.10: 52 | dependencies: 53 | '@babel/code-frame': 7.12.13 54 | '@babel/generator': 7.13.9 55 | '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 56 | '@babel/helper-module-transforms': 7.13.0 57 | '@babel/helpers': 7.13.10 58 | '@babel/parser': 7.13.11 59 | '@babel/template': 7.12.13 60 | '@babel/traverse': 7.13.0 61 | '@babel/types': 7.13.0 62 | convert-source-map: 1.7.0 63 | debug: 4.3.1 64 | gensync: 1.0.0-beta.2 65 | json5: 2.2.0 66 | lodash: 4.17.21 67 | semver: 6.3.0 68 | source-map: 0.5.7 69 | dev: true 70 | engines: 71 | node: '>=6.9.0' 72 | resolution: 73 | integrity: sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== 74 | /@babel/generator/7.13.9: 75 | dependencies: 76 | '@babel/types': 7.13.0 77 | jsesc: 2.5.2 78 | source-map: 0.5.7 79 | dev: true 80 | resolution: 81 | integrity: sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== 82 | /@babel/helper-compilation-targets/7.13.10_@babel+core@7.13.10: 83 | dependencies: 84 | '@babel/compat-data': 7.13.11 85 | '@babel/core': 7.13.10 86 | '@babel/helper-validator-option': 7.12.17 87 | browserslist: 4.16.3 88 | semver: 6.3.0 89 | dev: true 90 | peerDependencies: 91 | '@babel/core': ^7.0.0 92 | resolution: 93 | integrity: sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== 94 | /@babel/helper-function-name/7.12.13: 95 | dependencies: 96 | '@babel/helper-get-function-arity': 7.12.13 97 | '@babel/template': 7.12.13 98 | '@babel/types': 7.13.0 99 | dev: true 100 | resolution: 101 | integrity: sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== 102 | /@babel/helper-get-function-arity/7.12.13: 103 | dependencies: 104 | '@babel/types': 7.13.0 105 | dev: true 106 | resolution: 107 | integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== 108 | /@babel/helper-member-expression-to-functions/7.13.0: 109 | dependencies: 110 | '@babel/types': 7.13.0 111 | dev: true 112 | resolution: 113 | integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== 114 | /@babel/helper-module-imports/7.12.13: 115 | dependencies: 116 | '@babel/types': 7.13.0 117 | dev: true 118 | resolution: 119 | integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== 120 | /@babel/helper-module-transforms/7.13.0: 121 | dependencies: 122 | '@babel/helper-module-imports': 7.12.13 123 | '@babel/helper-replace-supers': 7.13.0 124 | '@babel/helper-simple-access': 7.12.13 125 | '@babel/helper-split-export-declaration': 7.12.13 126 | '@babel/helper-validator-identifier': 7.12.11 127 | '@babel/template': 7.12.13 128 | '@babel/traverse': 7.13.0 129 | '@babel/types': 7.13.0 130 | lodash: 4.17.21 131 | dev: true 132 | resolution: 133 | integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== 134 | /@babel/helper-optimise-call-expression/7.12.13: 135 | dependencies: 136 | '@babel/types': 7.13.0 137 | dev: true 138 | resolution: 139 | integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== 140 | /@babel/helper-plugin-utils/7.13.0: 141 | dev: true 142 | resolution: 143 | integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== 144 | /@babel/helper-replace-supers/7.13.0: 145 | dependencies: 146 | '@babel/helper-member-expression-to-functions': 7.13.0 147 | '@babel/helper-optimise-call-expression': 7.12.13 148 | '@babel/traverse': 7.13.0 149 | '@babel/types': 7.13.0 150 | dev: true 151 | resolution: 152 | integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== 153 | /@babel/helper-simple-access/7.12.13: 154 | dependencies: 155 | '@babel/types': 7.13.0 156 | dev: true 157 | resolution: 158 | integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== 159 | /@babel/helper-split-export-declaration/7.12.13: 160 | dependencies: 161 | '@babel/types': 7.13.0 162 | dev: true 163 | resolution: 164 | integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== 165 | /@babel/helper-validator-identifier/7.12.11: 166 | dev: true 167 | resolution: 168 | integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 169 | /@babel/helper-validator-option/7.12.17: 170 | dev: true 171 | resolution: 172 | integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== 173 | /@babel/helpers/7.13.10: 174 | dependencies: 175 | '@babel/template': 7.12.13 176 | '@babel/traverse': 7.13.0 177 | '@babel/types': 7.13.0 178 | dev: true 179 | resolution: 180 | integrity: sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== 181 | /@babel/highlight/7.13.10: 182 | dependencies: 183 | '@babel/helper-validator-identifier': 7.12.11 184 | chalk: 2.4.2 185 | js-tokens: 4.0.0 186 | dev: true 187 | resolution: 188 | integrity: sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== 189 | /@babel/parser/7.13.11: 190 | dev: true 191 | engines: 192 | node: '>=6.0.0' 193 | hasBin: true 194 | resolution: 195 | integrity: sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== 196 | /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.13.10: 197 | dependencies: 198 | '@babel/core': 7.13.10 199 | '@babel/helper-plugin-utils': 7.13.0 200 | dev: true 201 | peerDependencies: 202 | '@babel/core': ^7.0.0-0 203 | resolution: 204 | integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 205 | /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.13.10: 206 | dependencies: 207 | '@babel/core': 7.13.10 208 | '@babel/helper-plugin-utils': 7.13.0 209 | dev: true 210 | peerDependencies: 211 | '@babel/core': ^7.0.0-0 212 | resolution: 213 | integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== 214 | /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.13.10: 215 | dependencies: 216 | '@babel/core': 7.13.10 217 | '@babel/helper-plugin-utils': 7.13.0 218 | dev: true 219 | peerDependencies: 220 | '@babel/core': ^7.0.0-0 221 | resolution: 222 | integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 223 | /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.13.10: 224 | dependencies: 225 | '@babel/core': 7.13.10 226 | '@babel/helper-plugin-utils': 7.13.0 227 | dev: true 228 | peerDependencies: 229 | '@babel/core': ^7.0.0-0 230 | resolution: 231 | integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 232 | /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.13.10: 233 | dependencies: 234 | '@babel/core': 7.13.10 235 | '@babel/helper-plugin-utils': 7.13.0 236 | dev: true 237 | peerDependencies: 238 | '@babel/core': ^7.0.0-0 239 | resolution: 240 | integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 241 | /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.13.10: 242 | dependencies: 243 | '@babel/core': 7.13.10 244 | '@babel/helper-plugin-utils': 7.13.0 245 | dev: true 246 | peerDependencies: 247 | '@babel/core': ^7.0.0-0 248 | resolution: 249 | integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 250 | /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.13.10: 251 | dependencies: 252 | '@babel/core': 7.13.10 253 | '@babel/helper-plugin-utils': 7.13.0 254 | dev: true 255 | peerDependencies: 256 | '@babel/core': ^7.0.0-0 257 | resolution: 258 | integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 259 | /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.13.10: 260 | dependencies: 261 | '@babel/core': 7.13.10 262 | '@babel/helper-plugin-utils': 7.13.0 263 | dev: true 264 | peerDependencies: 265 | '@babel/core': ^7.0.0-0 266 | resolution: 267 | integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 268 | /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.13.10: 269 | dependencies: 270 | '@babel/core': 7.13.10 271 | '@babel/helper-plugin-utils': 7.13.0 272 | dev: true 273 | peerDependencies: 274 | '@babel/core': ^7.0.0-0 275 | resolution: 276 | integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 277 | /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.13.10: 278 | dependencies: 279 | '@babel/core': 7.13.10 280 | '@babel/helper-plugin-utils': 7.13.0 281 | dev: true 282 | peerDependencies: 283 | '@babel/core': ^7.0.0-0 284 | resolution: 285 | integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 286 | /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.13.10: 287 | dependencies: 288 | '@babel/core': 7.13.10 289 | '@babel/helper-plugin-utils': 7.13.0 290 | dev: true 291 | peerDependencies: 292 | '@babel/core': ^7.0.0-0 293 | resolution: 294 | integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 295 | /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.13.10: 296 | dependencies: 297 | '@babel/core': 7.13.10 298 | '@babel/helper-plugin-utils': 7.13.0 299 | dev: true 300 | peerDependencies: 301 | '@babel/core': ^7.0.0-0 302 | resolution: 303 | integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== 304 | /@babel/template/7.12.13: 305 | dependencies: 306 | '@babel/code-frame': 7.12.13 307 | '@babel/parser': 7.13.11 308 | '@babel/types': 7.13.0 309 | dev: true 310 | resolution: 311 | integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== 312 | /@babel/traverse/7.13.0: 313 | dependencies: 314 | '@babel/code-frame': 7.12.13 315 | '@babel/generator': 7.13.9 316 | '@babel/helper-function-name': 7.12.13 317 | '@babel/helper-split-export-declaration': 7.12.13 318 | '@babel/parser': 7.13.11 319 | '@babel/types': 7.13.0 320 | debug: 4.3.1 321 | globals: 11.12.0 322 | lodash: 4.17.21 323 | dev: true 324 | resolution: 325 | integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== 326 | /@babel/types/7.13.0: 327 | dependencies: 328 | '@babel/helper-validator-identifier': 7.12.11 329 | lodash: 4.17.21 330 | to-fast-properties: 2.0.0 331 | dev: true 332 | resolution: 333 | integrity: sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== 334 | /@bcoe/v8-coverage/0.2.3: 335 | dev: true 336 | resolution: 337 | integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== 338 | /@cnakazawa/watch/1.0.4: 339 | dependencies: 340 | exec-sh: 0.3.4 341 | minimist: 1.2.5 342 | dev: true 343 | engines: 344 | node: '>=0.1.95' 345 | hasBin: true 346 | resolution: 347 | integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== 348 | /@cush/exec/1.7.1: 349 | dependencies: 350 | shell-quote: 1.7.2 351 | type-error: 1.0.3 352 | dev: true 353 | resolution: 354 | integrity: sha512-VhUZ39FqmWhXqMiKKsV1XzcNt0jTnc/vYYCn1TYHttrW1QGYWweD+f7MlgPABfLsAQDhYLVTvOjPdfY+1o0nsA== 355 | /@cush/relative/0.1.0: 356 | dev: true 357 | resolution: 358 | integrity: sha512-pnF2c2hhHyC520CmYYKq3hGOS0kipkGBgRnp3z7wx7lDzykaUwQW3wPQmiX9YtbHUcgUu1qQtzstixmeYMwQoA== 359 | /@istanbuljs/load-nyc-config/1.1.0: 360 | dependencies: 361 | camelcase: 5.3.1 362 | find-up: 4.1.0 363 | get-package-type: 0.1.0 364 | js-yaml: 3.14.1 365 | resolve-from: 5.0.0 366 | dev: true 367 | engines: 368 | node: '>=8' 369 | resolution: 370 | integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== 371 | /@istanbuljs/schema/0.1.3: 372 | dev: true 373 | engines: 374 | node: '>=8' 375 | resolution: 376 | integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 377 | /@jest/console/26.6.2: 378 | dependencies: 379 | '@jest/types': 26.6.2 380 | '@types/node': 14.14.34 381 | chalk: 4.1.0 382 | jest-message-util: 26.6.2 383 | jest-util: 26.6.2 384 | slash: 3.0.0 385 | dev: true 386 | engines: 387 | node: '>= 10.14.2' 388 | resolution: 389 | integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== 390 | /@jest/core/26.6.3: 391 | dependencies: 392 | '@jest/console': 26.6.2 393 | '@jest/reporters': 26.6.2 394 | '@jest/test-result': 26.6.2 395 | '@jest/transform': 26.6.2 396 | '@jest/types': 26.6.2 397 | '@types/node': 14.14.34 398 | ansi-escapes: 4.3.1 399 | chalk: 4.1.0 400 | exit: 0.1.2 401 | graceful-fs: 4.2.6 402 | jest-changed-files: 26.6.2 403 | jest-config: 26.6.3 404 | jest-haste-map: 26.6.2 405 | jest-message-util: 26.6.2 406 | jest-regex-util: 26.0.0 407 | jest-resolve: 26.6.2 408 | jest-resolve-dependencies: 26.6.3 409 | jest-runner: 26.6.3 410 | jest-runtime: 26.6.3 411 | jest-snapshot: 26.6.2 412 | jest-util: 26.6.2 413 | jest-validate: 26.6.2 414 | jest-watcher: 26.6.2 415 | micromatch: 4.0.2 416 | p-each-series: 2.2.0 417 | rimraf: 3.0.2 418 | slash: 3.0.0 419 | strip-ansi: 6.0.0 420 | dev: true 421 | engines: 422 | node: '>= 10.14.2' 423 | resolution: 424 | integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== 425 | /@jest/environment/26.6.2: 426 | dependencies: 427 | '@jest/fake-timers': 26.6.2 428 | '@jest/types': 26.6.2 429 | '@types/node': 14.14.34 430 | jest-mock: 26.6.2 431 | dev: true 432 | engines: 433 | node: '>= 10.14.2' 434 | resolution: 435 | integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== 436 | /@jest/fake-timers/26.6.2: 437 | dependencies: 438 | '@jest/types': 26.6.2 439 | '@sinonjs/fake-timers': 6.0.1 440 | '@types/node': 14.14.34 441 | jest-message-util: 26.6.2 442 | jest-mock: 26.6.2 443 | jest-util: 26.6.2 444 | dev: true 445 | engines: 446 | node: '>= 10.14.2' 447 | resolution: 448 | integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== 449 | /@jest/globals/26.6.2: 450 | dependencies: 451 | '@jest/environment': 26.6.2 452 | '@jest/types': 26.6.2 453 | expect: 26.6.2 454 | dev: true 455 | engines: 456 | node: '>= 10.14.2' 457 | resolution: 458 | integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== 459 | /@jest/reporters/26.6.2: 460 | dependencies: 461 | '@bcoe/v8-coverage': 0.2.3 462 | '@jest/console': 26.6.2 463 | '@jest/test-result': 26.6.2 464 | '@jest/transform': 26.6.2 465 | '@jest/types': 26.6.2 466 | chalk: 4.1.0 467 | collect-v8-coverage: 1.0.1 468 | exit: 0.1.2 469 | glob: 7.1.6 470 | graceful-fs: 4.2.6 471 | istanbul-lib-coverage: 3.0.0 472 | istanbul-lib-instrument: 4.0.3 473 | istanbul-lib-report: 3.0.0 474 | istanbul-lib-source-maps: 4.0.0 475 | istanbul-reports: 3.0.2 476 | jest-haste-map: 26.6.2 477 | jest-resolve: 26.6.2 478 | jest-util: 26.6.2 479 | jest-worker: 26.6.2 480 | slash: 3.0.0 481 | source-map: 0.6.1 482 | string-length: 4.0.1 483 | terminal-link: 2.1.1 484 | v8-to-istanbul: 7.1.0 485 | dev: true 486 | engines: 487 | node: '>= 10.14.2' 488 | optionalDependencies: 489 | node-notifier: 8.0.2 490 | resolution: 491 | integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== 492 | /@jest/source-map/26.6.2: 493 | dependencies: 494 | callsites: 3.1.0 495 | graceful-fs: 4.2.6 496 | source-map: 0.6.1 497 | dev: true 498 | engines: 499 | node: '>= 10.14.2' 500 | resolution: 501 | integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== 502 | /@jest/test-result/26.6.2: 503 | dependencies: 504 | '@jest/console': 26.6.2 505 | '@jest/types': 26.6.2 506 | '@types/istanbul-lib-coverage': 2.0.3 507 | collect-v8-coverage: 1.0.1 508 | dev: true 509 | engines: 510 | node: '>= 10.14.2' 511 | resolution: 512 | integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== 513 | /@jest/test-sequencer/26.6.3: 514 | dependencies: 515 | '@jest/test-result': 26.6.2 516 | graceful-fs: 4.2.6 517 | jest-haste-map: 26.6.2 518 | jest-runner: 26.6.3 519 | jest-runtime: 26.6.3 520 | dev: true 521 | engines: 522 | node: '>= 10.14.2' 523 | resolution: 524 | integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== 525 | /@jest/transform/26.6.2: 526 | dependencies: 527 | '@babel/core': 7.13.10 528 | '@jest/types': 26.6.2 529 | babel-plugin-istanbul: 6.0.0 530 | chalk: 4.1.0 531 | convert-source-map: 1.7.0 532 | fast-json-stable-stringify: 2.1.0 533 | graceful-fs: 4.2.6 534 | jest-haste-map: 26.6.2 535 | jest-regex-util: 26.0.0 536 | jest-util: 26.6.2 537 | micromatch: 4.0.2 538 | pirates: 4.0.1 539 | slash: 3.0.0 540 | source-map: 0.6.1 541 | write-file-atomic: 3.0.3 542 | dev: true 543 | engines: 544 | node: '>= 10.14.2' 545 | resolution: 546 | integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== 547 | /@jest/types/26.6.2: 548 | dependencies: 549 | '@types/istanbul-lib-coverage': 2.0.3 550 | '@types/istanbul-reports': 3.0.0 551 | '@types/node': 14.14.35 552 | '@types/yargs': 15.0.13 553 | chalk: 4.1.0 554 | dev: true 555 | engines: 556 | node: '>= 10.14.2' 557 | resolution: 558 | integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== 559 | /@parcel/watcher/2.0.0-alpha.10: 560 | dependencies: 561 | node-addon-api: 3.1.0 562 | node-gyp-build: 4.2.3 563 | dev: false 564 | engines: 565 | node: '>= 10.0.0' 566 | requiresBuild: true 567 | resolution: 568 | integrity: sha512-8uA7Tmx/1XvmUdGzksg0+oN7uj24pXFFnKJqZr3L3mgYjdrL7CMs3PRIHv1k3LUz/hNRsb/p3qxztSkWz1IGZA== 569 | /@rollup/plugin-node-resolve/11.2.0_rollup@2.41.2: 570 | dependencies: 571 | '@rollup/pluginutils': 3.1.0_rollup@2.41.2 572 | '@types/resolve': 1.17.1 573 | builtin-modules: 3.2.0 574 | deepmerge: 4.2.2 575 | is-module: 1.0.0 576 | resolve: 1.20.0 577 | rollup: 2.41.2 578 | dev: true 579 | engines: 580 | node: '>= 10.0.0' 581 | peerDependencies: 582 | rollup: ^1.20.0||^2.0.0 583 | resolution: 584 | integrity: sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA== 585 | /@rollup/pluginutils/3.1.0_rollup@2.41.2: 586 | dependencies: 587 | '@types/estree': 0.0.39 588 | estree-walker: 1.0.1 589 | picomatch: 2.2.2 590 | rollup: 2.41.2 591 | dev: true 592 | engines: 593 | node: '>= 8.0.0' 594 | peerDependencies: 595 | rollup: ^1.20.0||^2.0.0 596 | resolution: 597 | integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 598 | /@rollup/pluginutils/4.1.0_rollup@2.41.2: 599 | dependencies: 600 | estree-walker: 2.0.2 601 | picomatch: 2.2.2 602 | rollup: 2.41.2 603 | dev: true 604 | engines: 605 | node: '>= 8.0.0' 606 | peerDependencies: 607 | rollup: ^1.20.0||^2.0.0 608 | resolution: 609 | integrity: sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== 610 | /@sinonjs/commons/1.8.2: 611 | dependencies: 612 | type-detect: 4.0.8 613 | dev: true 614 | resolution: 615 | integrity: sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== 616 | /@sinonjs/fake-timers/6.0.1: 617 | dependencies: 618 | '@sinonjs/commons': 1.8.2 619 | dev: true 620 | resolution: 621 | integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== 622 | /@types/babel__core/7.1.12: 623 | dependencies: 624 | '@babel/parser': 7.13.11 625 | '@babel/types': 7.13.0 626 | '@types/babel__generator': 7.6.2 627 | '@types/babel__template': 7.4.0 628 | '@types/babel__traverse': 7.11.1 629 | dev: true 630 | resolution: 631 | integrity: sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== 632 | /@types/babel__generator/7.6.2: 633 | dependencies: 634 | '@babel/types': 7.13.0 635 | dev: true 636 | resolution: 637 | integrity: sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== 638 | /@types/babel__template/7.4.0: 639 | dependencies: 640 | '@babel/parser': 7.13.11 641 | '@babel/types': 7.13.0 642 | dev: true 643 | resolution: 644 | integrity: sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== 645 | /@types/babel__traverse/7.11.1: 646 | dependencies: 647 | '@babel/types': 7.13.0 648 | dev: true 649 | resolution: 650 | integrity: sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== 651 | /@types/estree/0.0.39: 652 | dev: true 653 | resolution: 654 | integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 655 | /@types/graceful-fs/4.1.5: 656 | dependencies: 657 | '@types/node': 14.14.34 658 | dev: true 659 | resolution: 660 | integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== 661 | /@types/is-windows/1.0.0: 662 | dev: true 663 | resolution: 664 | integrity: sha512-tJ1rq04tGKuIJoWIH0Gyuwv4RQ3+tIu7wQrC0MV47raQ44kIzXSSFKfrxFUOWVRvesoF7mrTqigXmqoZJsXwTg== 665 | /@types/istanbul-lib-coverage/2.0.3: 666 | dev: true 667 | resolution: 668 | integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== 669 | /@types/istanbul-lib-report/3.0.0: 670 | dependencies: 671 | '@types/istanbul-lib-coverage': 2.0.3 672 | dev: true 673 | resolution: 674 | integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 675 | /@types/istanbul-reports/3.0.0: 676 | dependencies: 677 | '@types/istanbul-lib-report': 3.0.0 678 | dev: true 679 | resolution: 680 | integrity: sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== 681 | /@types/jest/26.0.20: 682 | dependencies: 683 | jest-diff: 26.6.2 684 | pretty-format: 26.6.2 685 | dev: true 686 | resolution: 687 | integrity: sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== 688 | /@types/node/14.14.34: 689 | dev: true 690 | resolution: 691 | integrity: sha512-dBPaxocOK6UVyvhbnpFIj2W+S+1cBTkHQbFQfeeJhoKFbzYcVUGHvddeWPSucKATb3F0+pgDq0i6ghEaZjsugA== 692 | /@types/node/14.14.35: 693 | dev: true 694 | resolution: 695 | integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== 696 | /@types/normalize-package-data/2.4.0: 697 | dev: true 698 | resolution: 699 | integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== 700 | /@types/prettier/2.2.2: 701 | dev: true 702 | resolution: 703 | integrity: sha512-i99hy7Ki19EqVOl77WplDrvgNugHnsSjECVR/wUrzw2TJXz1zlUfT2ngGckR6xN7yFYaijsMAqPkOLx9HgUqHg== 704 | /@types/resolve/1.17.1: 705 | dependencies: 706 | '@types/node': 14.14.35 707 | dev: true 708 | resolution: 709 | integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== 710 | /@types/stack-utils/2.0.0: 711 | dev: true 712 | resolution: 713 | integrity: sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== 714 | /@types/yargs-parser/20.2.0: 715 | dev: true 716 | resolution: 717 | integrity: sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== 718 | /@types/yargs/15.0.13: 719 | dependencies: 720 | '@types/yargs-parser': 20.2.0 721 | dev: true 722 | resolution: 723 | integrity: sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== 724 | /abab/2.0.5: 725 | dev: true 726 | resolution: 727 | integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== 728 | /acorn-globals/6.0.0: 729 | dependencies: 730 | acorn: 7.4.1 731 | acorn-walk: 7.2.0 732 | dev: true 733 | resolution: 734 | integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== 735 | /acorn-walk/7.2.0: 736 | dev: true 737 | engines: 738 | node: '>=0.4.0' 739 | resolution: 740 | integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 741 | /acorn/7.4.1: 742 | dev: true 743 | engines: 744 | node: '>=0.4.0' 745 | hasBin: true 746 | resolution: 747 | integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 748 | /acorn/8.1.0: 749 | dev: true 750 | engines: 751 | node: '>=0.4.0' 752 | hasBin: true 753 | resolution: 754 | integrity: sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== 755 | /ajv/6.12.6: 756 | dependencies: 757 | fast-deep-equal: 3.1.3 758 | fast-json-stable-stringify: 2.1.0 759 | json-schema-traverse: 0.4.1 760 | uri-js: 4.4.1 761 | dev: true 762 | resolution: 763 | integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 764 | /ansi-colors/4.1.1: 765 | dev: true 766 | engines: 767 | node: '>=6' 768 | resolution: 769 | integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 770 | /ansi-escapes/4.3.1: 771 | dependencies: 772 | type-fest: 0.11.0 773 | dev: true 774 | engines: 775 | node: '>=8' 776 | resolution: 777 | integrity: sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== 778 | /ansi-regex/5.0.0: 779 | dev: true 780 | engines: 781 | node: '>=8' 782 | resolution: 783 | integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 784 | /ansi-styles/3.2.1: 785 | dependencies: 786 | color-convert: 1.9.3 787 | dev: true 788 | engines: 789 | node: '>=4' 790 | resolution: 791 | integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 792 | /ansi-styles/4.3.0: 793 | dependencies: 794 | color-convert: 2.0.1 795 | dev: true 796 | engines: 797 | node: '>=8' 798 | resolution: 799 | integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 800 | /anymatch/2.0.0: 801 | dependencies: 802 | micromatch: 3.1.10 803 | normalize-path: 2.1.1 804 | dev: true 805 | resolution: 806 | integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 807 | /anymatch/3.1.1: 808 | dependencies: 809 | normalize-path: 3.0.0 810 | picomatch: 2.2.2 811 | dev: true 812 | engines: 813 | node: '>= 8' 814 | resolution: 815 | integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 816 | /argparse/1.0.10: 817 | dependencies: 818 | sprintf-js: 1.0.3 819 | dev: true 820 | resolution: 821 | integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 822 | /arr-diff/4.0.0: 823 | dev: true 824 | engines: 825 | node: '>=0.10.0' 826 | resolution: 827 | integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 828 | /arr-flatten/1.1.0: 829 | dev: true 830 | engines: 831 | node: '>=0.10.0' 832 | resolution: 833 | integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 834 | /arr-union/3.1.0: 835 | dev: true 836 | engines: 837 | node: '>=0.10.0' 838 | resolution: 839 | integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 840 | /array-unique/0.3.2: 841 | dev: true 842 | engines: 843 | node: '>=0.10.0' 844 | resolution: 845 | integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 846 | /asn1/0.2.4: 847 | dependencies: 848 | safer-buffer: 2.1.2 849 | dev: true 850 | resolution: 851 | integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== 852 | /assert-plus/1.0.0: 853 | dev: true 854 | engines: 855 | node: '>=0.8' 856 | resolution: 857 | integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 858 | /assign-symbols/1.0.0: 859 | dev: true 860 | engines: 861 | node: '>=0.10.0' 862 | resolution: 863 | integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 864 | /async-task-group/1.3.2: 865 | dev: true 866 | engines: 867 | node: '>= 7.6.0' 868 | resolution: 869 | integrity: sha512-3bqceWd2Br7nZA64wdshDSILO75Nyu1Qj/vvwIw+B+TW0q7tRmR01rUphE0Pn7cRbetxeZ0Xgetc1W1FelVZTw== 870 | /asynckit/0.4.0: 871 | dev: true 872 | resolution: 873 | integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= 874 | /atob/2.1.2: 875 | dev: true 876 | engines: 877 | node: '>= 4.5.0' 878 | hasBin: true 879 | resolution: 880 | integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 881 | /aws-sign2/0.7.0: 882 | dev: true 883 | resolution: 884 | integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= 885 | /aws4/1.11.0: 886 | dev: true 887 | resolution: 888 | integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== 889 | /babel-jest/26.6.3_@babel+core@7.13.10: 890 | dependencies: 891 | '@babel/core': 7.13.10 892 | '@jest/transform': 26.6.2 893 | '@jest/types': 26.6.2 894 | '@types/babel__core': 7.1.12 895 | babel-plugin-istanbul: 6.0.0 896 | babel-preset-jest: 26.6.2_@babel+core@7.13.10 897 | chalk: 4.1.0 898 | graceful-fs: 4.2.6 899 | slash: 3.0.0 900 | dev: true 901 | engines: 902 | node: '>= 10.14.2' 903 | peerDependencies: 904 | '@babel/core': ^7.0.0 905 | resolution: 906 | integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== 907 | /babel-plugin-istanbul/6.0.0: 908 | dependencies: 909 | '@babel/helper-plugin-utils': 7.13.0 910 | '@istanbuljs/load-nyc-config': 1.1.0 911 | '@istanbuljs/schema': 0.1.3 912 | istanbul-lib-instrument: 4.0.3 913 | test-exclude: 6.0.0 914 | dev: true 915 | engines: 916 | node: '>=8' 917 | resolution: 918 | integrity: sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== 919 | /babel-plugin-jest-hoist/26.6.2: 920 | dependencies: 921 | '@babel/template': 7.12.13 922 | '@babel/types': 7.13.0 923 | '@types/babel__core': 7.1.12 924 | '@types/babel__traverse': 7.11.1 925 | dev: true 926 | engines: 927 | node: '>= 10.14.2' 928 | resolution: 929 | integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== 930 | /babel-preset-current-node-syntax/1.0.1_@babel+core@7.13.10: 931 | dependencies: 932 | '@babel/core': 7.13.10 933 | '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 934 | '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.13.10 935 | '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.13.10 936 | '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.13.10 937 | '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.10 938 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.13.10 939 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.13.10 940 | '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.10 941 | '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.10 942 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.10 943 | '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.10 944 | '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.13.10 945 | dev: true 946 | peerDependencies: 947 | '@babel/core': ^7.0.0 948 | resolution: 949 | integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== 950 | /babel-preset-jest/26.6.2_@babel+core@7.13.10: 951 | dependencies: 952 | '@babel/core': 7.13.10 953 | babel-plugin-jest-hoist: 26.6.2 954 | babel-preset-current-node-syntax: 1.0.1_@babel+core@7.13.10 955 | dev: true 956 | engines: 957 | node: '>= 10.14.2' 958 | peerDependencies: 959 | '@babel/core': ^7.0.0 960 | resolution: 961 | integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== 962 | /balanced-match/1.0.0: 963 | dev: true 964 | resolution: 965 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 966 | /base/0.11.2: 967 | dependencies: 968 | cache-base: 1.0.1 969 | class-utils: 0.3.6 970 | component-emitter: 1.3.0 971 | define-property: 1.0.0 972 | isobject: 3.0.1 973 | mixin-deep: 1.3.2 974 | pascalcase: 0.1.1 975 | dev: true 976 | engines: 977 | node: '>=0.10.0' 978 | resolution: 979 | integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 980 | /bcrypt-pbkdf/1.0.2: 981 | dependencies: 982 | tweetnacl: 0.14.5 983 | dev: true 984 | resolution: 985 | integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 986 | /binary-insert/1.2.1: 987 | dev: false 988 | resolution: 989 | integrity: sha512-CGsSYzBUL/QqnmL4CTwLQnnVBj5RqPCmVifo5SnqTSbH5heFPtDijsIZJCKmOaXowaYUiiDOc+eZUjpU6NdpMg== 990 | /bocks/1.0.0: 991 | dev: true 992 | resolution: 993 | integrity: sha512-SEOcqe1SH0e/UqybMv69oNNr2O1vtHHvP+2UlWHIFqrR897krsZ5pYhruj4XrT1B8/dBwvl8XCR2houPLLy7pw== 994 | /brace-expansion/1.1.11: 995 | dependencies: 996 | balanced-match: 1.0.0 997 | concat-map: 0.0.1 998 | dev: true 999 | resolution: 1000 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 1001 | /braces/2.3.2: 1002 | dependencies: 1003 | arr-flatten: 1.1.0 1004 | array-unique: 0.3.2 1005 | extend-shallow: 2.0.1 1006 | fill-range: 4.0.0 1007 | isobject: 3.0.1 1008 | repeat-element: 1.1.3 1009 | snapdragon: 0.8.2 1010 | snapdragon-node: 2.1.1 1011 | split-string: 3.1.0 1012 | to-regex: 3.0.2 1013 | dev: true 1014 | engines: 1015 | node: '>=0.10.0' 1016 | resolution: 1017 | integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 1018 | /braces/3.0.2: 1019 | dependencies: 1020 | fill-range: 7.0.1 1021 | dev: true 1022 | engines: 1023 | node: '>=8' 1024 | resolution: 1025 | integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 1026 | /browser-process-hrtime/1.0.0: 1027 | dev: true 1028 | resolution: 1029 | integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== 1030 | /browserslist/4.16.3: 1031 | dependencies: 1032 | caniuse-lite: 1.0.30001200 1033 | colorette: 1.2.2 1034 | electron-to-chromium: 1.3.687 1035 | escalade: 3.1.1 1036 | node-releases: 1.1.71 1037 | dev: true 1038 | engines: 1039 | node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 1040 | hasBin: true 1041 | resolution: 1042 | integrity: sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== 1043 | /bser/2.1.1: 1044 | dependencies: 1045 | node-int64: 0.4.0 1046 | dev: true 1047 | resolution: 1048 | integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== 1049 | /buffer-from/1.1.1: 1050 | dev: true 1051 | resolution: 1052 | integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 1053 | /builtin-modules/3.2.0: 1054 | dev: true 1055 | engines: 1056 | node: '>=6' 1057 | resolution: 1058 | integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== 1059 | /cache-base/1.0.1: 1060 | dependencies: 1061 | collection-visit: 1.0.0 1062 | component-emitter: 1.3.0 1063 | get-value: 2.0.6 1064 | has-value: 1.0.0 1065 | isobject: 3.0.1 1066 | set-value: 2.0.1 1067 | to-object-path: 0.3.0 1068 | union-value: 1.0.1 1069 | unset-value: 1.0.0 1070 | dev: true 1071 | engines: 1072 | node: '>=0.10.0' 1073 | resolution: 1074 | integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 1075 | /call-bind/1.0.2: 1076 | dependencies: 1077 | function-bind: 1.1.1 1078 | get-intrinsic: 1.1.1 1079 | dev: true 1080 | resolution: 1081 | integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 1082 | /callsites/3.1.0: 1083 | dev: true 1084 | engines: 1085 | node: '>=6' 1086 | resolution: 1087 | integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 1088 | /camelcase/5.3.1: 1089 | dev: true 1090 | engines: 1091 | node: '>=6' 1092 | resolution: 1093 | integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 1094 | /camelcase/6.2.0: 1095 | dev: true 1096 | engines: 1097 | node: '>=10' 1098 | resolution: 1099 | integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 1100 | /caniuse-lite/1.0.30001200: 1101 | dev: true 1102 | resolution: 1103 | integrity: sha512-ic/jXfa6tgiPBAISWk16jRI2q8YfjxHnSG7ddSL1ptrIP8Uy11SayFrjXRAk3NumHpDb21fdTkbTxb/hOrFrnQ== 1104 | /capture-exit/2.0.0: 1105 | dependencies: 1106 | rsvp: 4.8.5 1107 | dev: true 1108 | engines: 1109 | node: 6.* || 8.* || >= 10.* 1110 | resolution: 1111 | integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== 1112 | /caseless/0.12.0: 1113 | dev: true 1114 | resolution: 1115 | integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 1116 | /chalk/2.4.2: 1117 | dependencies: 1118 | ansi-styles: 3.2.1 1119 | escape-string-regexp: 1.0.5 1120 | supports-color: 5.5.0 1121 | dev: true 1122 | engines: 1123 | node: '>=4' 1124 | resolution: 1125 | integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1126 | /chalk/3.0.0: 1127 | dependencies: 1128 | ansi-styles: 4.3.0 1129 | supports-color: 7.2.0 1130 | dev: true 1131 | engines: 1132 | node: '>=8' 1133 | resolution: 1134 | integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 1135 | /chalk/4.1.0: 1136 | dependencies: 1137 | ansi-styles: 4.3.0 1138 | supports-color: 7.2.0 1139 | dev: true 1140 | engines: 1141 | node: '>=10' 1142 | resolution: 1143 | integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 1144 | /char-regex/1.0.2: 1145 | dev: true 1146 | engines: 1147 | node: '>=10' 1148 | resolution: 1149 | integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== 1150 | /ci-info/2.0.0: 1151 | dev: true 1152 | resolution: 1153 | integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 1154 | /cjs-module-lexer/0.6.0: 1155 | dev: true 1156 | resolution: 1157 | integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== 1158 | /class-utils/0.3.6: 1159 | dependencies: 1160 | arr-union: 3.1.0 1161 | define-property: 0.2.5 1162 | isobject: 3.0.1 1163 | static-extend: 0.1.2 1164 | dev: true 1165 | engines: 1166 | node: '>=0.10.0' 1167 | resolution: 1168 | integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 1169 | /cli-cursor/3.1.0: 1170 | dependencies: 1171 | restore-cursor: 3.1.0 1172 | dev: true 1173 | engines: 1174 | node: '>=8' 1175 | resolution: 1176 | integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 1177 | /cli-spinners/2.6.0: 1178 | dev: true 1179 | engines: 1180 | node: '>=6' 1181 | resolution: 1182 | integrity: sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== 1183 | /cliui/6.0.0: 1184 | dependencies: 1185 | string-width: 4.2.2 1186 | strip-ansi: 6.0.0 1187 | wrap-ansi: 6.2.0 1188 | dev: true 1189 | resolution: 1190 | integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== 1191 | /clone/1.0.4: 1192 | dev: true 1193 | engines: 1194 | node: '>=0.8' 1195 | resolution: 1196 | integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 1197 | /co/4.6.0: 1198 | dev: true 1199 | engines: 1200 | iojs: '>= 1.0.0' 1201 | node: '>= 0.12.0' 1202 | resolution: 1203 | integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 1204 | /collect-v8-coverage/1.0.1: 1205 | dev: true 1206 | resolution: 1207 | integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== 1208 | /collection-visit/1.0.0: 1209 | dependencies: 1210 | map-visit: 1.0.0 1211 | object-visit: 1.0.1 1212 | dev: true 1213 | engines: 1214 | node: '>=0.10.0' 1215 | resolution: 1216 | integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 1217 | /color-convert/1.9.3: 1218 | dependencies: 1219 | color-name: 1.1.3 1220 | dev: true 1221 | resolution: 1222 | integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1223 | /color-convert/2.0.1: 1224 | dependencies: 1225 | color-name: 1.1.4 1226 | dev: true 1227 | engines: 1228 | node: '>=7.0.0' 1229 | resolution: 1230 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1231 | /color-name/1.1.3: 1232 | dev: true 1233 | resolution: 1234 | integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 1235 | /color-name/1.1.4: 1236 | dev: true 1237 | resolution: 1238 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1239 | /colorette/1.2.2: 1240 | dev: true 1241 | resolution: 1242 | integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== 1243 | /combined-stream/1.0.8: 1244 | dependencies: 1245 | delayed-stream: 1.0.0 1246 | dev: true 1247 | engines: 1248 | node: '>= 0.8' 1249 | resolution: 1250 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 1251 | /component-emitter/1.3.0: 1252 | dev: true 1253 | resolution: 1254 | integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 1255 | /concat-map/0.0.1: 1256 | dev: true 1257 | resolution: 1258 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 1259 | /convert-source-map/1.7.0: 1260 | dependencies: 1261 | safe-buffer: 5.1.2 1262 | dev: true 1263 | resolution: 1264 | integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 1265 | /copy-descriptor/0.1.1: 1266 | dev: true 1267 | engines: 1268 | node: '>=0.10.0' 1269 | resolution: 1270 | integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 1271 | /core-util-is/1.0.2: 1272 | dev: true 1273 | resolution: 1274 | integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 1275 | /cross-spawn/6.0.5: 1276 | dependencies: 1277 | nice-try: 1.0.5 1278 | path-key: 2.0.1 1279 | semver: 5.7.1 1280 | shebang-command: 1.2.0 1281 | which: 1.3.1 1282 | dev: true 1283 | engines: 1284 | node: '>=4.8' 1285 | resolution: 1286 | integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 1287 | /cross-spawn/7.0.3: 1288 | dependencies: 1289 | path-key: 3.1.1 1290 | shebang-command: 2.0.0 1291 | which: 2.0.2 1292 | dev: true 1293 | engines: 1294 | node: '>= 8' 1295 | resolution: 1296 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 1297 | /cssom/0.3.8: 1298 | dev: true 1299 | resolution: 1300 | integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== 1301 | /cssom/0.4.4: 1302 | dev: true 1303 | resolution: 1304 | integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== 1305 | /cssstyle/2.3.0: 1306 | dependencies: 1307 | cssom: 0.3.8 1308 | dev: true 1309 | engines: 1310 | node: '>=8' 1311 | resolution: 1312 | integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== 1313 | /dashdash/1.14.1: 1314 | dependencies: 1315 | assert-plus: 1.0.0 1316 | dev: true 1317 | engines: 1318 | node: '>=0.10' 1319 | resolution: 1320 | integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 1321 | /data-urls/2.0.0: 1322 | dependencies: 1323 | abab: 2.0.5 1324 | whatwg-mimetype: 2.3.0 1325 | whatwg-url: 8.4.0 1326 | dev: true 1327 | engines: 1328 | node: '>=10' 1329 | resolution: 1330 | integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== 1331 | /debug/2.6.9: 1332 | dependencies: 1333 | ms: 2.0.0 1334 | dev: true 1335 | resolution: 1336 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 1337 | /debug/4.3.1: 1338 | dependencies: 1339 | ms: 2.1.2 1340 | dev: true 1341 | engines: 1342 | node: '>=6.0' 1343 | peerDependencies: 1344 | supports-color: '*' 1345 | peerDependenciesMeta: 1346 | supports-color: 1347 | optional: true 1348 | resolution: 1349 | integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 1350 | /decamelize/1.2.0: 1351 | dev: true 1352 | engines: 1353 | node: '>=0.10.0' 1354 | resolution: 1355 | integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 1356 | /decimal.js/10.2.1: 1357 | dev: true 1358 | resolution: 1359 | integrity: sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== 1360 | /decode-uri-component/0.2.0: 1361 | dev: true 1362 | engines: 1363 | node: '>=0.10' 1364 | resolution: 1365 | integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 1366 | /deep-is/0.1.3: 1367 | dev: true 1368 | resolution: 1369 | integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 1370 | /deepmerge/4.2.2: 1371 | dev: true 1372 | engines: 1373 | node: '>=0.10.0' 1374 | resolution: 1375 | integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 1376 | /defaults/1.0.3: 1377 | dependencies: 1378 | clone: 1.0.4 1379 | dev: true 1380 | resolution: 1381 | integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 1382 | /define-properties/1.1.3: 1383 | dependencies: 1384 | object-keys: 1.1.1 1385 | dev: true 1386 | engines: 1387 | node: '>= 0.4' 1388 | resolution: 1389 | integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 1390 | /define-property/0.2.5: 1391 | dependencies: 1392 | is-descriptor: 0.1.6 1393 | dev: true 1394 | engines: 1395 | node: '>=0.10.0' 1396 | resolution: 1397 | integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 1398 | /define-property/1.0.0: 1399 | dependencies: 1400 | is-descriptor: 1.0.2 1401 | dev: true 1402 | engines: 1403 | node: '>=0.10.0' 1404 | resolution: 1405 | integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 1406 | /define-property/2.0.2: 1407 | dependencies: 1408 | is-descriptor: 1.0.2 1409 | isobject: 3.0.1 1410 | dev: true 1411 | engines: 1412 | node: '>=0.10.0' 1413 | resolution: 1414 | integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 1415 | /delay/5.0.0: 1416 | dev: true 1417 | engines: 1418 | node: '>=10' 1419 | resolution: 1420 | integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 1421 | /delayed-stream/1.0.0: 1422 | dev: true 1423 | engines: 1424 | node: '>=0.4.0' 1425 | resolution: 1426 | integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 1427 | /dequal/2.0.2: 1428 | dev: true 1429 | engines: 1430 | node: '>=6' 1431 | resolution: 1432 | integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== 1433 | /dequals/1.0.0: 1434 | dev: true 1435 | resolution: 1436 | integrity: sha512-/XSK8NM5zZGDicxWfKN6UhbsuYCAQtd7Jf0pBXPyTwmrNPD6Hg5KmVZB5M9zWnwh+bwmZ2un8s+HMuW8/Dx1vg== 1437 | /detect-newline/3.1.0: 1438 | dev: true 1439 | engines: 1440 | node: '>=8' 1441 | resolution: 1442 | integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== 1443 | /diff-sequences/26.6.2: 1444 | dev: true 1445 | engines: 1446 | node: '>= 10.14.2' 1447 | resolution: 1448 | integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== 1449 | /domexception/2.0.1: 1450 | dependencies: 1451 | webidl-conversions: 5.0.0 1452 | dev: true 1453 | engines: 1454 | node: '>=8' 1455 | resolution: 1456 | integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== 1457 | /ecc-jsbn/0.1.2: 1458 | dependencies: 1459 | jsbn: 0.1.1 1460 | safer-buffer: 2.1.2 1461 | dev: true 1462 | resolution: 1463 | integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 1464 | /electron-to-chromium/1.3.687: 1465 | dev: true 1466 | resolution: 1467 | integrity: sha512-IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ== 1468 | /emittery/0.7.2: 1469 | dev: true 1470 | engines: 1471 | node: '>=10' 1472 | resolution: 1473 | integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== 1474 | /emoji-regex/8.0.0: 1475 | dev: true 1476 | resolution: 1477 | integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1478 | /end-of-stream/1.4.4: 1479 | dependencies: 1480 | once: 1.4.0 1481 | dev: true 1482 | resolution: 1483 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 1484 | /enquirer/2.3.6: 1485 | dependencies: 1486 | ansi-colors: 4.1.1 1487 | dev: true 1488 | engines: 1489 | node: '>=8.6' 1490 | resolution: 1491 | integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 1492 | /error-ex/1.3.2: 1493 | dependencies: 1494 | is-arrayish: 0.2.1 1495 | dev: true 1496 | resolution: 1497 | integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1498 | /es-abstract/1.18.0: 1499 | dependencies: 1500 | call-bind: 1.0.2 1501 | es-to-primitive: 1.2.1 1502 | function-bind: 1.1.1 1503 | get-intrinsic: 1.1.1 1504 | has: 1.0.3 1505 | has-symbols: 1.0.2 1506 | is-callable: 1.2.3 1507 | is-negative-zero: 2.0.1 1508 | is-regex: 1.1.2 1509 | is-string: 1.0.5 1510 | object-inspect: 1.9.0 1511 | object-keys: 1.1.1 1512 | object.assign: 4.1.2 1513 | string.prototype.trimend: 1.0.4 1514 | string.prototype.trimstart: 1.0.4 1515 | unbox-primitive: 1.0.0 1516 | dev: true 1517 | engines: 1518 | node: '>= 0.4' 1519 | resolution: 1520 | integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== 1521 | /es-to-primitive/1.2.1: 1522 | dependencies: 1523 | is-callable: 1.2.3 1524 | is-date-object: 1.0.2 1525 | is-symbol: 1.0.3 1526 | dev: true 1527 | engines: 1528 | node: '>= 0.4' 1529 | resolution: 1530 | integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 1531 | /esbuild/0.8.57: 1532 | dev: true 1533 | hasBin: true 1534 | requiresBuild: true 1535 | resolution: 1536 | integrity: sha512-j02SFrUwFTRUqiY0Kjplwjm1psuzO1d6AjaXKuOR9hrY0HuPsT6sV42B6myW34h1q4CRy+Y3g4RU/cGJeI/nNA== 1537 | /escalade/3.1.1: 1538 | dev: true 1539 | engines: 1540 | node: '>=6' 1541 | resolution: 1542 | integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1543 | /escape-string-regexp/1.0.5: 1544 | dev: true 1545 | engines: 1546 | node: '>=0.8.0' 1547 | resolution: 1548 | integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1549 | /escape-string-regexp/2.0.0: 1550 | dev: true 1551 | engines: 1552 | node: '>=8' 1553 | resolution: 1554 | integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== 1555 | /escodegen/2.0.0: 1556 | dependencies: 1557 | esprima: 4.0.1 1558 | estraverse: 5.2.0 1559 | esutils: 2.0.3 1560 | optionator: 0.8.3 1561 | dev: true 1562 | engines: 1563 | node: '>=6.0' 1564 | hasBin: true 1565 | optionalDependencies: 1566 | source-map: 0.6.1 1567 | resolution: 1568 | integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== 1569 | /esprima/4.0.1: 1570 | dev: true 1571 | engines: 1572 | node: '>=4' 1573 | hasBin: true 1574 | resolution: 1575 | integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1576 | /estraverse/5.2.0: 1577 | dev: true 1578 | engines: 1579 | node: '>=4.0' 1580 | resolution: 1581 | integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 1582 | /estree-walker/1.0.1: 1583 | dev: true 1584 | resolution: 1585 | integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 1586 | /estree-walker/2.0.2: 1587 | dev: true 1588 | resolution: 1589 | integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 1590 | /esutils/2.0.3: 1591 | dev: true 1592 | engines: 1593 | node: '>=0.10.0' 1594 | resolution: 1595 | integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1596 | /exec-sh/0.3.4: 1597 | dev: true 1598 | resolution: 1599 | integrity: sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== 1600 | /execa/1.0.0: 1601 | dependencies: 1602 | cross-spawn: 6.0.5 1603 | get-stream: 4.1.0 1604 | is-stream: 1.1.0 1605 | npm-run-path: 2.0.2 1606 | p-finally: 1.0.0 1607 | signal-exit: 3.0.3 1608 | strip-eof: 1.0.0 1609 | dev: true 1610 | engines: 1611 | node: '>=6' 1612 | resolution: 1613 | integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 1614 | /execa/4.1.0: 1615 | dependencies: 1616 | cross-spawn: 7.0.3 1617 | get-stream: 5.2.0 1618 | human-signals: 1.1.1 1619 | is-stream: 2.0.0 1620 | merge-stream: 2.0.0 1621 | npm-run-path: 4.0.1 1622 | onetime: 5.1.2 1623 | signal-exit: 3.0.3 1624 | strip-final-newline: 2.0.0 1625 | dev: true 1626 | engines: 1627 | node: '>=10' 1628 | resolution: 1629 | integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== 1630 | /exit/0.1.2: 1631 | dev: true 1632 | engines: 1633 | node: '>= 0.8.0' 1634 | resolution: 1635 | integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= 1636 | /expand-brackets/2.1.4: 1637 | dependencies: 1638 | debug: 2.6.9 1639 | define-property: 0.2.5 1640 | extend-shallow: 2.0.1 1641 | posix-character-classes: 0.1.1 1642 | regex-not: 1.0.2 1643 | snapdragon: 0.8.2 1644 | to-regex: 3.0.2 1645 | dev: true 1646 | engines: 1647 | node: '>=0.10.0' 1648 | resolution: 1649 | integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 1650 | /expect/26.6.2: 1651 | dependencies: 1652 | '@jest/types': 26.6.2 1653 | ansi-styles: 4.3.0 1654 | jest-get-type: 26.3.0 1655 | jest-matcher-utils: 26.6.2 1656 | jest-message-util: 26.6.2 1657 | jest-regex-util: 26.0.0 1658 | dev: true 1659 | engines: 1660 | node: '>= 10.14.2' 1661 | resolution: 1662 | integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== 1663 | /extend-shallow/2.0.1: 1664 | dependencies: 1665 | is-extendable: 0.1.1 1666 | dev: true 1667 | engines: 1668 | node: '>=0.10.0' 1669 | resolution: 1670 | integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 1671 | /extend-shallow/3.0.2: 1672 | dependencies: 1673 | assign-symbols: 1.0.0 1674 | is-extendable: 1.0.1 1675 | dev: true 1676 | engines: 1677 | node: '>=0.10.0' 1678 | resolution: 1679 | integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 1680 | /extend/3.0.2: 1681 | dev: true 1682 | resolution: 1683 | integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 1684 | /extglob/2.0.4: 1685 | dependencies: 1686 | array-unique: 0.3.2 1687 | define-property: 1.0.0 1688 | expand-brackets: 2.1.4 1689 | extend-shallow: 2.0.1 1690 | fragment-cache: 0.2.1 1691 | regex-not: 1.0.2 1692 | snapdragon: 0.8.2 1693 | to-regex: 3.0.2 1694 | dev: true 1695 | engines: 1696 | node: '>=0.10.0' 1697 | resolution: 1698 | integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 1699 | /extsprintf/1.3.0: 1700 | dev: true 1701 | engines: 1702 | '0': node >=0.6.0 1703 | resolution: 1704 | integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 1705 | /fast-deep-equal/3.1.3: 1706 | dev: true 1707 | resolution: 1708 | integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1709 | /fast-json-stable-stringify/2.1.0: 1710 | dev: true 1711 | resolution: 1712 | integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1713 | /fast-levenshtein/2.0.6: 1714 | dev: true 1715 | resolution: 1716 | integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1717 | /fb-watchman/2.0.1: 1718 | dependencies: 1719 | bser: 2.1.1 1720 | dev: true 1721 | resolution: 1722 | integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== 1723 | /fill-range/4.0.0: 1724 | dependencies: 1725 | extend-shallow: 2.0.1 1726 | is-number: 3.0.0 1727 | repeat-string: 1.6.1 1728 | to-regex-range: 2.1.1 1729 | dev: true 1730 | engines: 1731 | node: '>=0.10.0' 1732 | resolution: 1733 | integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 1734 | /fill-range/7.0.1: 1735 | dependencies: 1736 | to-regex-range: 5.0.1 1737 | dev: true 1738 | engines: 1739 | node: '>=8' 1740 | resolution: 1741 | integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1742 | /find-dependency/1.3.3: 1743 | dev: true 1744 | resolution: 1745 | integrity: sha512-Fs4jjANCEF0ZQRXxoqU1XQFrC8D3gTs+xnluUu+2TR+02g3d05q6b6ucyWMkXOQoTUXAoMznG7V+EksSmvGhfQ== 1746 | /find-up/4.1.0: 1747 | dependencies: 1748 | locate-path: 5.0.0 1749 | path-exists: 4.0.0 1750 | dev: true 1751 | engines: 1752 | node: '>=8' 1753 | resolution: 1754 | integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1755 | /for-each/0.3.3: 1756 | dependencies: 1757 | is-callable: 1.2.3 1758 | dev: true 1759 | resolution: 1760 | integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== 1761 | /for-in/1.0.2: 1762 | dev: true 1763 | engines: 1764 | node: '>=0.10.0' 1765 | resolution: 1766 | integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 1767 | /forever-agent/0.6.1: 1768 | dev: true 1769 | resolution: 1770 | integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 1771 | /form-data/2.3.3: 1772 | dependencies: 1773 | asynckit: 0.4.0 1774 | combined-stream: 1.0.8 1775 | mime-types: 2.1.29 1776 | dev: true 1777 | engines: 1778 | node: '>= 0.12' 1779 | resolution: 1780 | integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 1781 | /fragment-cache/0.2.1: 1782 | dependencies: 1783 | map-cache: 0.2.2 1784 | dev: true 1785 | engines: 1786 | node: '>=0.10.0' 1787 | resolution: 1788 | integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 1789 | /fs.realpath/1.0.0: 1790 | dev: true 1791 | resolution: 1792 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1793 | /fsevents/2.3.2: 1794 | dev: true 1795 | engines: 1796 | node: ^8.16.0 || ^10.6.0 || >=11.0.0 1797 | optional: true 1798 | os: 1799 | - darwin 1800 | resolution: 1801 | integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1802 | /function-bind/1.1.1: 1803 | dev: true 1804 | resolution: 1805 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1806 | /gensync/1.0.0-beta.2: 1807 | dev: true 1808 | engines: 1809 | node: '>=6.9.0' 1810 | resolution: 1811 | integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1812 | /get-caller-file/2.0.5: 1813 | dev: true 1814 | engines: 1815 | node: 6.* || 8.* || >= 10.* 1816 | resolution: 1817 | integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1818 | /get-intrinsic/1.1.1: 1819 | dependencies: 1820 | function-bind: 1.1.1 1821 | has: 1.0.3 1822 | has-symbols: 1.0.2 1823 | dev: true 1824 | resolution: 1825 | integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 1826 | /get-package-type/0.1.0: 1827 | dev: true 1828 | engines: 1829 | node: '>=8.0.0' 1830 | resolution: 1831 | integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== 1832 | /get-stream/4.1.0: 1833 | dependencies: 1834 | pump: 3.0.0 1835 | dev: true 1836 | engines: 1837 | node: '>=6' 1838 | resolution: 1839 | integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 1840 | /get-stream/5.2.0: 1841 | dependencies: 1842 | pump: 3.0.0 1843 | dev: true 1844 | engines: 1845 | node: '>=8' 1846 | resolution: 1847 | integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 1848 | /get-value/2.0.6: 1849 | dev: true 1850 | engines: 1851 | node: '>=0.10.0' 1852 | resolution: 1853 | integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 1854 | /getpass/0.1.7: 1855 | dependencies: 1856 | assert-plus: 1.0.0 1857 | dev: true 1858 | resolution: 1859 | integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 1860 | /glob-regex/0.3.2: 1861 | resolution: 1862 | integrity: sha512-m5blUd3/OqDTWwzBBtWBPrGlAzatRywHameHeekAZyZrskYouOGdNB8T/q6JucucvJXtOuyHIn0/Yia7iDasDw== 1863 | /glob/7.1.6: 1864 | dependencies: 1865 | fs.realpath: 1.0.0 1866 | inflight: 1.0.6 1867 | inherits: 2.0.4 1868 | minimatch: 3.0.4 1869 | once: 1.4.0 1870 | path-is-absolute: 1.0.1 1871 | dev: true 1872 | resolution: 1873 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 1874 | /globals/11.12.0: 1875 | dev: true 1876 | engines: 1877 | node: '>=4' 1878 | resolution: 1879 | integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1880 | /graceful-fs/4.2.6: 1881 | dev: true 1882 | resolution: 1883 | integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 1884 | /growly/1.3.0: 1885 | dev: true 1886 | optional: true 1887 | resolution: 1888 | integrity: sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= 1889 | /har-schema/2.0.0: 1890 | dev: true 1891 | engines: 1892 | node: '>=4' 1893 | resolution: 1894 | integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= 1895 | /har-validator/5.1.5: 1896 | dependencies: 1897 | ajv: 6.12.6 1898 | har-schema: 2.0.0 1899 | deprecated: this library is no longer supported 1900 | dev: true 1901 | engines: 1902 | node: '>=6' 1903 | resolution: 1904 | integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== 1905 | /has-bigints/1.0.1: 1906 | dev: true 1907 | resolution: 1908 | integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 1909 | /has-flag/3.0.0: 1910 | dev: true 1911 | engines: 1912 | node: '>=4' 1913 | resolution: 1914 | integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1915 | /has-flag/4.0.0: 1916 | dev: true 1917 | engines: 1918 | node: '>=8' 1919 | resolution: 1920 | integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1921 | /has-symbols/1.0.2: 1922 | dev: true 1923 | engines: 1924 | node: '>= 0.4' 1925 | resolution: 1926 | integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 1927 | /has-value/0.3.1: 1928 | dependencies: 1929 | get-value: 2.0.6 1930 | has-values: 0.1.4 1931 | isobject: 2.1.0 1932 | dev: true 1933 | engines: 1934 | node: '>=0.10.0' 1935 | resolution: 1936 | integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 1937 | /has-value/1.0.0: 1938 | dependencies: 1939 | get-value: 2.0.6 1940 | has-values: 1.0.0 1941 | isobject: 3.0.1 1942 | dev: true 1943 | engines: 1944 | node: '>=0.10.0' 1945 | resolution: 1946 | integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 1947 | /has-values/0.1.4: 1948 | dev: true 1949 | engines: 1950 | node: '>=0.10.0' 1951 | resolution: 1952 | integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E= 1953 | /has-values/1.0.0: 1954 | dependencies: 1955 | is-number: 3.0.0 1956 | kind-of: 4.0.0 1957 | dev: true 1958 | engines: 1959 | node: '>=0.10.0' 1960 | resolution: 1961 | integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 1962 | /has/1.0.3: 1963 | dependencies: 1964 | function-bind: 1.1.1 1965 | dev: true 1966 | engines: 1967 | node: '>= 0.4.0' 1968 | resolution: 1969 | integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1970 | /hosted-git-info/2.8.8: 1971 | dev: true 1972 | resolution: 1973 | integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== 1974 | /html-encoding-sniffer/2.0.1: 1975 | dependencies: 1976 | whatwg-encoding: 1.0.5 1977 | dev: true 1978 | engines: 1979 | node: '>=10' 1980 | resolution: 1981 | integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== 1982 | /html-escaper/2.0.2: 1983 | dev: true 1984 | resolution: 1985 | integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1986 | /http-signature/1.2.0: 1987 | dependencies: 1988 | assert-plus: 1.0.0 1989 | jsprim: 1.4.1 1990 | sshpk: 1.16.1 1991 | dev: true 1992 | engines: 1993 | node: '>=0.8' 1994 | npm: '>=1.3.7' 1995 | resolution: 1996 | integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= 1997 | /human-signals/1.1.1: 1998 | dev: true 1999 | engines: 2000 | node: '>=8.12.0' 2001 | resolution: 2002 | integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 2003 | /iconv-lite/0.4.24: 2004 | dependencies: 2005 | safer-buffer: 2.1.2 2006 | dev: true 2007 | engines: 2008 | node: '>=0.10.0' 2009 | resolution: 2010 | integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 2011 | /import-local/3.0.2: 2012 | dependencies: 2013 | pkg-dir: 4.2.0 2014 | resolve-cwd: 3.0.0 2015 | dev: true 2016 | engines: 2017 | node: '>=8' 2018 | hasBin: true 2019 | resolution: 2020 | integrity: sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== 2021 | /imurmurhash/0.1.4: 2022 | dev: true 2023 | engines: 2024 | node: '>=0.8.19' 2025 | resolution: 2026 | integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= 2027 | /indo/0.3.42: 2028 | dependencies: 2029 | '@cush/exec': 1.7.1 2030 | async-task-group: 1.3.2 2031 | bocks: 1.0.0 2032 | dequals: 1.0.0 2033 | enquirer: 2.3.6 2034 | find-dependency: 1.3.3 2035 | glob-regex: 0.3.2 2036 | lodge: 0.1.7 2037 | ora: 4.1.1 2038 | realpath-native: 1.1.0 2039 | recrawl-sync: 2.0.2 2040 | saxon: 0.2.11 2041 | semver: 6.3.0 2042 | slurm: 0.5.10 2043 | dev: true 2044 | hasBin: true 2045 | resolution: 2046 | integrity: sha512-hxbxct9YH0oncjoQ8NgoFX5jJgQ0vRjjZGGzXb0nOkAYtseZPelCLxRVlmArs/x6SCauBZkw6ca0pLATjIiTjw== 2047 | /inflight/1.0.6: 2048 | dependencies: 2049 | once: 1.4.0 2050 | wrappy: 1.0.2 2051 | dev: true 2052 | resolution: 2053 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 2054 | /inherits/2.0.4: 2055 | dev: true 2056 | resolution: 2057 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 2058 | /is-accessor-descriptor/0.1.6: 2059 | dependencies: 2060 | kind-of: 3.2.2 2061 | dev: true 2062 | engines: 2063 | node: '>=0.10.0' 2064 | resolution: 2065 | integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 2066 | /is-accessor-descriptor/1.0.0: 2067 | dependencies: 2068 | kind-of: 6.0.3 2069 | dev: true 2070 | engines: 2071 | node: '>=0.10.0' 2072 | resolution: 2073 | integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 2074 | /is-arrayish/0.2.1: 2075 | dev: true 2076 | resolution: 2077 | integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 2078 | /is-bigint/1.0.1: 2079 | dev: true 2080 | resolution: 2081 | integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== 2082 | /is-boolean-object/1.1.0: 2083 | dependencies: 2084 | call-bind: 1.0.2 2085 | dev: true 2086 | engines: 2087 | node: '>= 0.4' 2088 | resolution: 2089 | integrity: sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== 2090 | /is-buffer/1.1.6: 2091 | dev: true 2092 | resolution: 2093 | integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 2094 | /is-callable/1.2.3: 2095 | dev: true 2096 | engines: 2097 | node: '>= 0.4' 2098 | resolution: 2099 | integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== 2100 | /is-ci/2.0.0: 2101 | dependencies: 2102 | ci-info: 2.0.0 2103 | dev: true 2104 | hasBin: true 2105 | resolution: 2106 | integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 2107 | /is-core-module/2.2.0: 2108 | dependencies: 2109 | has: 1.0.3 2110 | dev: true 2111 | resolution: 2112 | integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 2113 | /is-data-descriptor/0.1.4: 2114 | dependencies: 2115 | kind-of: 3.2.2 2116 | dev: true 2117 | engines: 2118 | node: '>=0.10.0' 2119 | resolution: 2120 | integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 2121 | /is-data-descriptor/1.0.0: 2122 | dependencies: 2123 | kind-of: 6.0.3 2124 | dev: true 2125 | engines: 2126 | node: '>=0.10.0' 2127 | resolution: 2128 | integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 2129 | /is-date-object/1.0.2: 2130 | dev: true 2131 | engines: 2132 | node: '>= 0.4' 2133 | resolution: 2134 | integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 2135 | /is-descriptor/0.1.6: 2136 | dependencies: 2137 | is-accessor-descriptor: 0.1.6 2138 | is-data-descriptor: 0.1.4 2139 | kind-of: 5.1.0 2140 | dev: true 2141 | engines: 2142 | node: '>=0.10.0' 2143 | resolution: 2144 | integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 2145 | /is-descriptor/1.0.2: 2146 | dependencies: 2147 | is-accessor-descriptor: 1.0.0 2148 | is-data-descriptor: 1.0.0 2149 | kind-of: 6.0.3 2150 | dev: true 2151 | engines: 2152 | node: '>=0.10.0' 2153 | resolution: 2154 | integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 2155 | /is-docker/2.1.1: 2156 | dev: true 2157 | engines: 2158 | node: '>=8' 2159 | hasBin: true 2160 | optional: true 2161 | resolution: 2162 | integrity: sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== 2163 | /is-extendable/0.1.1: 2164 | dev: true 2165 | engines: 2166 | node: '>=0.10.0' 2167 | resolution: 2168 | integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 2169 | /is-extendable/1.0.1: 2170 | dependencies: 2171 | is-plain-object: 2.0.4 2172 | dev: true 2173 | engines: 2174 | node: '>=0.10.0' 2175 | resolution: 2176 | integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 2177 | /is-fullwidth-code-point/3.0.0: 2178 | dev: true 2179 | engines: 2180 | node: '>=8' 2181 | resolution: 2182 | integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 2183 | /is-generator-fn/2.1.0: 2184 | dev: true 2185 | engines: 2186 | node: '>=6' 2187 | resolution: 2188 | integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== 2189 | /is-interactive/1.0.0: 2190 | dev: true 2191 | engines: 2192 | node: '>=8' 2193 | resolution: 2194 | integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== 2195 | /is-module/1.0.0: 2196 | dev: true 2197 | resolution: 2198 | integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= 2199 | /is-negative-zero/2.0.1: 2200 | dev: true 2201 | engines: 2202 | node: '>= 0.4' 2203 | resolution: 2204 | integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 2205 | /is-number-object/1.0.4: 2206 | dev: true 2207 | engines: 2208 | node: '>= 0.4' 2209 | resolution: 2210 | integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== 2211 | /is-number/3.0.0: 2212 | dependencies: 2213 | kind-of: 3.2.2 2214 | dev: true 2215 | engines: 2216 | node: '>=0.10.0' 2217 | resolution: 2218 | integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 2219 | /is-number/7.0.0: 2220 | dev: true 2221 | engines: 2222 | node: '>=0.12.0' 2223 | resolution: 2224 | integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 2225 | /is-plain-object/2.0.4: 2226 | dependencies: 2227 | isobject: 3.0.1 2228 | dev: true 2229 | engines: 2230 | node: '>=0.10.0' 2231 | resolution: 2232 | integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 2233 | /is-potential-custom-element-name/1.0.0: 2234 | dev: true 2235 | resolution: 2236 | integrity: sha1-DFLlS8yjkbssSUsh6GJtczbG45c= 2237 | /is-regex/1.1.2: 2238 | dependencies: 2239 | call-bind: 1.0.2 2240 | has-symbols: 1.0.2 2241 | dev: true 2242 | engines: 2243 | node: '>= 0.4' 2244 | resolution: 2245 | integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== 2246 | /is-stream/1.1.0: 2247 | dev: true 2248 | engines: 2249 | node: '>=0.10.0' 2250 | resolution: 2251 | integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 2252 | /is-stream/2.0.0: 2253 | dev: true 2254 | engines: 2255 | node: '>=8' 2256 | resolution: 2257 | integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 2258 | /is-string/1.0.5: 2259 | dev: true 2260 | engines: 2261 | node: '>= 0.4' 2262 | resolution: 2263 | integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== 2264 | /is-symbol/1.0.3: 2265 | dependencies: 2266 | has-symbols: 1.0.2 2267 | dev: true 2268 | engines: 2269 | node: '>= 0.4' 2270 | resolution: 2271 | integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 2272 | /is-typedarray/1.0.0: 2273 | dev: true 2274 | resolution: 2275 | integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 2276 | /is-windows/1.0.2: 2277 | dev: true 2278 | engines: 2279 | node: '>=0.10.0' 2280 | resolution: 2281 | integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 2282 | /is-wsl/2.2.0: 2283 | dependencies: 2284 | is-docker: 2.1.1 2285 | dev: true 2286 | engines: 2287 | node: '>=8' 2288 | optional: true 2289 | resolution: 2290 | integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 2291 | /isarray/1.0.0: 2292 | dev: true 2293 | resolution: 2294 | integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 2295 | /isexe/2.0.0: 2296 | dev: true 2297 | resolution: 2298 | integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 2299 | /isobject/2.1.0: 2300 | dependencies: 2301 | isarray: 1.0.0 2302 | dev: true 2303 | engines: 2304 | node: '>=0.10.0' 2305 | resolution: 2306 | integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 2307 | /isobject/3.0.1: 2308 | dev: true 2309 | engines: 2310 | node: '>=0.10.0' 2311 | resolution: 2312 | integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 2313 | /isstream/0.1.2: 2314 | dev: true 2315 | resolution: 2316 | integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 2317 | /istanbul-lib-coverage/3.0.0: 2318 | dev: true 2319 | engines: 2320 | node: '>=8' 2321 | resolution: 2322 | integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== 2323 | /istanbul-lib-instrument/4.0.3: 2324 | dependencies: 2325 | '@babel/core': 7.13.10 2326 | '@istanbuljs/schema': 0.1.3 2327 | istanbul-lib-coverage: 3.0.0 2328 | semver: 6.3.0 2329 | dev: true 2330 | engines: 2331 | node: '>=8' 2332 | resolution: 2333 | integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== 2334 | /istanbul-lib-report/3.0.0: 2335 | dependencies: 2336 | istanbul-lib-coverage: 3.0.0 2337 | make-dir: 3.1.0 2338 | supports-color: 7.2.0 2339 | dev: true 2340 | engines: 2341 | node: '>=8' 2342 | resolution: 2343 | integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== 2344 | /istanbul-lib-source-maps/4.0.0: 2345 | dependencies: 2346 | debug: 4.3.1 2347 | istanbul-lib-coverage: 3.0.0 2348 | source-map: 0.6.1 2349 | dev: true 2350 | engines: 2351 | node: '>=8' 2352 | resolution: 2353 | integrity: sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== 2354 | /istanbul-reports/3.0.2: 2355 | dependencies: 2356 | html-escaper: 2.0.2 2357 | istanbul-lib-report: 3.0.0 2358 | dev: true 2359 | engines: 2360 | node: '>=8' 2361 | resolution: 2362 | integrity: sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== 2363 | /jest-changed-files/26.6.2: 2364 | dependencies: 2365 | '@jest/types': 26.6.2 2366 | execa: 4.1.0 2367 | throat: 5.0.0 2368 | dev: true 2369 | engines: 2370 | node: '>= 10.14.2' 2371 | resolution: 2372 | integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== 2373 | /jest-cli/26.6.3: 2374 | dependencies: 2375 | '@jest/core': 26.6.3 2376 | '@jest/test-result': 26.6.2 2377 | '@jest/types': 26.6.2 2378 | chalk: 4.1.0 2379 | exit: 0.1.2 2380 | graceful-fs: 4.2.6 2381 | import-local: 3.0.2 2382 | is-ci: 2.0.0 2383 | jest-config: 26.6.3 2384 | jest-util: 26.6.2 2385 | jest-validate: 26.6.2 2386 | prompts: 2.4.0 2387 | yargs: 15.4.1 2388 | dev: true 2389 | engines: 2390 | node: '>= 10.14.2' 2391 | hasBin: true 2392 | resolution: 2393 | integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== 2394 | /jest-config/26.6.3: 2395 | dependencies: 2396 | '@babel/core': 7.13.10 2397 | '@jest/test-sequencer': 26.6.3 2398 | '@jest/types': 26.6.2 2399 | babel-jest: 26.6.3_@babel+core@7.13.10 2400 | chalk: 4.1.0 2401 | deepmerge: 4.2.2 2402 | glob: 7.1.6 2403 | graceful-fs: 4.2.6 2404 | jest-environment-jsdom: 26.6.2 2405 | jest-environment-node: 26.6.2 2406 | jest-get-type: 26.3.0 2407 | jest-jasmine2: 26.6.3 2408 | jest-regex-util: 26.0.0 2409 | jest-resolve: 26.6.2 2410 | jest-util: 26.6.2 2411 | jest-validate: 26.6.2 2412 | micromatch: 4.0.2 2413 | pretty-format: 26.6.2 2414 | dev: true 2415 | engines: 2416 | node: '>= 10.14.2' 2417 | peerDependencies: 2418 | ts-node: '>=9.0.0' 2419 | peerDependenciesMeta: 2420 | ts-node: 2421 | optional: true 2422 | resolution: 2423 | integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== 2424 | /jest-diff/26.6.2: 2425 | dependencies: 2426 | chalk: 4.1.0 2427 | diff-sequences: 26.6.2 2428 | jest-get-type: 26.3.0 2429 | pretty-format: 26.6.2 2430 | dev: true 2431 | engines: 2432 | node: '>= 10.14.2' 2433 | resolution: 2434 | integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== 2435 | /jest-docblock/26.0.0: 2436 | dependencies: 2437 | detect-newline: 3.1.0 2438 | dev: true 2439 | engines: 2440 | node: '>= 10.14.2' 2441 | resolution: 2442 | integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== 2443 | /jest-each/26.6.2: 2444 | dependencies: 2445 | '@jest/types': 26.6.2 2446 | chalk: 4.1.0 2447 | jest-get-type: 26.3.0 2448 | jest-util: 26.6.2 2449 | pretty-format: 26.6.2 2450 | dev: true 2451 | engines: 2452 | node: '>= 10.14.2' 2453 | resolution: 2454 | integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== 2455 | /jest-environment-jsdom/26.6.2: 2456 | dependencies: 2457 | '@jest/environment': 26.6.2 2458 | '@jest/fake-timers': 26.6.2 2459 | '@jest/types': 26.6.2 2460 | '@types/node': 14.14.34 2461 | jest-mock: 26.6.2 2462 | jest-util: 26.6.2 2463 | jsdom: 16.5.1 2464 | dev: true 2465 | engines: 2466 | node: '>= 10.14.2' 2467 | resolution: 2468 | integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== 2469 | /jest-environment-node/26.6.2: 2470 | dependencies: 2471 | '@jest/environment': 26.6.2 2472 | '@jest/fake-timers': 26.6.2 2473 | '@jest/types': 26.6.2 2474 | '@types/node': 14.14.34 2475 | jest-mock: 26.6.2 2476 | jest-util: 26.6.2 2477 | dev: true 2478 | engines: 2479 | node: '>= 10.14.2' 2480 | resolution: 2481 | integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== 2482 | /jest-get-type/26.3.0: 2483 | dev: true 2484 | engines: 2485 | node: '>= 10.14.2' 2486 | resolution: 2487 | integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== 2488 | /jest-haste-map/26.6.2: 2489 | dependencies: 2490 | '@jest/types': 26.6.2 2491 | '@types/graceful-fs': 4.1.5 2492 | '@types/node': 14.14.34 2493 | anymatch: 3.1.1 2494 | fb-watchman: 2.0.1 2495 | graceful-fs: 4.2.6 2496 | jest-regex-util: 26.0.0 2497 | jest-serializer: 26.6.2 2498 | jest-util: 26.6.2 2499 | jest-worker: 26.6.2 2500 | micromatch: 4.0.2 2501 | sane: 4.1.0 2502 | walker: 1.0.7 2503 | dev: true 2504 | engines: 2505 | node: '>= 10.14.2' 2506 | optionalDependencies: 2507 | fsevents: 2.3.2 2508 | resolution: 2509 | integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== 2510 | /jest-jasmine2/26.6.3: 2511 | dependencies: 2512 | '@babel/traverse': 7.13.0 2513 | '@jest/environment': 26.6.2 2514 | '@jest/source-map': 26.6.2 2515 | '@jest/test-result': 26.6.2 2516 | '@jest/types': 26.6.2 2517 | '@types/node': 14.14.34 2518 | chalk: 4.1.0 2519 | co: 4.6.0 2520 | expect: 26.6.2 2521 | is-generator-fn: 2.1.0 2522 | jest-each: 26.6.2 2523 | jest-matcher-utils: 26.6.2 2524 | jest-message-util: 26.6.2 2525 | jest-runtime: 26.6.3 2526 | jest-snapshot: 26.6.2 2527 | jest-util: 26.6.2 2528 | pretty-format: 26.6.2 2529 | throat: 5.0.0 2530 | dev: true 2531 | engines: 2532 | node: '>= 10.14.2' 2533 | resolution: 2534 | integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== 2535 | /jest-leak-detector/26.6.2: 2536 | dependencies: 2537 | jest-get-type: 26.3.0 2538 | pretty-format: 26.6.2 2539 | dev: true 2540 | engines: 2541 | node: '>= 10.14.2' 2542 | resolution: 2543 | integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== 2544 | /jest-matcher-utils/26.6.2: 2545 | dependencies: 2546 | chalk: 4.1.0 2547 | jest-diff: 26.6.2 2548 | jest-get-type: 26.3.0 2549 | pretty-format: 26.6.2 2550 | dev: true 2551 | engines: 2552 | node: '>= 10.14.2' 2553 | resolution: 2554 | integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== 2555 | /jest-message-util/26.6.2: 2556 | dependencies: 2557 | '@babel/code-frame': 7.12.13 2558 | '@jest/types': 26.6.2 2559 | '@types/stack-utils': 2.0.0 2560 | chalk: 4.1.0 2561 | graceful-fs: 4.2.6 2562 | micromatch: 4.0.2 2563 | pretty-format: 26.6.2 2564 | slash: 3.0.0 2565 | stack-utils: 2.0.3 2566 | dev: true 2567 | engines: 2568 | node: '>= 10.14.2' 2569 | resolution: 2570 | integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== 2571 | /jest-mock/26.6.2: 2572 | dependencies: 2573 | '@jest/types': 26.6.2 2574 | '@types/node': 14.14.34 2575 | dev: true 2576 | engines: 2577 | node: '>= 10.14.2' 2578 | resolution: 2579 | integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== 2580 | /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: 2581 | dependencies: 2582 | jest-resolve: 26.6.2 2583 | dev: true 2584 | engines: 2585 | node: '>=6' 2586 | peerDependencies: 2587 | jest-resolve: '*' 2588 | peerDependenciesMeta: 2589 | jest-resolve: 2590 | optional: true 2591 | resolution: 2592 | integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== 2593 | /jest-regex-util/26.0.0: 2594 | dev: true 2595 | engines: 2596 | node: '>= 10.14.2' 2597 | resolution: 2598 | integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== 2599 | /jest-resolve-dependencies/26.6.3: 2600 | dependencies: 2601 | '@jest/types': 26.6.2 2602 | jest-regex-util: 26.0.0 2603 | jest-snapshot: 26.6.2 2604 | dev: true 2605 | engines: 2606 | node: '>= 10.14.2' 2607 | resolution: 2608 | integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== 2609 | /jest-resolve/26.6.2: 2610 | dependencies: 2611 | '@jest/types': 26.6.2 2612 | chalk: 4.1.0 2613 | graceful-fs: 4.2.6 2614 | jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 2615 | jest-util: 26.6.2 2616 | read-pkg-up: 7.0.1 2617 | resolve: 1.20.0 2618 | slash: 3.0.0 2619 | dev: true 2620 | engines: 2621 | node: '>= 10.14.2' 2622 | resolution: 2623 | integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== 2624 | /jest-runner/26.6.3: 2625 | dependencies: 2626 | '@jest/console': 26.6.2 2627 | '@jest/environment': 26.6.2 2628 | '@jest/test-result': 26.6.2 2629 | '@jest/types': 26.6.2 2630 | '@types/node': 14.14.34 2631 | chalk: 4.1.0 2632 | emittery: 0.7.2 2633 | exit: 0.1.2 2634 | graceful-fs: 4.2.6 2635 | jest-config: 26.6.3 2636 | jest-docblock: 26.0.0 2637 | jest-haste-map: 26.6.2 2638 | jest-leak-detector: 26.6.2 2639 | jest-message-util: 26.6.2 2640 | jest-resolve: 26.6.2 2641 | jest-runtime: 26.6.3 2642 | jest-util: 26.6.2 2643 | jest-worker: 26.6.2 2644 | source-map-support: 0.5.19 2645 | throat: 5.0.0 2646 | dev: true 2647 | engines: 2648 | node: '>= 10.14.2' 2649 | resolution: 2650 | integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== 2651 | /jest-runtime/26.6.3: 2652 | dependencies: 2653 | '@jest/console': 26.6.2 2654 | '@jest/environment': 26.6.2 2655 | '@jest/fake-timers': 26.6.2 2656 | '@jest/globals': 26.6.2 2657 | '@jest/source-map': 26.6.2 2658 | '@jest/test-result': 26.6.2 2659 | '@jest/transform': 26.6.2 2660 | '@jest/types': 26.6.2 2661 | '@types/yargs': 15.0.13 2662 | chalk: 4.1.0 2663 | cjs-module-lexer: 0.6.0 2664 | collect-v8-coverage: 1.0.1 2665 | exit: 0.1.2 2666 | glob: 7.1.6 2667 | graceful-fs: 4.2.6 2668 | jest-config: 26.6.3 2669 | jest-haste-map: 26.6.2 2670 | jest-message-util: 26.6.2 2671 | jest-mock: 26.6.2 2672 | jest-regex-util: 26.0.0 2673 | jest-resolve: 26.6.2 2674 | jest-snapshot: 26.6.2 2675 | jest-util: 26.6.2 2676 | jest-validate: 26.6.2 2677 | slash: 3.0.0 2678 | strip-bom: 4.0.0 2679 | yargs: 15.4.1 2680 | dev: true 2681 | engines: 2682 | node: '>= 10.14.2' 2683 | hasBin: true 2684 | resolution: 2685 | integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== 2686 | /jest-serializer/26.6.2: 2687 | dependencies: 2688 | '@types/node': 14.14.34 2689 | graceful-fs: 4.2.6 2690 | dev: true 2691 | engines: 2692 | node: '>= 10.14.2' 2693 | resolution: 2694 | integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== 2695 | /jest-snapshot/26.6.2: 2696 | dependencies: 2697 | '@babel/types': 7.13.0 2698 | '@jest/types': 26.6.2 2699 | '@types/babel__traverse': 7.11.1 2700 | '@types/prettier': 2.2.2 2701 | chalk: 4.1.0 2702 | expect: 26.6.2 2703 | graceful-fs: 4.2.6 2704 | jest-diff: 26.6.2 2705 | jest-get-type: 26.3.0 2706 | jest-haste-map: 26.6.2 2707 | jest-matcher-utils: 26.6.2 2708 | jest-message-util: 26.6.2 2709 | jest-resolve: 26.6.2 2710 | natural-compare: 1.4.0 2711 | pretty-format: 26.6.2 2712 | semver: 7.3.4 2713 | dev: true 2714 | engines: 2715 | node: '>= 10.14.2' 2716 | resolution: 2717 | integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== 2718 | /jest-util/26.6.2: 2719 | dependencies: 2720 | '@jest/types': 26.6.2 2721 | '@types/node': 14.14.34 2722 | chalk: 4.1.0 2723 | graceful-fs: 4.2.6 2724 | is-ci: 2.0.0 2725 | micromatch: 4.0.2 2726 | dev: true 2727 | engines: 2728 | node: '>= 10.14.2' 2729 | resolution: 2730 | integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== 2731 | /jest-validate/26.6.2: 2732 | dependencies: 2733 | '@jest/types': 26.6.2 2734 | camelcase: 6.2.0 2735 | chalk: 4.1.0 2736 | jest-get-type: 26.3.0 2737 | leven: 3.1.0 2738 | pretty-format: 26.6.2 2739 | dev: true 2740 | engines: 2741 | node: '>= 10.14.2' 2742 | resolution: 2743 | integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== 2744 | /jest-watcher/26.6.2: 2745 | dependencies: 2746 | '@jest/test-result': 26.6.2 2747 | '@jest/types': 26.6.2 2748 | '@types/node': 14.14.34 2749 | ansi-escapes: 4.3.1 2750 | chalk: 4.1.0 2751 | jest-util: 26.6.2 2752 | string-length: 4.0.1 2753 | dev: true 2754 | engines: 2755 | node: '>= 10.14.2' 2756 | resolution: 2757 | integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== 2758 | /jest-worker/26.6.2: 2759 | dependencies: 2760 | '@types/node': 14.14.34 2761 | merge-stream: 2.0.0 2762 | supports-color: 7.2.0 2763 | dev: true 2764 | engines: 2765 | node: '>= 10.13.0' 2766 | resolution: 2767 | integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== 2768 | /jest/26.6.3: 2769 | dependencies: 2770 | '@jest/core': 26.6.3 2771 | import-local: 3.0.2 2772 | jest-cli: 26.6.3 2773 | dev: true 2774 | engines: 2775 | node: '>= 10.14.2' 2776 | hasBin: true 2777 | resolution: 2778 | integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== 2779 | /joycon/2.2.5: 2780 | dev: true 2781 | engines: 2782 | node: '>=6' 2783 | resolution: 2784 | integrity: sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== 2785 | /js-tokens/4.0.0: 2786 | dev: true 2787 | resolution: 2788 | integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 2789 | /js-yaml/3.14.1: 2790 | dependencies: 2791 | argparse: 1.0.10 2792 | esprima: 4.0.1 2793 | dev: true 2794 | hasBin: true 2795 | resolution: 2796 | integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 2797 | /jsbn/0.1.1: 2798 | dev: true 2799 | resolution: 2800 | integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 2801 | /jsdom/16.5.1: 2802 | dependencies: 2803 | abab: 2.0.5 2804 | acorn: 8.1.0 2805 | acorn-globals: 6.0.0 2806 | cssom: 0.4.4 2807 | cssstyle: 2.3.0 2808 | data-urls: 2.0.0 2809 | decimal.js: 10.2.1 2810 | domexception: 2.0.1 2811 | escodegen: 2.0.0 2812 | html-encoding-sniffer: 2.0.1 2813 | is-potential-custom-element-name: 1.0.0 2814 | nwsapi: 2.2.0 2815 | parse5: 6.0.1 2816 | request: 2.88.2 2817 | request-promise-native: 1.0.9_request@2.88.2 2818 | saxes: 5.0.1 2819 | symbol-tree: 3.2.4 2820 | tough-cookie: 4.0.0 2821 | w3c-hr-time: 1.0.2 2822 | w3c-xmlserializer: 2.0.0 2823 | webidl-conversions: 6.1.0 2824 | whatwg-encoding: 1.0.5 2825 | whatwg-mimetype: 2.3.0 2826 | whatwg-url: 8.4.0 2827 | ws: 7.4.4 2828 | xml-name-validator: 3.0.0 2829 | dev: true 2830 | engines: 2831 | node: '>=10' 2832 | peerDependencies: 2833 | canvas: ^2.5.0 2834 | peerDependenciesMeta: 2835 | canvas: 2836 | optional: true 2837 | resolution: 2838 | integrity: sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA== 2839 | /jsesc/2.5.2: 2840 | dev: true 2841 | engines: 2842 | node: '>=4' 2843 | hasBin: true 2844 | resolution: 2845 | integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 2846 | /json-parse-even-better-errors/2.3.1: 2847 | dev: true 2848 | resolution: 2849 | integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 2850 | /json-schema-traverse/0.4.1: 2851 | dev: true 2852 | resolution: 2853 | integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 2854 | /json-schema/0.2.3: 2855 | dev: true 2856 | resolution: 2857 | integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 2858 | /json-stringify-safe/5.0.1: 2859 | dev: true 2860 | resolution: 2861 | integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 2862 | /json5/2.2.0: 2863 | dependencies: 2864 | minimist: 1.2.5 2865 | dev: true 2866 | engines: 2867 | node: '>=6' 2868 | hasBin: true 2869 | resolution: 2870 | integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 2871 | /jsprim/1.4.1: 2872 | dependencies: 2873 | assert-plus: 1.0.0 2874 | extsprintf: 1.3.0 2875 | json-schema: 0.2.3 2876 | verror: 1.10.0 2877 | dev: true 2878 | engines: 2879 | '0': node >=0.6.0 2880 | resolution: 2881 | integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 2882 | /kind-of/3.2.2: 2883 | dependencies: 2884 | is-buffer: 1.1.6 2885 | dev: true 2886 | engines: 2887 | node: '>=0.10.0' 2888 | resolution: 2889 | integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 2890 | /kind-of/4.0.0: 2891 | dependencies: 2892 | is-buffer: 1.1.6 2893 | dev: true 2894 | engines: 2895 | node: '>=0.10.0' 2896 | resolution: 2897 | integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 2898 | /kind-of/5.1.0: 2899 | dev: true 2900 | engines: 2901 | node: '>=0.10.0' 2902 | resolution: 2903 | integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 2904 | /kind-of/6.0.3: 2905 | dev: true 2906 | engines: 2907 | node: '>=0.10.0' 2908 | resolution: 2909 | integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 2910 | /kleur/3.0.3: 2911 | dev: true 2912 | engines: 2913 | node: '>=6' 2914 | resolution: 2915 | integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== 2916 | /leven/3.1.0: 2917 | dev: true 2918 | engines: 2919 | node: '>=6' 2920 | resolution: 2921 | integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 2922 | /levn/0.3.0: 2923 | dependencies: 2924 | prelude-ls: 1.1.2 2925 | type-check: 0.3.2 2926 | dev: true 2927 | engines: 2928 | node: '>= 0.8.0' 2929 | resolution: 2930 | integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 2931 | /lines-and-columns/1.1.6: 2932 | dev: true 2933 | resolution: 2934 | integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 2935 | /locate-path/5.0.0: 2936 | dependencies: 2937 | p-locate: 4.1.0 2938 | dev: true 2939 | engines: 2940 | node: '>=8' 2941 | resolution: 2942 | integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 2943 | /lodash.sortby/4.7.0: 2944 | dev: true 2945 | resolution: 2946 | integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 2947 | /lodash/4.17.21: 2948 | dev: true 2949 | resolution: 2950 | integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 2951 | /lodge/0.1.7: 2952 | dependencies: 2953 | has-flag: 3.0.0 2954 | dev: true 2955 | resolution: 2956 | integrity: sha512-FILl/6cIFPRtBqwIELLzoRSfr9EACaNa6udjJ8+H90XgZA4qilZaA6r5aIzdU9O6C5QSOsKmmbABL5R0J1S1fA== 2957 | /log-symbols/3.0.0: 2958 | dependencies: 2959 | chalk: 2.4.2 2960 | dev: true 2961 | engines: 2962 | node: '>=8' 2963 | resolution: 2964 | integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== 2965 | /lru-cache/6.0.0: 2966 | dependencies: 2967 | yallist: 4.0.0 2968 | dev: true 2969 | engines: 2970 | node: '>=10' 2971 | resolution: 2972 | integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 2973 | /magic-string/0.25.7: 2974 | dependencies: 2975 | sourcemap-codec: 1.4.8 2976 | dev: true 2977 | resolution: 2978 | integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 2979 | /make-dir/3.1.0: 2980 | dependencies: 2981 | semver: 6.3.0 2982 | dev: true 2983 | engines: 2984 | node: '>=8' 2985 | resolution: 2986 | integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 2987 | /makeerror/1.0.11: 2988 | dependencies: 2989 | tmpl: 1.0.4 2990 | dev: true 2991 | resolution: 2992 | integrity: sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= 2993 | /map-cache/0.2.2: 2994 | dev: true 2995 | engines: 2996 | node: '>=0.10.0' 2997 | resolution: 2998 | integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 2999 | /map-visit/1.0.0: 3000 | dependencies: 3001 | object-visit: 1.0.1 3002 | dev: true 3003 | engines: 3004 | node: '>=0.10.0' 3005 | resolution: 3006 | integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 3007 | /merge-stream/2.0.0: 3008 | dev: true 3009 | resolution: 3010 | integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 3011 | /micromatch/3.1.10: 3012 | dependencies: 3013 | arr-diff: 4.0.0 3014 | array-unique: 0.3.2 3015 | braces: 2.3.2 3016 | define-property: 2.0.2 3017 | extend-shallow: 3.0.2 3018 | extglob: 2.0.4 3019 | fragment-cache: 0.2.1 3020 | kind-of: 6.0.3 3021 | nanomatch: 1.2.13 3022 | object.pick: 1.3.0 3023 | regex-not: 1.0.2 3024 | snapdragon: 0.8.2 3025 | to-regex: 3.0.2 3026 | dev: true 3027 | engines: 3028 | node: '>=0.10.0' 3029 | resolution: 3030 | integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 3031 | /micromatch/4.0.2: 3032 | dependencies: 3033 | braces: 3.0.2 3034 | picomatch: 2.2.2 3035 | dev: true 3036 | engines: 3037 | node: '>=8' 3038 | resolution: 3039 | integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== 3040 | /mime-db/1.46.0: 3041 | dev: true 3042 | engines: 3043 | node: '>= 0.6' 3044 | resolution: 3045 | integrity: sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== 3046 | /mime-types/2.1.29: 3047 | dependencies: 3048 | mime-db: 1.46.0 3049 | dev: true 3050 | engines: 3051 | node: '>= 0.6' 3052 | resolution: 3053 | integrity: sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== 3054 | /mimic-fn/2.1.0: 3055 | dev: true 3056 | engines: 3057 | node: '>=6' 3058 | resolution: 3059 | integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 3060 | /minimatch/3.0.4: 3061 | dependencies: 3062 | brace-expansion: 1.1.11 3063 | dev: true 3064 | resolution: 3065 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 3066 | /minimist/1.2.5: 3067 | dev: true 3068 | resolution: 3069 | integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 3070 | /mixin-deep/1.3.2: 3071 | dependencies: 3072 | for-in: 1.0.2 3073 | is-extendable: 1.0.1 3074 | dev: true 3075 | engines: 3076 | node: '>=0.10.0' 3077 | resolution: 3078 | integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== 3079 | /ms/2.0.0: 3080 | dev: true 3081 | resolution: 3082 | integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 3083 | /ms/2.1.2: 3084 | dev: true 3085 | resolution: 3086 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 3087 | /mute-stream/0.0.8: 3088 | dev: true 3089 | resolution: 3090 | integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 3091 | /nanomatch/1.2.13: 3092 | dependencies: 3093 | arr-diff: 4.0.0 3094 | array-unique: 0.3.2 3095 | define-property: 2.0.2 3096 | extend-shallow: 3.0.2 3097 | fragment-cache: 0.2.1 3098 | is-windows: 1.0.2 3099 | kind-of: 6.0.3 3100 | object.pick: 1.3.0 3101 | regex-not: 1.0.2 3102 | snapdragon: 0.8.2 3103 | to-regex: 3.0.2 3104 | dev: true 3105 | engines: 3106 | node: '>=0.10.0' 3107 | resolution: 3108 | integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 3109 | /natural-compare/1.4.0: 3110 | dev: true 3111 | resolution: 3112 | integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 3113 | /nice-try/1.0.5: 3114 | dev: true 3115 | resolution: 3116 | integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 3117 | /node-addon-api/3.1.0: 3118 | dev: false 3119 | resolution: 3120 | integrity: sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== 3121 | /node-gyp-build/4.2.3: 3122 | dev: false 3123 | hasBin: true 3124 | resolution: 3125 | integrity: sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== 3126 | /node-int64/0.4.0: 3127 | dev: true 3128 | resolution: 3129 | integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= 3130 | /node-modules-regexp/1.0.0: 3131 | dev: true 3132 | engines: 3133 | node: '>=0.10.0' 3134 | resolution: 3135 | integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= 3136 | /node-notifier/8.0.2: 3137 | dependencies: 3138 | growly: 1.3.0 3139 | is-wsl: 2.2.0 3140 | semver: 7.3.4 3141 | shellwords: 0.1.1 3142 | uuid: 8.3.2 3143 | which: 2.0.2 3144 | dev: true 3145 | optional: true 3146 | resolution: 3147 | integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== 3148 | /node-releases/1.1.71: 3149 | dev: true 3150 | resolution: 3151 | integrity: sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== 3152 | /normalize-package-data/2.5.0: 3153 | dependencies: 3154 | hosted-git-info: 2.8.8 3155 | resolve: 1.20.0 3156 | semver: 5.7.1 3157 | validate-npm-package-license: 3.0.4 3158 | dev: true 3159 | resolution: 3160 | integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 3161 | /normalize-path/2.1.1: 3162 | dependencies: 3163 | remove-trailing-separator: 1.1.0 3164 | dev: true 3165 | engines: 3166 | node: '>=0.10.0' 3167 | resolution: 3168 | integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 3169 | /normalize-path/3.0.0: 3170 | dev: true 3171 | engines: 3172 | node: '>=0.10.0' 3173 | resolution: 3174 | integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 3175 | /npm-run-path/2.0.2: 3176 | dependencies: 3177 | path-key: 2.0.1 3178 | dev: true 3179 | engines: 3180 | node: '>=4' 3181 | resolution: 3182 | integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 3183 | /npm-run-path/4.0.1: 3184 | dependencies: 3185 | path-key: 3.1.1 3186 | dev: true 3187 | engines: 3188 | node: '>=8' 3189 | resolution: 3190 | integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 3191 | /nwsapi/2.2.0: 3192 | dev: true 3193 | resolution: 3194 | integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== 3195 | /oauth-sign/0.9.0: 3196 | dev: true 3197 | resolution: 3198 | integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 3199 | /object-copy/0.1.0: 3200 | dependencies: 3201 | copy-descriptor: 0.1.1 3202 | define-property: 0.2.5 3203 | kind-of: 3.2.2 3204 | dev: true 3205 | engines: 3206 | node: '>=0.10.0' 3207 | resolution: 3208 | integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 3209 | /object-inspect/1.9.0: 3210 | dev: true 3211 | resolution: 3212 | integrity: sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== 3213 | /object-keys/1.1.1: 3214 | dev: true 3215 | engines: 3216 | node: '>= 0.4' 3217 | resolution: 3218 | integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 3219 | /object-visit/1.0.1: 3220 | dependencies: 3221 | isobject: 3.0.1 3222 | dev: true 3223 | engines: 3224 | node: '>=0.10.0' 3225 | resolution: 3226 | integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 3227 | /object.assign/4.1.2: 3228 | dependencies: 3229 | call-bind: 1.0.2 3230 | define-properties: 1.1.3 3231 | has-symbols: 1.0.2 3232 | object-keys: 1.1.1 3233 | dev: true 3234 | engines: 3235 | node: '>= 0.4' 3236 | resolution: 3237 | integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 3238 | /object.getownpropertydescriptors/2.1.2: 3239 | dependencies: 3240 | call-bind: 1.0.2 3241 | define-properties: 1.1.3 3242 | es-abstract: 1.18.0 3243 | dev: true 3244 | engines: 3245 | node: '>= 0.8' 3246 | resolution: 3247 | integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== 3248 | /object.pick/1.3.0: 3249 | dependencies: 3250 | isobject: 3.0.1 3251 | dev: true 3252 | engines: 3253 | node: '>=0.10.0' 3254 | resolution: 3255 | integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 3256 | /once/1.4.0: 3257 | dependencies: 3258 | wrappy: 1.0.2 3259 | dev: true 3260 | resolution: 3261 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 3262 | /onetime/5.1.2: 3263 | dependencies: 3264 | mimic-fn: 2.1.0 3265 | dev: true 3266 | engines: 3267 | node: '>=6' 3268 | resolution: 3269 | integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 3270 | /optionator/0.8.3: 3271 | dependencies: 3272 | deep-is: 0.1.3 3273 | fast-levenshtein: 2.0.6 3274 | levn: 0.3.0 3275 | prelude-ls: 1.1.2 3276 | type-check: 0.3.2 3277 | word-wrap: 1.2.3 3278 | dev: true 3279 | engines: 3280 | node: '>= 0.8.0' 3281 | resolution: 3282 | integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 3283 | /ora/4.1.1: 3284 | dependencies: 3285 | chalk: 3.0.0 3286 | cli-cursor: 3.1.0 3287 | cli-spinners: 2.6.0 3288 | is-interactive: 1.0.0 3289 | log-symbols: 3.0.0 3290 | mute-stream: 0.0.8 3291 | strip-ansi: 6.0.0 3292 | wcwidth: 1.0.1 3293 | dev: true 3294 | engines: 3295 | node: '>=8' 3296 | resolution: 3297 | integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== 3298 | /p-each-series/2.2.0: 3299 | dev: true 3300 | engines: 3301 | node: '>=8' 3302 | resolution: 3303 | integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== 3304 | /p-finally/1.0.0: 3305 | dev: true 3306 | engines: 3307 | node: '>=4' 3308 | resolution: 3309 | integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 3310 | /p-limit/2.3.0: 3311 | dependencies: 3312 | p-try: 2.2.0 3313 | dev: true 3314 | engines: 3315 | node: '>=6' 3316 | resolution: 3317 | integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 3318 | /p-locate/4.1.0: 3319 | dependencies: 3320 | p-limit: 2.3.0 3321 | dev: true 3322 | engines: 3323 | node: '>=8' 3324 | resolution: 3325 | integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 3326 | /p-try/2.2.0: 3327 | dev: true 3328 | engines: 3329 | node: '>=6' 3330 | resolution: 3331 | integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 3332 | /parse-json/5.2.0: 3333 | dependencies: 3334 | '@babel/code-frame': 7.12.13 3335 | error-ex: 1.3.2 3336 | json-parse-even-better-errors: 2.3.1 3337 | lines-and-columns: 1.1.6 3338 | dev: true 3339 | engines: 3340 | node: '>=8' 3341 | resolution: 3342 | integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 3343 | /parse5/6.0.1: 3344 | dev: true 3345 | resolution: 3346 | integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 3347 | /pascalcase/0.1.1: 3348 | dev: true 3349 | engines: 3350 | node: '>=0.10.0' 3351 | resolution: 3352 | integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 3353 | /path-exists/4.0.0: 3354 | dev: true 3355 | engines: 3356 | node: '>=8' 3357 | resolution: 3358 | integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 3359 | /path-is-absolute/1.0.1: 3360 | dev: true 3361 | engines: 3362 | node: '>=0.10.0' 3363 | resolution: 3364 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 3365 | /path-key/2.0.1: 3366 | dev: true 3367 | engines: 3368 | node: '>=4' 3369 | resolution: 3370 | integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 3371 | /path-key/3.1.1: 3372 | dev: true 3373 | engines: 3374 | node: '>=8' 3375 | resolution: 3376 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 3377 | /path-parse/1.0.6: 3378 | dev: true 3379 | resolution: 3380 | integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 3381 | /performance-now/2.1.0: 3382 | dev: true 3383 | resolution: 3384 | integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 3385 | /picomatch/2.2.2: 3386 | dev: true 3387 | engines: 3388 | node: '>=8.6' 3389 | resolution: 3390 | integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 3391 | /pirates/4.0.1: 3392 | dependencies: 3393 | node-modules-regexp: 1.0.0 3394 | dev: true 3395 | engines: 3396 | node: '>= 6' 3397 | resolution: 3398 | integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== 3399 | /pkg-dir/4.2.0: 3400 | dependencies: 3401 | find-up: 4.1.0 3402 | dev: true 3403 | engines: 3404 | node: '>=8' 3405 | resolution: 3406 | integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 3407 | /posix-character-classes/0.1.1: 3408 | dev: true 3409 | engines: 3410 | node: '>=0.10.0' 3411 | resolution: 3412 | integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 3413 | /prelude-ls/1.1.2: 3414 | dev: true 3415 | engines: 3416 | node: '>= 0.8.0' 3417 | resolution: 3418 | integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 3419 | /prettier/2.2.1: 3420 | dev: true 3421 | engines: 3422 | node: '>=10.13.0' 3423 | hasBin: true 3424 | resolution: 3425 | integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== 3426 | /pretty-format/26.6.2: 3427 | dependencies: 3428 | '@jest/types': 26.6.2 3429 | ansi-regex: 5.0.0 3430 | ansi-styles: 4.3.0 3431 | react-is: 17.0.1 3432 | dev: true 3433 | engines: 3434 | node: '>= 10' 3435 | resolution: 3436 | integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== 3437 | /prompts/2.4.0: 3438 | dependencies: 3439 | kleur: 3.0.3 3440 | sisteransi: 1.0.5 3441 | dev: true 3442 | engines: 3443 | node: '>= 6' 3444 | resolution: 3445 | integrity: sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== 3446 | /psl/1.8.0: 3447 | dev: true 3448 | resolution: 3449 | integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 3450 | /pump/3.0.0: 3451 | dependencies: 3452 | end-of-stream: 1.4.4 3453 | once: 1.4.0 3454 | dev: true 3455 | resolution: 3456 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 3457 | /punycode/2.1.1: 3458 | dev: true 3459 | engines: 3460 | node: '>=6' 3461 | resolution: 3462 | integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 3463 | /qs/6.5.2: 3464 | dev: true 3465 | engines: 3466 | node: '>=0.6' 3467 | resolution: 3468 | integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 3469 | /react-is/17.0.1: 3470 | dev: true 3471 | resolution: 3472 | integrity: sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== 3473 | /read-pkg-up/7.0.1: 3474 | dependencies: 3475 | find-up: 4.1.0 3476 | read-pkg: 5.2.0 3477 | type-fest: 0.8.1 3478 | dev: true 3479 | engines: 3480 | node: '>=8' 3481 | resolution: 3482 | integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== 3483 | /read-pkg/5.2.0: 3484 | dependencies: 3485 | '@types/normalize-package-data': 2.4.0 3486 | normalize-package-data: 2.5.0 3487 | parse-json: 5.2.0 3488 | type-fest: 0.6.0 3489 | dev: true 3490 | engines: 3491 | node: '>=8' 3492 | resolution: 3493 | integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== 3494 | /realpath-native/1.1.0: 3495 | dependencies: 3496 | util.promisify: 1.1.1 3497 | dev: true 3498 | engines: 3499 | node: '>=4' 3500 | resolution: 3501 | integrity: sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== 3502 | /recrawl-sync/2.0.2: 3503 | dependencies: 3504 | '@cush/relative': 0.1.0 3505 | glob-regex: 0.3.2 3506 | tslib: 1.14.1 3507 | dev: true 3508 | resolution: 3509 | integrity: sha512-8qprPoeIB7k9r1AoMNcW4lKVBLRyETJsODYB5/tGJtOrU/8Tw4DHRmvPfwjKa/2AP2Kzc/6QHtj+imeeJXP0MQ== 3510 | /regex-not/1.0.2: 3511 | dependencies: 3512 | extend-shallow: 3.0.2 3513 | safe-regex: 1.1.0 3514 | dev: true 3515 | engines: 3516 | node: '>=0.10.0' 3517 | resolution: 3518 | integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 3519 | /remove-trailing-separator/1.1.0: 3520 | dev: true 3521 | resolution: 3522 | integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 3523 | /repeat-element/1.1.3: 3524 | dev: true 3525 | engines: 3526 | node: '>=0.10.0' 3527 | resolution: 3528 | integrity: sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== 3529 | /repeat-string/1.6.1: 3530 | dev: true 3531 | engines: 3532 | node: '>=0.10' 3533 | resolution: 3534 | integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc= 3535 | /request-promise-core/1.1.4_request@2.88.2: 3536 | dependencies: 3537 | lodash: 4.17.21 3538 | request: 2.88.2 3539 | dev: true 3540 | engines: 3541 | node: '>=0.10.0' 3542 | peerDependencies: 3543 | request: ^2.34 3544 | resolution: 3545 | integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== 3546 | /request-promise-native/1.0.9_request@2.88.2: 3547 | dependencies: 3548 | request: 2.88.2 3549 | request-promise-core: 1.1.4_request@2.88.2 3550 | stealthy-require: 1.1.1 3551 | tough-cookie: 2.5.0 3552 | deprecated: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 3553 | dev: true 3554 | engines: 3555 | node: '>=0.12.0' 3556 | peerDependencies: 3557 | request: ^2.34 3558 | resolution: 3559 | integrity: sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== 3560 | /request/2.88.2: 3561 | dependencies: 3562 | aws-sign2: 0.7.0 3563 | aws4: 1.11.0 3564 | caseless: 0.12.0 3565 | combined-stream: 1.0.8 3566 | extend: 3.0.2 3567 | forever-agent: 0.6.1 3568 | form-data: 2.3.3 3569 | har-validator: 5.1.5 3570 | http-signature: 1.2.0 3571 | is-typedarray: 1.0.0 3572 | isstream: 0.1.2 3573 | json-stringify-safe: 5.0.1 3574 | mime-types: 2.1.29 3575 | oauth-sign: 0.9.0 3576 | performance-now: 2.1.0 3577 | qs: 6.5.2 3578 | safe-buffer: 5.2.1 3579 | tough-cookie: 2.5.0 3580 | tunnel-agent: 0.6.0 3581 | uuid: 3.4.0 3582 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 3583 | dev: true 3584 | engines: 3585 | node: '>= 6' 3586 | resolution: 3587 | integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== 3588 | /require-directory/2.1.1: 3589 | dev: true 3590 | engines: 3591 | node: '>=0.10.0' 3592 | resolution: 3593 | integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 3594 | /require-main-filename/2.0.0: 3595 | dev: true 3596 | resolution: 3597 | integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 3598 | /resolve-cwd/3.0.0: 3599 | dependencies: 3600 | resolve-from: 5.0.0 3601 | dev: true 3602 | engines: 3603 | node: '>=8' 3604 | resolution: 3605 | integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 3606 | /resolve-from/5.0.0: 3607 | dev: true 3608 | engines: 3609 | node: '>=8' 3610 | resolution: 3611 | integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 3612 | /resolve-url/0.2.1: 3613 | deprecated: https://github.com/lydell/resolve-url#deprecated 3614 | dev: true 3615 | resolution: 3616 | integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 3617 | /resolve/1.20.0: 3618 | dependencies: 3619 | is-core-module: 2.2.0 3620 | path-parse: 1.0.6 3621 | dev: true 3622 | resolution: 3623 | integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 3624 | /restore-cursor/3.1.0: 3625 | dependencies: 3626 | onetime: 5.1.2 3627 | signal-exit: 3.0.3 3628 | dev: true 3629 | engines: 3630 | node: '>=8' 3631 | resolution: 3632 | integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 3633 | /ret/0.1.15: 3634 | dev: true 3635 | engines: 3636 | node: '>=0.12' 3637 | resolution: 3638 | integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 3639 | /rimraf/3.0.2: 3640 | dependencies: 3641 | glob: 7.1.6 3642 | dev: true 3643 | hasBin: true 3644 | resolution: 3645 | integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 3646 | /rollup-plugin-dts/2.0.1_rollup@2.41.2+typescript@4.2.3: 3647 | dependencies: 3648 | magic-string: 0.25.7 3649 | rollup: 2.41.2 3650 | typescript: 4.2.3 3651 | dev: true 3652 | optionalDependencies: 3653 | '@babel/code-frame': 7.12.13 3654 | peerDependencies: 3655 | rollup: ^2.34.2 3656 | typescript: ^4.1.2 3657 | resolution: 3658 | integrity: sha512-y38NSXIY37YExCumbGBTL5dXg7pL7XD+Kbe98iEHWFN9yiKJf7t4kKBOkml5ylUDjQIXBnNClGDeRktc1T5dmA== 3659 | /rollup-plugin-esbuild/2.6.1_esbuild@0.8.57+rollup@2.41.2: 3660 | dependencies: 3661 | '@rollup/pluginutils': 4.1.0_rollup@2.41.2 3662 | esbuild: 0.8.57 3663 | joycon: 2.2.5 3664 | strip-json-comments: 3.1.1 3665 | dev: true 3666 | engines: 3667 | node: '>=12' 3668 | peerDependencies: 3669 | esbuild: '>=0.7.0' 3670 | rollup: '*' 3671 | resolution: 3672 | integrity: sha512-hskMEQQ4Vxlyoeg1OWlFTwWHIhpNaw6q+diOT7p9pdkk34m9Mbk3aymS/JbTqLXy/AbJi22iuXrucknKpeczfg== 3673 | /rollup/2.41.2: 3674 | dev: true 3675 | engines: 3676 | node: '>=10.0.0' 3677 | hasBin: true 3678 | optionalDependencies: 3679 | fsevents: 2.3.2 3680 | resolution: 3681 | integrity: sha512-6u8fJJXJx6fmvKrAC9DHYZgONvSkz8S9b/VFBjoQ6dkKdHyPpPbpqiNl2Bao9XBzDHpq672X6sGZ9G1ZBqAHMg== 3682 | /rsvp/4.8.5: 3683 | dev: true 3684 | engines: 3685 | node: 6.* || >= 7.* 3686 | resolution: 3687 | integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== 3688 | /safe-buffer/5.1.2: 3689 | dev: true 3690 | resolution: 3691 | integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 3692 | /safe-buffer/5.2.1: 3693 | dev: true 3694 | resolution: 3695 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 3696 | /safe-regex/1.1.0: 3697 | dependencies: 3698 | ret: 0.1.15 3699 | dev: true 3700 | resolution: 3701 | integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 3702 | /safer-buffer/2.1.2: 3703 | dev: true 3704 | resolution: 3705 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 3706 | /sane/4.1.0: 3707 | dependencies: 3708 | '@cnakazawa/watch': 1.0.4 3709 | anymatch: 2.0.0 3710 | capture-exit: 2.0.0 3711 | exec-sh: 0.3.4 3712 | execa: 1.0.0 3713 | fb-watchman: 2.0.1 3714 | micromatch: 3.1.10 3715 | minimist: 1.2.5 3716 | walker: 1.0.7 3717 | dev: true 3718 | engines: 3719 | node: 6.* || 8.* || >= 10.* 3720 | hasBin: true 3721 | resolution: 3722 | integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== 3723 | /saxes/5.0.1: 3724 | dependencies: 3725 | xmlchars: 2.2.0 3726 | dev: true 3727 | engines: 3728 | node: '>=10' 3729 | resolution: 3730 | integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== 3731 | /saxon/0.2.11: 3732 | dependencies: 3733 | graceful-fs: 4.2.6 3734 | dev: true 3735 | resolution: 3736 | integrity: sha512-ErIte+ch3wBWJzaYNKoyXAGLZP5HFgwkMf8SB4+A7GoCNJoAV0Y+XpJLHIfR1Lp3Wn2LUgTIB44EtG4EPgw+Ig== 3737 | /semver/5.7.1: 3738 | dev: true 3739 | hasBin: true 3740 | resolution: 3741 | integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 3742 | /semver/6.3.0: 3743 | dev: true 3744 | hasBin: true 3745 | resolution: 3746 | integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 3747 | /semver/7.3.4: 3748 | dependencies: 3749 | lru-cache: 6.0.0 3750 | dev: true 3751 | engines: 3752 | node: '>=10' 3753 | hasBin: true 3754 | resolution: 3755 | integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== 3756 | /set-blocking/2.0.0: 3757 | dev: true 3758 | resolution: 3759 | integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 3760 | /set-value/2.0.1: 3761 | dependencies: 3762 | extend-shallow: 2.0.1 3763 | is-extendable: 0.1.1 3764 | is-plain-object: 2.0.4 3765 | split-string: 3.1.0 3766 | dev: true 3767 | engines: 3768 | node: '>=0.10.0' 3769 | resolution: 3770 | integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== 3771 | /shebang-command/1.2.0: 3772 | dependencies: 3773 | shebang-regex: 1.0.0 3774 | dev: true 3775 | engines: 3776 | node: '>=0.10.0' 3777 | resolution: 3778 | integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 3779 | /shebang-command/2.0.0: 3780 | dependencies: 3781 | shebang-regex: 3.0.0 3782 | dev: true 3783 | engines: 3784 | node: '>=8' 3785 | resolution: 3786 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 3787 | /shebang-regex/1.0.0: 3788 | dev: true 3789 | engines: 3790 | node: '>=0.10.0' 3791 | resolution: 3792 | integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 3793 | /shebang-regex/3.0.0: 3794 | dev: true 3795 | engines: 3796 | node: '>=8' 3797 | resolution: 3798 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 3799 | /shell-quote/1.7.2: 3800 | dev: true 3801 | resolution: 3802 | integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== 3803 | /shellwords/0.1.1: 3804 | dev: true 3805 | optional: true 3806 | resolution: 3807 | integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== 3808 | /signal-exit/3.0.3: 3809 | dev: true 3810 | resolution: 3811 | integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 3812 | /sisteransi/1.0.5: 3813 | dev: true 3814 | resolution: 3815 | integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== 3816 | /slash/3.0.0: 3817 | engines: 3818 | node: '>=8' 3819 | resolution: 3820 | integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 3821 | /slurm/0.5.10: 3822 | dev: true 3823 | resolution: 3824 | integrity: sha512-+AyOdqZCdwe8kfjYPxKYSdRcCXBMNDh3azYcBAyVfmtfXuvdZ2HVattk2n5Lta36LyC44gcMnnapxB6NBuKgiA== 3825 | /snapdragon-node/2.1.1: 3826 | dependencies: 3827 | define-property: 1.0.0 3828 | isobject: 3.0.1 3829 | snapdragon-util: 3.0.1 3830 | dev: true 3831 | engines: 3832 | node: '>=0.10.0' 3833 | resolution: 3834 | integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 3835 | /snapdragon-util/3.0.1: 3836 | dependencies: 3837 | kind-of: 3.2.2 3838 | dev: true 3839 | engines: 3840 | node: '>=0.10.0' 3841 | resolution: 3842 | integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 3843 | /snapdragon/0.8.2: 3844 | dependencies: 3845 | base: 0.11.2 3846 | debug: 2.6.9 3847 | define-property: 0.2.5 3848 | extend-shallow: 2.0.1 3849 | map-cache: 0.2.2 3850 | source-map: 0.5.7 3851 | source-map-resolve: 0.5.3 3852 | use: 3.1.1 3853 | dev: true 3854 | engines: 3855 | node: '>=0.10.0' 3856 | resolution: 3857 | integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 3858 | /source-map-resolve/0.5.3: 3859 | dependencies: 3860 | atob: 2.1.2 3861 | decode-uri-component: 0.2.0 3862 | resolve-url: 0.2.1 3863 | source-map-url: 0.4.1 3864 | urix: 0.1.0 3865 | dev: true 3866 | resolution: 3867 | integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== 3868 | /source-map-support/0.5.19: 3869 | dependencies: 3870 | buffer-from: 1.1.1 3871 | source-map: 0.6.1 3872 | dev: true 3873 | resolution: 3874 | integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 3875 | /source-map-url/0.4.1: 3876 | dev: true 3877 | resolution: 3878 | integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== 3879 | /source-map/0.5.7: 3880 | dev: true 3881 | engines: 3882 | node: '>=0.10.0' 3883 | resolution: 3884 | integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 3885 | /source-map/0.6.1: 3886 | dev: true 3887 | engines: 3888 | node: '>=0.10.0' 3889 | resolution: 3890 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 3891 | /source-map/0.7.3: 3892 | dev: true 3893 | engines: 3894 | node: '>= 8' 3895 | resolution: 3896 | integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 3897 | /sourcemap-codec/1.4.8: 3898 | dev: true 3899 | resolution: 3900 | integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 3901 | /spdx-correct/3.1.1: 3902 | dependencies: 3903 | spdx-expression-parse: 3.0.1 3904 | spdx-license-ids: 3.0.7 3905 | dev: true 3906 | resolution: 3907 | integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 3908 | /spdx-exceptions/2.3.0: 3909 | dev: true 3910 | resolution: 3911 | integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 3912 | /spdx-expression-parse/3.0.1: 3913 | dependencies: 3914 | spdx-exceptions: 2.3.0 3915 | spdx-license-ids: 3.0.7 3916 | dev: true 3917 | resolution: 3918 | integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 3919 | /spdx-license-ids/3.0.7: 3920 | dev: true 3921 | resolution: 3922 | integrity: sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 3923 | /split-string/3.1.0: 3924 | dependencies: 3925 | extend-shallow: 3.0.2 3926 | dev: true 3927 | engines: 3928 | node: '>=0.10.0' 3929 | resolution: 3930 | integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 3931 | /sprintf-js/1.0.3: 3932 | dev: true 3933 | resolution: 3934 | integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 3935 | /sshpk/1.16.1: 3936 | dependencies: 3937 | asn1: 0.2.4 3938 | assert-plus: 1.0.0 3939 | bcrypt-pbkdf: 1.0.2 3940 | dashdash: 1.14.1 3941 | ecc-jsbn: 0.1.2 3942 | getpass: 0.1.7 3943 | jsbn: 0.1.1 3944 | safer-buffer: 2.1.2 3945 | tweetnacl: 0.14.5 3946 | dev: true 3947 | engines: 3948 | node: '>=0.10.0' 3949 | hasBin: true 3950 | resolution: 3951 | integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== 3952 | /stack-utils/2.0.3: 3953 | dependencies: 3954 | escape-string-regexp: 2.0.0 3955 | dev: true 3956 | engines: 3957 | node: '>=10' 3958 | resolution: 3959 | integrity: sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== 3960 | /static-extend/0.1.2: 3961 | dependencies: 3962 | define-property: 0.2.5 3963 | object-copy: 0.1.0 3964 | dev: true 3965 | engines: 3966 | node: '>=0.10.0' 3967 | resolution: 3968 | integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 3969 | /stealthy-require/1.1.1: 3970 | dev: true 3971 | engines: 3972 | node: '>=0.10.0' 3973 | resolution: 3974 | integrity: sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= 3975 | /string-length/4.0.1: 3976 | dependencies: 3977 | char-regex: 1.0.2 3978 | strip-ansi: 6.0.0 3979 | dev: true 3980 | engines: 3981 | node: '>=10' 3982 | resolution: 3983 | integrity: sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== 3984 | /string-width/4.2.2: 3985 | dependencies: 3986 | emoji-regex: 8.0.0 3987 | is-fullwidth-code-point: 3.0.0 3988 | strip-ansi: 6.0.0 3989 | dev: true 3990 | engines: 3991 | node: '>=8' 3992 | resolution: 3993 | integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 3994 | /string.prototype.trimend/1.0.4: 3995 | dependencies: 3996 | call-bind: 1.0.2 3997 | define-properties: 1.1.3 3998 | dev: true 3999 | resolution: 4000 | integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 4001 | /string.prototype.trimstart/1.0.4: 4002 | dependencies: 4003 | call-bind: 1.0.2 4004 | define-properties: 1.1.3 4005 | dev: true 4006 | resolution: 4007 | integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 4008 | /strip-ansi/6.0.0: 4009 | dependencies: 4010 | ansi-regex: 5.0.0 4011 | dev: true 4012 | engines: 4013 | node: '>=8' 4014 | resolution: 4015 | integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 4016 | /strip-bom/4.0.0: 4017 | dev: true 4018 | engines: 4019 | node: '>=8' 4020 | resolution: 4021 | integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 4022 | /strip-eof/1.0.0: 4023 | dev: true 4024 | engines: 4025 | node: '>=0.10.0' 4026 | resolution: 4027 | integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 4028 | /strip-final-newline/2.0.0: 4029 | dev: true 4030 | engines: 4031 | node: '>=6' 4032 | resolution: 4033 | integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 4034 | /strip-json-comments/3.1.1: 4035 | dev: true 4036 | engines: 4037 | node: '>=8' 4038 | resolution: 4039 | integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 4040 | /supports-color/5.5.0: 4041 | dependencies: 4042 | has-flag: 3.0.0 4043 | dev: true 4044 | engines: 4045 | node: '>=4' 4046 | resolution: 4047 | integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 4048 | /supports-color/7.2.0: 4049 | dependencies: 4050 | has-flag: 4.0.0 4051 | dev: true 4052 | engines: 4053 | node: '>=8' 4054 | resolution: 4055 | integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 4056 | /supports-hyperlinks/2.1.0: 4057 | dependencies: 4058 | has-flag: 4.0.0 4059 | supports-color: 7.2.0 4060 | dev: true 4061 | engines: 4062 | node: '>=8' 4063 | resolution: 4064 | integrity: sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== 4065 | /symbol-tree/3.2.4: 4066 | dev: true 4067 | resolution: 4068 | integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== 4069 | /terminal-link/2.1.1: 4070 | dependencies: 4071 | ansi-escapes: 4.3.1 4072 | supports-hyperlinks: 2.1.0 4073 | dev: true 4074 | engines: 4075 | node: '>=8' 4076 | resolution: 4077 | integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== 4078 | /test-exclude/6.0.0: 4079 | dependencies: 4080 | '@istanbuljs/schema': 0.1.3 4081 | glob: 7.1.6 4082 | minimatch: 3.0.4 4083 | dev: true 4084 | engines: 4085 | node: '>=8' 4086 | resolution: 4087 | integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 4088 | /throat/5.0.0: 4089 | dev: true 4090 | resolution: 4091 | integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== 4092 | /tmpl/1.0.4: 4093 | dev: true 4094 | resolution: 4095 | integrity: sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= 4096 | /to-fast-properties/2.0.0: 4097 | dev: true 4098 | engines: 4099 | node: '>=4' 4100 | resolution: 4101 | integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 4102 | /to-object-path/0.3.0: 4103 | dependencies: 4104 | kind-of: 3.2.2 4105 | dev: true 4106 | engines: 4107 | node: '>=0.10.0' 4108 | resolution: 4109 | integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 4110 | /to-regex-range/2.1.1: 4111 | dependencies: 4112 | is-number: 3.0.0 4113 | repeat-string: 1.6.1 4114 | dev: true 4115 | engines: 4116 | node: '>=0.10.0' 4117 | resolution: 4118 | integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 4119 | /to-regex-range/5.0.1: 4120 | dependencies: 4121 | is-number: 7.0.0 4122 | dev: true 4123 | engines: 4124 | node: '>=8.0' 4125 | resolution: 4126 | integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 4127 | /to-regex/3.0.2: 4128 | dependencies: 4129 | define-property: 2.0.2 4130 | extend-shallow: 3.0.2 4131 | regex-not: 1.0.2 4132 | safe-regex: 1.1.0 4133 | dev: true 4134 | engines: 4135 | node: '>=0.10.0' 4136 | resolution: 4137 | integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 4138 | /tough-cookie/2.5.0: 4139 | dependencies: 4140 | psl: 1.8.0 4141 | punycode: 2.1.1 4142 | dev: true 4143 | engines: 4144 | node: '>=0.8' 4145 | resolution: 4146 | integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== 4147 | /tough-cookie/4.0.0: 4148 | dependencies: 4149 | psl: 1.8.0 4150 | punycode: 2.1.1 4151 | universalify: 0.1.2 4152 | dev: true 4153 | engines: 4154 | node: '>=6' 4155 | resolution: 4156 | integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== 4157 | /tr46/2.0.2: 4158 | dependencies: 4159 | punycode: 2.1.1 4160 | dev: true 4161 | engines: 4162 | node: '>=8' 4163 | resolution: 4164 | integrity: sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== 4165 | /tslib/1.14.1: 4166 | dev: true 4167 | resolution: 4168 | integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 4169 | /tunnel-agent/0.6.0: 4170 | dependencies: 4171 | safe-buffer: 5.2.1 4172 | dev: true 4173 | resolution: 4174 | integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 4175 | /tweetnacl/0.14.5: 4176 | dev: true 4177 | resolution: 4178 | integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 4179 | /type-check/0.3.2: 4180 | dependencies: 4181 | prelude-ls: 1.1.2 4182 | dev: true 4183 | engines: 4184 | node: '>= 0.8.0' 4185 | resolution: 4186 | integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 4187 | /type-detect/4.0.8: 4188 | dev: true 4189 | engines: 4190 | node: '>=4' 4191 | resolution: 4192 | integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 4193 | /type-error/1.0.3: 4194 | dev: true 4195 | resolution: 4196 | integrity: sha512-hlNA4NwwjtL9clb8nv+x/5C45uzxND+N+h+/y3z2dYdubGSmdtNtJjHVH4E68ZHR98Bkav4ACf1lmTZepc/4sg== 4197 | /type-fest/0.11.0: 4198 | dev: true 4199 | engines: 4200 | node: '>=8' 4201 | resolution: 4202 | integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== 4203 | /type-fest/0.6.0: 4204 | dev: true 4205 | engines: 4206 | node: '>=8' 4207 | resolution: 4208 | integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== 4209 | /type-fest/0.8.1: 4210 | dev: true 4211 | engines: 4212 | node: '>=8' 4213 | resolution: 4214 | integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 4215 | /typedarray-to-buffer/3.1.5: 4216 | dependencies: 4217 | is-typedarray: 1.0.0 4218 | dev: true 4219 | resolution: 4220 | integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 4221 | /typescript/4.2.3: 4222 | dev: true 4223 | engines: 4224 | node: '>=4.2.0' 4225 | hasBin: true 4226 | resolution: 4227 | integrity: sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== 4228 | /unbox-primitive/1.0.0: 4229 | dependencies: 4230 | function-bind: 1.1.1 4231 | has-bigints: 1.0.1 4232 | has-symbols: 1.0.2 4233 | which-boxed-primitive: 1.0.2 4234 | dev: true 4235 | resolution: 4236 | integrity: sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== 4237 | /union-value/1.0.1: 4238 | dependencies: 4239 | arr-union: 3.1.0 4240 | get-value: 2.0.6 4241 | is-extendable: 0.1.1 4242 | set-value: 2.0.1 4243 | dev: true 4244 | engines: 4245 | node: '>=0.10.0' 4246 | resolution: 4247 | integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== 4248 | /universalify/0.1.2: 4249 | dev: true 4250 | engines: 4251 | node: '>= 4.0.0' 4252 | resolution: 4253 | integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 4254 | /unset-value/1.0.0: 4255 | dependencies: 4256 | has-value: 0.3.1 4257 | isobject: 3.0.1 4258 | dev: true 4259 | engines: 4260 | node: '>=0.10.0' 4261 | resolution: 4262 | integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 4263 | /uri-js/4.4.1: 4264 | dependencies: 4265 | punycode: 2.1.1 4266 | dev: true 4267 | resolution: 4268 | integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 4269 | /urix/0.1.0: 4270 | deprecated: Please see https://github.com/lydell/urix#deprecated 4271 | dev: true 4272 | resolution: 4273 | integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 4274 | /use/3.1.1: 4275 | dev: true 4276 | engines: 4277 | node: '>=0.10.0' 4278 | resolution: 4279 | integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 4280 | /util.promisify/1.1.1: 4281 | dependencies: 4282 | call-bind: 1.0.2 4283 | define-properties: 1.1.3 4284 | for-each: 0.3.3 4285 | has-symbols: 1.0.2 4286 | object.getownpropertydescriptors: 2.1.2 4287 | dev: true 4288 | resolution: 4289 | integrity: sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== 4290 | /uuid/3.4.0: 4291 | dev: true 4292 | hasBin: true 4293 | resolution: 4294 | integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 4295 | /uuid/8.3.2: 4296 | dev: true 4297 | hasBin: true 4298 | optional: true 4299 | resolution: 4300 | integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 4301 | /v8-to-istanbul/7.1.0: 4302 | dependencies: 4303 | '@types/istanbul-lib-coverage': 2.0.3 4304 | convert-source-map: 1.7.0 4305 | source-map: 0.7.3 4306 | dev: true 4307 | engines: 4308 | node: '>=10.10.0' 4309 | resolution: 4310 | integrity: sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== 4311 | /validate-npm-package-license/3.0.4: 4312 | dependencies: 4313 | spdx-correct: 3.1.1 4314 | spdx-expression-parse: 3.0.1 4315 | dev: true 4316 | resolution: 4317 | integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 4318 | /verror/1.10.0: 4319 | dependencies: 4320 | assert-plus: 1.0.0 4321 | core-util-is: 1.0.2 4322 | extsprintf: 1.3.0 4323 | dev: true 4324 | engines: 4325 | '0': node >=0.6.0 4326 | resolution: 4327 | integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 4328 | /w3c-hr-time/1.0.2: 4329 | dependencies: 4330 | browser-process-hrtime: 1.0.0 4331 | dev: true 4332 | resolution: 4333 | integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== 4334 | /w3c-xmlserializer/2.0.0: 4335 | dependencies: 4336 | xml-name-validator: 3.0.0 4337 | dev: true 4338 | engines: 4339 | node: '>=10' 4340 | resolution: 4341 | integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== 4342 | /wait-for-path/0.1.1: 4343 | dev: true 4344 | hasBin: true 4345 | resolution: 4346 | integrity: sha512-ugNJWGvdUC0n/SsRsd9lT293tS//IeBuui6egMDS98dIxcCMDUeqhjbYSx3Ur/hond+qucQJct+zRxJPQkZE5w== 4347 | /walker/1.0.7: 4348 | dependencies: 4349 | makeerror: 1.0.11 4350 | dev: true 4351 | resolution: 4352 | integrity: sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= 4353 | /wcwidth/1.0.1: 4354 | dependencies: 4355 | defaults: 1.0.3 4356 | dev: true 4357 | resolution: 4358 | integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 4359 | /webidl-conversions/5.0.0: 4360 | dev: true 4361 | engines: 4362 | node: '>=8' 4363 | resolution: 4364 | integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== 4365 | /webidl-conversions/6.1.0: 4366 | dev: true 4367 | engines: 4368 | node: '>=10.4' 4369 | resolution: 4370 | integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 4371 | /whatwg-encoding/1.0.5: 4372 | dependencies: 4373 | iconv-lite: 0.4.24 4374 | dev: true 4375 | resolution: 4376 | integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== 4377 | /whatwg-mimetype/2.3.0: 4378 | dev: true 4379 | resolution: 4380 | integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== 4381 | /whatwg-url/8.4.0: 4382 | dependencies: 4383 | lodash.sortby: 4.7.0 4384 | tr46: 2.0.2 4385 | webidl-conversions: 6.1.0 4386 | dev: true 4387 | engines: 4388 | node: '>=10' 4389 | resolution: 4390 | integrity: sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== 4391 | /which-boxed-primitive/1.0.2: 4392 | dependencies: 4393 | is-bigint: 1.0.1 4394 | is-boolean-object: 1.1.0 4395 | is-number-object: 1.0.4 4396 | is-string: 1.0.5 4397 | is-symbol: 1.0.3 4398 | dev: true 4399 | resolution: 4400 | integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 4401 | /which-module/2.0.0: 4402 | dev: true 4403 | resolution: 4404 | integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 4405 | /which/1.3.1: 4406 | dependencies: 4407 | isexe: 2.0.0 4408 | dev: true 4409 | hasBin: true 4410 | resolution: 4411 | integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 4412 | /which/2.0.2: 4413 | dependencies: 4414 | isexe: 2.0.0 4415 | dev: true 4416 | engines: 4417 | node: '>= 8' 4418 | hasBin: true 4419 | resolution: 4420 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 4421 | /word-wrap/1.2.3: 4422 | dev: true 4423 | engines: 4424 | node: '>=0.10.0' 4425 | resolution: 4426 | integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 4427 | /wrap-ansi/6.2.0: 4428 | dependencies: 4429 | ansi-styles: 4.3.0 4430 | string-width: 4.2.2 4431 | strip-ansi: 6.0.0 4432 | dev: true 4433 | engines: 4434 | node: '>=8' 4435 | resolution: 4436 | integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 4437 | /wrappy/1.0.2: 4438 | dev: true 4439 | resolution: 4440 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 4441 | /write-file-atomic/3.0.3: 4442 | dependencies: 4443 | imurmurhash: 0.1.4 4444 | is-typedarray: 1.0.0 4445 | signal-exit: 3.0.3 4446 | typedarray-to-buffer: 3.1.5 4447 | dev: true 4448 | resolution: 4449 | integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 4450 | /ws/7.4.4: 4451 | dev: true 4452 | engines: 4453 | node: '>=8.3.0' 4454 | peerDependencies: 4455 | bufferutil: ^4.0.1 4456 | utf-8-validate: ^5.0.2 4457 | peerDependenciesMeta: 4458 | bufferutil: 4459 | optional: true 4460 | utf-8-validate: 4461 | optional: true 4462 | resolution: 4463 | integrity: sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== 4464 | /xml-name-validator/3.0.0: 4465 | dev: true 4466 | resolution: 4467 | integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== 4468 | /xmlchars/2.2.0: 4469 | dev: true 4470 | resolution: 4471 | integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== 4472 | /y18n/4.0.1: 4473 | dev: true 4474 | resolution: 4475 | integrity: sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== 4476 | /yallist/4.0.0: 4477 | dev: true 4478 | resolution: 4479 | integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 4480 | /yargs-parser/18.1.3: 4481 | dependencies: 4482 | camelcase: 5.3.1 4483 | decamelize: 1.2.0 4484 | dev: true 4485 | engines: 4486 | node: '>=6' 4487 | resolution: 4488 | integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== 4489 | /yargs/15.4.1: 4490 | dependencies: 4491 | cliui: 6.0.0 4492 | decamelize: 1.2.0 4493 | find-up: 4.1.0 4494 | get-caller-file: 2.0.5 4495 | require-directory: 2.1.1 4496 | require-main-filename: 2.0.0 4497 | set-blocking: 2.0.0 4498 | string-width: 4.2.2 4499 | which-module: 2.0.0 4500 | y18n: 4.0.1 4501 | yargs-parser: 18.1.3 4502 | dev: true 4503 | engines: 4504 | node: '>=8' 4505 | resolution: 4506 | integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== 4507 | specifiers: 4508 | '@alloc/prettier-config': ^1.0.0 4509 | '@cush/exec': ^1.7.1 4510 | '@parcel/watcher': ^2.0.0-alpha.10 4511 | '@rollup/plugin-node-resolve': ^11.2.0 4512 | '@types/is-windows': ^1.0.0 4513 | '@types/jest': ^26.0.20 4514 | binary-insert: ^1.2.1 4515 | delay: ^5.0.0 4516 | dequal: ^2.0.2 4517 | esbuild: ^0.8.36 4518 | esbuild-jest: npm:@alloc/esbuild-jest@^0.3.0 4519 | filespy: link:. 4520 | glob-regex: ^0.3.2 4521 | indo: ^0.3.42 4522 | is-windows: ^1.0.2 4523 | jest: ^26.6.3 4524 | prettier: ^2.0.5 4525 | rollup: ^2.38.1 4526 | rollup-plugin-dts: ^2.0.1 4527 | rollup-plugin-esbuild: ^2.6.1 4528 | saxon: ^0.2.11 4529 | slash: ^3.0.0 4530 | typescript: ^4.0.0 4531 | wait-for-path: ^0.1.1 4532 | --------------------------------------------------------------------------------