├── .eslintrc.json ├── src ├── index.ts ├── FlipYFilter.ts ├── TilingSprite.ts ├── Sprite.ts ├── BlendFilter.ts ├── MaskFilter.ts ├── ShaderParts.ts └── FilterSystemMixin.ts ├── tsconfig.json ├── .travis.yml ├── .gitignore ├── LICENSE ├── package.json ├── README.md └── pnpm-lock.yaml /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@pixi/eslint-config"], 3 | "rules": { 4 | "linebreak-style": ["off", "linux"], 5 | "camelcase": ["off"] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './BlendFilter'; 2 | export * from './FlipYFilter'; 3 | export * from './MaskFilter'; 4 | export * from './ShaderParts'; 5 | export * from './Sprite'; 6 | export * from './TilingSprite'; 7 | export * from './FilterSystemMixin'; 8 | import { applyMixins } from './FilterSystemMixin'; 9 | 10 | applyMixins(); 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@pixi/extension-scripts/lib/configs/tsconfig.json", 3 | "compilerOptions": { 4 | "strict": false, 5 | "preserveConstEnums": true, 6 | "baseUrl": "./", 7 | "paths": { 8 | "@pixi/picture": [ 9 | "src" 10 | ] 11 | } 12 | }, 13 | "include": [ 14 | "src/**/*" 15 | ] 16 | } 17 | 18 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "5" 5 | - "6" 6 | - "7.10" 7 | - "8.4" 8 | 9 | cache: 10 | yarn: true 11 | directories: 12 | - node_modules 13 | 14 | install: 15 | - npm install -g yarn 16 | - yarn 17 | 18 | script: 19 | - yarn build 20 | - yarn checkpack -- vanillajs -e test/checkpack.ts --validate 21 | - yarn checkpack -- browserify -e test/checkpack.ts --validate 22 | - yarn checkpack -- webpack -e test/checkpack.ts --validate 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # sublime text files 2 | *.sublime* 3 | *.*~*.TMP 4 | 5 | # temp files 6 | .DS_Store 7 | Thumbs.db 8 | Desktop.ini 9 | npm-debug.log 10 | 11 | # project files 12 | .project 13 | 14 | # vim swap files 15 | *.sw* 16 | 17 | # emacs temp files 18 | *~ 19 | \#*# 20 | 21 | # project ignores 22 | !.gitkeep 23 | *__temp 24 | node_modules 25 | docs/ 26 | 27 | # pnpm 28 | .pnpm-debug.log 29 | 30 | # ESM 31 | lib 32 | 33 | # UMD 34 | dist 35 | 36 | # tsc compile 37 | compile 38 | 39 | # jetBrains IDE ignores 40 | .idea 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Ivan Popelyshev 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 | 23 | -------------------------------------------------------------------------------- /src/FlipYFilter.ts: -------------------------------------------------------------------------------- 1 | import { Filter } from '@pixi/core'; 2 | import type { Dict } from '@pixi/utils'; 3 | 4 | const vert = ` 5 | attribute vec2 aVertexPosition; 6 | 7 | uniform mat3 projectionMatrix; 8 | 9 | varying vec2 vTextureCoord; 10 | 11 | uniform vec4 inputSize; 12 | uniform vec4 outputFrame; 13 | uniform vec2 flipY; 14 | 15 | vec4 filterVertexPosition( void ) 16 | { 17 | vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy; 18 | 19 | return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0); 20 | } 21 | 22 | vec2 filterTextureCoord( void ) 23 | { 24 | return aVertexPosition * (outputFrame.zw * inputSize.zw); 25 | } 26 | 27 | void main(void) 28 | { 29 | gl_Position = filterVertexPosition(); 30 | vTextureCoord = filterTextureCoord(); 31 | vTextureCoord.y = flipY.x + flipY.y * vTextureCoord.y; 32 | } 33 | 34 | `; 35 | 36 | export class FlipYFilter extends Filter 37 | { 38 | constructor(frag?: string, uniforms?: Dict) 39 | { 40 | const uni = uniforms || {}; 41 | 42 | if (!uni.flipY) 43 | { 44 | uni.flipY = new Float32Array([0.0, 1.0]); 45 | } 46 | super(vert, frag, uni); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/TilingSprite.ts: -------------------------------------------------------------------------------- 1 | import { TilingSprite as TilingSpriteBase } from '@pixi/sprite-tiling'; 2 | import { Renderer } from '@pixi/core'; 3 | import { getBlendFilterArray } from './ShaderParts'; 4 | import { IPictureFilterSystem } from './FilterSystemMixin'; 5 | 6 | export class TilingSprite extends TilingSpriteBase 7 | { 8 | _render(renderer: Renderer): void 9 | { 10 | // tweak our texture temporarily.. 11 | const texture = (this as any)._texture; 12 | 13 | if (!texture || !texture.valid) 14 | { 15 | return; 16 | } 17 | 18 | const blendFilterArray = getBlendFilterArray(this.blendMode); 19 | 20 | if (blendFilterArray) 21 | { 22 | renderer.batch.flush(); 23 | if (!(renderer.filter as any as IPictureFilterSystem).pushWithCheck(this, blendFilterArray)) 24 | { 25 | return; 26 | } 27 | } 28 | 29 | this.tileTransform.updateLocalTransform(); 30 | this.uvMatrix.update(); 31 | 32 | renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]); 33 | renderer.plugins[this.pluginName].render(this); 34 | 35 | if (blendFilterArray) 36 | { 37 | renderer.batch.flush(); 38 | renderer.filter.pop(); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Sprite.ts: -------------------------------------------------------------------------------- 1 | import { Sprite as SpriteBase } from '@pixi/sprite'; 2 | import { Renderer, BLEND_MODES } from '@pixi/core'; 3 | import { getBlendFilterArray } from './ShaderParts'; 4 | import { IPictureFilterSystem } from './FilterSystemMixin'; 5 | 6 | export class Sprite extends SpriteBase 7 | { 8 | _render(renderer: Renderer): void 9 | { 10 | const texture = (this as any)._texture; 11 | 12 | if (!texture || !texture.valid) 13 | { 14 | return; 15 | } 16 | 17 | const blendFilterArray = getBlendFilterArray(this.blendMode); 18 | const cacheBlend = this.blendMode; 19 | 20 | if (blendFilterArray) 21 | { 22 | renderer.batch.flush(); 23 | if (!(renderer.filter as IPictureFilterSystem).pushWithCheck(this, blendFilterArray)) 24 | { 25 | return; 26 | } 27 | this.blendMode = BLEND_MODES.NORMAL; 28 | } 29 | 30 | this.calculateVertices(); 31 | renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]); 32 | renderer.plugins[this.pluginName].render(this); 33 | 34 | if (blendFilterArray) 35 | { 36 | renderer.batch.flush(); 37 | renderer.filter.pop(); 38 | this.blendMode = cacheBlend; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@pixi/picture", 3 | "version": "4.1.1", 4 | "description": "PixiJS v7 advanced filter renderer, implements advanced blending modes", 5 | "author": "Ivan Popelyshev", 6 | "contributors": [ 7 | "Ivan Popelyshev " 8 | ], 9 | "main": "./lib/index.js", 10 | "module": "./lib/index.mjs", 11 | "types": "./lib/index.d.ts", 12 | "exports": { 13 | ".": { 14 | "import": "./lib/index.mjs", 15 | "require": "./lib/index.js", 16 | "types": "./lib/index.d.ts" 17 | } 18 | }, 19 | "extensionConfig": { 20 | "lint": [ 21 | "src" 22 | ], 23 | "namespace": "PIXI.picture", 24 | "docsName": "PixiJS Picture", 25 | "docsCopyright": "Copyright © 2015 - 2023 Ivan Popelyshev", 26 | "docsTitle": "PixiJS Picture blend API Documentation", 27 | "docsDescription": "Documentation for PixiJS Picture library", 28 | "docsKeyword": "docs, documentation, pixi, pixijs, rendering, pixi-picture, shader, javascript, jsdoc" 29 | }, 30 | "publishConfig": { 31 | "access": "public" 32 | }, 33 | "homepage": "http://www.pixijs.com/", 34 | "bugs": "https://github.com/pixijs/picture/issues", 35 | "license": "MIT", 36 | "repository": { 37 | "type": "git", 38 | "url": "https://github.com/pixijs/picture.git" 39 | }, 40 | "scripts": { 41 | "clean": "xs clean", 42 | "start": "xs serve", 43 | "watch": "xs watch", 44 | "build": "xs build", 45 | "lint": "xs lint", 46 | "lint:fix": "xs lint --fix", 47 | "types": "xs types", 48 | "release": "xs release", 49 | "docs": "xs docs", 50 | "deploy": "xs deploy", 51 | "test": "xs build,docs" 52 | }, 53 | "files": [ 54 | "dist/", 55 | "lib/", 56 | "global.d.ts" 57 | ], 58 | "peerDependencies": { 59 | "@pixi/constants": "^7.2.0", 60 | "@pixi/core": "^7.2.0", 61 | "@pixi/display": "^7.2.0", 62 | "@pixi/sprite": "^7.2.0", 63 | "@pixi/sprite-tiling": "^7.2.0", 64 | "@pixi/math": "^7.2.0", 65 | "@pixi/utils": "^7.2.0" 66 | }, 67 | "devDependencies": { 68 | "@pixi/core": "^7.2.0", 69 | "@pixi/display": "^7.2.0", 70 | "@pixi/extension-scripts": "^1.8.1", 71 | "@pixi/graphics": "^7.2.0" 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/BlendFilter.ts: -------------------------------------------------------------------------------- 1 | import { Filter } from '@pixi/core'; 2 | 3 | /** 4 | * This filter uses a backdrop texture to calculate the output colors. 5 | * 6 | * A backdrop filter can use existing colors in the destination framebuffer to calculate the 7 | * output colors. It does not need to rely on in-built {@link PIXI.BLEND_MODES blend modes} to 8 | * do those calculations. 9 | */ 10 | export class BackdropFilter extends Filter 11 | { 12 | /** 13 | * The name of the {@link Filter.uniforms uniform} for the backdrop texture. 14 | * 15 | * @pixi/picture's does some mixin magic to bind a copy of destination framebuffer to 16 | * this uniform. 17 | */ 18 | backdropUniformName: string = null; 19 | 20 | trivial = false; 21 | /** @ignore */ 22 | _backdropActive = false; 23 | 24 | /** If non-null, @pixi/picture will clear the filter's output framebuffer with this RGBA color. */ 25 | clearColor: Float32Array = null; 26 | } 27 | 28 | /** A shader part for blending source and destination colors. */ 29 | export interface IBlendShaderParts 30 | { 31 | /** 32 | * (optional) Code that declares any additional uniforms to be accepted by the {@link BlendFilter}. 33 | * 34 | * If you do use this, make sure these uniforms are passed in {@link IBlendShaderParts.uniforms uniforms}. 35 | */ 36 | uniformCode?: string; 37 | 38 | /** 39 | * (optional) Uniforms to pass to the resulting {@link BlendFilter}. 40 | * 41 | * Make sure to declare these in {@link IBlendShaderParts.uniformCode uniformCode}. 42 | */ 43 | uniforms?: { [key: string]: any }; 44 | 45 | /** 46 | * The blend code that calculates the output color. The following variables are available to 47 | * this code: 48 | * 49 | * | Variable | Type | Description (colors are usually PMA) | 50 | * |----------|----------|--------------------------------------------| 51 | * | b_src | vec4 | Source color | 52 | * | b_dst | vec4 | Destination color | 53 | * | b_res | vec4 | Output / result color | 54 | */ 55 | blendCode: string; 56 | } 57 | 58 | const filterFrag = ` 59 | varying vec2 vTextureCoord; 60 | 61 | uniform sampler2D uSampler; 62 | uniform sampler2D uBackdrop; 63 | uniform vec2 uBackdrop_flipY; 64 | 65 | %UNIFORM_CODE% 66 | 67 | void main(void) 68 | { 69 | vec2 backdropCoord = vec2(vTextureCoord.x, uBackdrop_flipY.x + uBackdrop_flipY.y * vTextureCoord.y); 70 | vec4 b_src = texture2D(uSampler, vTextureCoord); 71 | vec4 b_dest = texture2D(uBackdrop, backdropCoord); 72 | vec4 b_res = b_dest; 73 | 74 | %BLEND_CODE% 75 | 76 | gl_FragColor = b_res; 77 | }`; 78 | 79 | /** 80 | * A blend filter is a special kind of {@link BackdropFilter} that is used to implement additional blend modes. 81 | * 82 | * The blend filter takes in a {@link IBlendShaderParts} and integrates that code in its shader template to 83 | * blend the source and destination colors. 84 | * 85 | * The backdrop texture uniform for blend filters is {@code "uBackdrop"}. 86 | */ 87 | export class BlendFilter extends BackdropFilter 88 | { 89 | /** @param shaderParts - The blending code shader part. */ 90 | constructor(shaderParts: IBlendShaderParts) 91 | { 92 | let fragCode = filterFrag; 93 | 94 | fragCode = fragCode.replace('%UNIFORM_CODE%', shaderParts.uniformCode || ''); 95 | fragCode = fragCode.replace('%BLEND_CODE%', shaderParts.blendCode || ''); 96 | 97 | super(undefined, fragCode, shaderParts.uniforms); 98 | 99 | this.backdropUniformName = 'uBackdrop'; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @pixi/picture - PixiJS Picture Kit 2 | 3 | Compatible with PixiJS `7.2.0` and up. No guarantee for earlier versions! 4 | 5 | ### Usage 6 | ```js 7 | import * as PIXI from 'pixi.js'; 8 | import {Sprite, getBlendFilter} from '@pixi/picture'; 9 | // hacked sprite or tilingSprite 10 | const sprite = new Sprite(); 11 | sprite.blendMode = PIXI.BLEND_MODES.OVERLAY; 12 | // for other kind of elements 13 | const graphics = new PIXI.Graphics(); 14 | graphics.filters = [getBlendFilter(PIXI.BLEND_MODES.OVERLAY)]; 15 | ``` 16 | 17 | ## Tutorials 18 | 19 | * http://www.shukantpal.com/blog/pixijs/pixijs-picture-kit/ 20 | 21 | ### Known bugs 22 | 23 | * `renderer.render(stage, {transform})` produces wrong result if transform has scale 24 | 25 | ## Blend-modes emulated through filters 26 | 27 | Allows to use blendModes that are not available in pure webgl implementation, such as `PIXI.BLEND_MODES.OVERLAY`. 28 | 29 | Please, don't add children to sprite if you use those blendModes. 30 | 31 | Use `import { Sprite } from '@pixi/picture'` instead of `PIXI.Sprite` (do not use `Sprite.from`). You can re-export it instead of pixi sprite if you use custom pixi build. 32 | 33 | [Overlay example](https://pixijs.github.io/examples/#/plugin-picture/overlay.js) 34 | 35 | Logic: if sprite has special blendMode, push corresponding filter `getBlendFilter(blendMode)`, if area is too small (<1px), dont draw at all. 36 | 37 | If you want to use this with any components - just look in the source of Sprite how its done. 38 | 39 | Assigning a filter to component directly `container.filters = [getBlendFilter(blendMode)]` should work too. 40 | 41 | *To be fixed*: At the moment this implementation is a bit worse than v4, it uses extra pass for filter. 42 | 43 | ## Heavenly filter feature 44 | 45 | Enables `backdropSampler` uniform in filters, works only if you render stage to renderTexture or you have a filter somewhere in parents. 46 | 47 | Sample DisplacementFilter takes everything from container and applies it as a displacement texture on backdrop. 48 | 49 | Note: Currently, if there is a filter that uses backdrop on the element - all filters use resolution from backdrop, you cannot set custom resolution for them! 50 | 51 | [Displacement example](https://pixijs.github.io/examples/#/plugin-picture/displacement.js) 52 | 53 | [Pixelate example](https://pixijs.github.io/examples/#/plugin-picture/pixelate.js) 54 | 55 | ## Drawing from main framebuffer 56 | 57 | Since version `3.0.1`, pixi-picture finally does not need filter above it. However, that comes with a problem: WebGL main framebuffer is flipped by Y. 58 | 59 | You have to use `backdropSampler_flipY` uniform in your blend filters to transform Y coord in case renderTexture was flipped. 60 | 61 | If specified `useContextAlpha: false` in renderer creation parameters, main framebuffer is RGB and not RGBA, its not possible to `copyTex` it, you will see corresponding warning message in the console. 62 | 63 | When using `MaskFilter` with `maskBefore=true`, input is automatically flipped by Y. This operation is not needed if your base filter does not care about flipping Y, for example `BlurFilter` or `ColorMatrixFilter`. 64 | In this case, you can specify `maskFilter.safeFlipY=true`, that will turn off extra flipping. 65 | 66 | ## Vanilla JS, UMD build 67 | 68 | All pixiJS v6 plugins has special `umd` build suited for vanilla. 69 | Navigate `pixi-picture` npm package, take `dist/pixi-picture.umd.js` file. 70 | 71 | ```html 72 | 73 | 74 | ``` 75 | 76 | ```js 77 | let sprite = new PIXI.picture.Sprite(); 78 | ``` 79 | 80 | ## Previous versions 81 | 82 | For PixiJS `v5` and prior see README `pixi-v5` branch, or just use npm package `pixi-picture` 83 | For PixiJS `v6` see `pixi-v6` branch , npm version `3.0.6` 84 | 85 | ## How to build 86 | 87 | ```bash 88 | pnpm install 89 | pnpm run build 90 | ``` 91 | 92 | -------------------------------------------------------------------------------- /src/MaskFilter.ts: -------------------------------------------------------------------------------- 1 | import { FilterSystem, RenderTexture, Filter, BLEND_MODES, CLEAR_MODES } from '@pixi/core'; 2 | import { BlendFilter } from './BlendFilter'; 3 | import { FlipYFilter } from './FlipYFilter'; 4 | 5 | /** 6 | * The RGBA channel for {@link MaskFilter} to use to detect the mask region. 7 | * 8 | * When applying a {@link MaskFilter} to a mask {@link DisplayObject}, the object should render 9 | * into that channel. For example, if using the alpha channel - the mask should render with alpha 10 | * 1.0 where-ever the mask region is. 11 | * 12 | * @property {number} RED 13 | * @property {number} GREEN 14 | * @property {number} BLUE 15 | * @property {number} ALPHA 16 | */ 17 | export enum MASK_CHANNEL 18 | { 19 | RED = 0, 20 | GREEN, 21 | BLUE, 22 | ALPHA 23 | } 24 | 25 | /** The mask configuration for {@link MaskFilter}. */ 26 | export class MaskConfig 27 | { 28 | /** 29 | * @param maskBefore - If true, {@link MaskFilter} will mask the input of the applied filter instead of 30 | * the output. In the case of a blur filter, this would cause cause the boundaries of the mask to soften 31 | * as the blur would apply to the masked region instead of being clipped into it. 32 | * @param channel - The mask channel indicating which pixels are in the mask region. 33 | */ 34 | constructor(public maskBefore = false, channel: MASK_CHANNEL = MASK_CHANNEL.ALPHA) 35 | { 36 | this.uniforms.uChannel[channel] = 1.0; 37 | } 38 | 39 | /** @ignore */ 40 | uniformCode = 'uniform vec4 uChannel;'; 41 | /** @ignore */ 42 | uniforms: any = { 43 | uChannel: new Float32Array([0, 0, 0, 0]), // shared uniform for all those shaders? ok, just set it before apply 44 | }; 45 | /** @ignore */ 46 | blendCode = `b_res = dot(b_src, uChannel) * b_dest;`; 47 | 48 | /** 49 | * Flag that indicates the applied filter is Y-symmetric. 50 | * 51 | * {@link MaskFilter} will optimize rendering by not flipping the screen backdrop before passing it to the 52 | * blend filter for Y-symmetric filters. 53 | * 54 | * A filter is Y-symmetric if giving it an inverted input and then inverting the output is equivalent 55 | * to giving it an upright input. 56 | */ 57 | safeFlipY = false; 58 | } 59 | 60 | const tmpArray = new Float32Array([0, 1]); 61 | 62 | /** 63 | * A higher-order filter that applies the output of a filter to a masked region of the destination framebuffer. 64 | * 65 | * The masked region is defined by where-ever the target {@link DisplayObject} renders to in the world. For 66 | * example, if you draw a rectangle in the world and apply a masked-blur filter, the blur filter will apply 67 | * to pixels in the backdrop within the rectangle. The {@link DisplayObject} must render by drawing 68 | * a solid RGBA channel (see {@link MaskConfig}'s constructor). 69 | */ 70 | export class MaskFilter extends BlendFilter 71 | { 72 | /** 73 | * @param baseFilter - The filter being applied. 74 | * @param config - The configuration for the mask. 75 | */ 76 | constructor(public baseFilter: Filter, public config: MaskConfig = new MaskConfig()) 77 | { 78 | super(config); 79 | this.padding = baseFilter.padding; 80 | this.safeFlipY = config.safeFlipY; 81 | } 82 | 83 | /** @ignore */ 84 | static _flipYFilter: FlipYFilter = null; 85 | 86 | /** 87 | * if base filter is not sensitive to flipping Y axis, you can turn this ON and save a temporary texture bind / drawcall 88 | */ 89 | safeFlipY: boolean; 90 | 91 | apply(filterManager: FilterSystem, input: RenderTexture, output: RenderTexture, 92 | clearMode: CLEAR_MODES): void 93 | { 94 | const target = filterManager.getFilterTexture(input); 95 | 96 | if (this.config.maskBefore) 97 | { 98 | const { blendMode } = this.state; 99 | 100 | this.state.blendMode = BLEND_MODES.NONE; 101 | filterManager.applyFilter(this, input, target, CLEAR_MODES.YES); 102 | this.baseFilter.blendMode = blendMode; 103 | this.baseFilter.apply(filterManager, target, output, clearMode); 104 | this.state.blendMode = blendMode; 105 | } 106 | else 107 | { 108 | const { uBackdrop, uBackdrop_flipY } = this.uniforms; 109 | 110 | if (uBackdrop_flipY[1] > 0 || this.safeFlipY) 111 | { 112 | this.baseFilter.apply(filterManager, uBackdrop, target, CLEAR_MODES.YES); 113 | } 114 | else 115 | { 116 | // in case there was a flip and base filter is not flipY-safe, we have to use extra flip operation 117 | const targetFlip = filterManager.getFilterTexture(input); 118 | 119 | if (!MaskFilter._flipYFilter) 120 | { 121 | MaskFilter._flipYFilter = new FlipYFilter(); 122 | } 123 | MaskFilter._flipYFilter.uniforms.flipY[0] = uBackdrop_flipY[0]; 124 | MaskFilter._flipYFilter.uniforms.flipY[1] = uBackdrop_flipY[1]; 125 | MaskFilter._flipYFilter.apply(filterManager, uBackdrop, targetFlip, CLEAR_MODES.YES); 126 | this.baseFilter.apply(filterManager, targetFlip, target, CLEAR_MODES.YES); 127 | filterManager.returnFilterTexture(targetFlip); 128 | this.uniforms.uBackdrop_flipY = tmpArray; 129 | } 130 | this.uniforms.uBackdrop = target; 131 | filterManager.applyFilter(this, input, output, clearMode); 132 | this.uniforms.uBackdrop = uBackdrop; 133 | this.uniforms.uBackdrop_flipY = uBackdrop_flipY; 134 | } 135 | filterManager.returnFilterTexture(target); 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /src/ShaderParts.ts: -------------------------------------------------------------------------------- 1 | import { BlendFilter, IBlendShaderParts } from './BlendFilter'; 2 | import { BLEND_MODES, Filter } from '@pixi/core'; 3 | 4 | interface IBlendModeShaderParts extends IBlendShaderParts 5 | { 6 | npmBlendCode?: string 7 | } 8 | 9 | export const BLEND_OPACITY 10 | = `if (b_src.a == 0.0) { 11 | gl_FragColor = vec4(0, 0, 0, 0); 12 | return; 13 | } 14 | if (b_dest.a == 0.0) { 15 | gl_FragColor = b_src; 16 | return; 17 | } 18 | vec3 base = b_dest.rgb / b_dest.a; 19 | vec3 blend = b_src.rgb / b_src.a; 20 | %NPM_BLEND% 21 | // SWAP SRC WITH NPM BLEND 22 | vec3 new_src = (1.0 - b_dest.a) * blend + b_dest.a * B; 23 | // PORTER DUFF PMA COMPOSITION MODE 24 | b_res.a = b_src.a + b_dest.a * (1.0-b_src.a); 25 | b_res.rgb = b_src.a * new_src + (1.0 - b_src.a) * b_dest.rgb; 26 | `; 27 | 28 | export const MULTIPLY_PART: IBlendModeShaderParts = { 29 | blendCode: BLEND_OPACITY, 30 | npmBlendCode: `vec3 B = blend * base;` 31 | }; 32 | 33 | // reverse hardlight 34 | export const OVERLAY_PART: IBlendModeShaderParts = { 35 | blendCode: BLEND_OPACITY, 36 | npmBlendCode: `vec3 B = blendOverlay(base, blend);`, 37 | uniformCode: ` 38 | float finalBlendOverlay(float base, float blend) 39 | { 40 | return mix((1.0-2.0*(1.0-base)*(1.0-blend)), (2.0*base*blend), step(base, 0.5)); 41 | } 42 | 43 | vec3 blendOverlay(vec3 base, vec3 blend) 44 | { 45 | return vec3( 46 | finalBlendOverlay(base.r,blend.r), 47 | finalBlendOverlay(base.g,blend.g), 48 | finalBlendOverlay(base.b,blend.b) 49 | ); 50 | } 51 | `, 52 | }; 53 | 54 | export const HARDLIGHT_PART: IBlendModeShaderParts = { 55 | blendCode: BLEND_OPACITY, 56 | npmBlendCode: `vec3 B = blendHardLightVec3(base, blend);`, 57 | uniformCode: ` 58 | float blendHardLight(float base, float blend) 59 | { 60 | return mix((1.0-2.0*(1.0-base)*(1.0-blend)), 2.0*base*blend, 1.0 - step(blend, 0.5)); 61 | } 62 | 63 | vec3 blendHardLightVec3(vec3 base, vec3 blend) 64 | { 65 | return vec3(blendHardLight(base.r,blend.r),blendHardLight(base.g,blend.g),blendHardLight(base.b,blend.b)); 66 | }`, 67 | }; 68 | 69 | export const SOFTLIGHT_PART: IBlendModeShaderParts = { 70 | blendCode: BLEND_OPACITY, 71 | npmBlendCode: `vec3 B = blendSoftLightVec3(blend, base);`, 72 | uniformCode: ` 73 | float blendSoftLight(float base, float blend) 74 | { 75 | if(blend < 0.5) 76 | { 77 | return 2.0*base*blend+base*base*(1.0-2.0*blend); 78 | } 79 | else 80 | { 81 | return sqrt(base)*(2.0*blend-1.0)+2.0*base*(1.0-blend); 82 | } 83 | } 84 | 85 | vec3 blendSoftLightVec3(vec3 base, vec3 blend) 86 | { 87 | return vec3(blendSoftLight(base.r,blend.r),blendSoftLight(base.g,blend.g),blendSoftLight(base.b,blend.b)); 88 | } 89 | `, 90 | }; 91 | 92 | export const DARKEN_PART: IBlendModeShaderParts = { 93 | blendCode: BLEND_OPACITY, 94 | npmBlendCode: `vec3 B = blendDarkenVec3(blend, base);`, 95 | uniformCode: ` 96 | float blendDarken(float base, float blend) 97 | { 98 | return min(blend,base); 99 | } 100 | 101 | vec3 blendDarkenVec3(vec3 base, vec3 blend) 102 | { 103 | return vec3(blendDarken(base.r,blend.r),blendDarken(base.g,blend.g),blendDarken(base.b,blend.b)); 104 | } 105 | `, 106 | }; 107 | 108 | export const LIGHTEN_PART: IBlendModeShaderParts = { 109 | blendCode: BLEND_OPACITY, 110 | npmBlendCode: `vec3 B = blendLightenVec3(blend, base);`, 111 | uniformCode: ` 112 | float blendLighten(float base, float blend) 113 | { 114 | return max(blend,base); 115 | } 116 | 117 | vec3 blendLightenVec3(vec3 base, vec3 blend) 118 | { 119 | return vec3(blendLighten(base.r,blend.r),blendLighten(base.g,blend.g),blendLighten(base.b,blend.b)); 120 | } 121 | `, 122 | }; 123 | 124 | export const COLOR_DODGE_PART: IBlendModeShaderParts = { 125 | blendCode: BLEND_OPACITY, 126 | npmBlendCode: `vec3 B = blendColorDodge(blend, base);`, 127 | uniformCode: ` 128 | float blendColorDodge(float base, float blend) { 129 | return (blend==1.0)?blend:min(base/(1.0-blend),1.0); 130 | } 131 | 132 | vec3 blendColorDodge(vec3 base, vec3 blend) { 133 | return vec3(blendColorDodge(base.r,blend.r),blendColorDodge(base.g,blend.g),blendColorDodge(base.b,blend.b)); 134 | } 135 | `, 136 | }; 137 | 138 | export const COLOR_BURN_PART: IBlendModeShaderParts = { 139 | blendCode: BLEND_OPACITY, 140 | npmBlendCode: `vec3 B = blendColorBurn(blend, base);`, 141 | uniformCode: ` 142 | float colorBurn(float base, float blend) 143 | { 144 | return max((1.0-((1.0-base)/blend)),0.0); 145 | } 146 | 147 | vec3 blendColorBurn(vec3 base, vec3 blend) 148 | { 149 | return vec3(colorBurn(base.r,blend.r),colorBurn(base.g,blend.g),colorBurn(base.b,blend.b)); 150 | } 151 | `, 152 | }; 153 | 154 | /** 155 | * Maps {@link PIXI.BLEND_MODES blend modes} to {@link IBlendShaderParts.blendCode blend code}. 156 | * 157 | * This library provides blending code for {@link BLEND_MODES.MULTIPLY}, {@link BLEND_MODES.OVERLAY}, 158 | * {@link BLEND_MODES.HARD_LIGHT}, {@link BLEND_MODES.SOFT_LIGHT}. If you add blend modes to the 159 | * {@link PIXI.BLEND_MODES} enumeration, you can implement them by augmenting this map with your shader 160 | * code. 161 | * 162 | * @type {object} 163 | */ 164 | export const blendPartsArray: Array = []; 165 | 166 | blendPartsArray[BLEND_MODES.MULTIPLY] = MULTIPLY_PART; 167 | blendPartsArray[BLEND_MODES.OVERLAY] = OVERLAY_PART; 168 | blendPartsArray[BLEND_MODES.HARD_LIGHT] = HARDLIGHT_PART; 169 | blendPartsArray[BLEND_MODES.SOFT_LIGHT] = SOFTLIGHT_PART; 170 | blendPartsArray[BLEND_MODES.DARKEN] = DARKEN_PART; 171 | blendPartsArray[BLEND_MODES.LIGHTEN] = LIGHTEN_PART; 172 | blendPartsArray[BLEND_MODES.COLOR_DODGE] = COLOR_DODGE_PART; 173 | blendPartsArray[BLEND_MODES.COLOR_BURN] = COLOR_BURN_PART; 174 | 175 | for (const key in blendPartsArray) 176 | { 177 | const part = blendPartsArray[key]; 178 | 179 | if (part.npmBlendCode) 180 | { 181 | part.blendCode = part.blendCode.replace(`%NPM_BLEND%`, part.npmBlendCode); 182 | } 183 | } 184 | 185 | const filterCache: Array = []; 186 | const filterCacheArray: Array> = []; 187 | const trivialBlend = new Array(32); 188 | 189 | trivialBlend[BLEND_MODES.NORMAL] = true; 190 | trivialBlend[BLEND_MODES.ADD] = true; 191 | trivialBlend[BLEND_MODES.SCREEN] = true; 192 | trivialBlend[BLEND_MODES.DST_OUT] = true; 193 | trivialBlend[BLEND_MODES.DST_IN] = true; 194 | trivialBlend[BLEND_MODES.DST_OVER] = true; 195 | trivialBlend[BLEND_MODES.DST_ATOP] = true; 196 | trivialBlend[BLEND_MODES.SRC_OUT] = true; 197 | trivialBlend[BLEND_MODES.SRC_IN] = true; 198 | trivialBlend[BLEND_MODES.SRC_OVER] = true; 199 | trivialBlend[BLEND_MODES.SRC_ATOP] = true; 200 | trivialBlend[BLEND_MODES.SRC_OUT] = true; 201 | trivialBlend[BLEND_MODES.SRC_IN] = true; 202 | trivialBlend[BLEND_MODES.SRC_OVER] = true; 203 | trivialBlend[BLEND_MODES.XOR] = true; 204 | trivialBlend[BLEND_MODES.SUBTRACT] = true; 205 | 206 | /** 207 | * Get a memoized {@link BlendFilter} for the passed blend mode. This expects {@link blendFullArray} 208 | * to have the blending code beforehand. 209 | * 210 | * If you changed the blending code in {@link blendFullArray}, this won't create a new blend filter 211 | * due to memoization! 212 | * 213 | * @param blendMode - The blend mode desired. 214 | */ 215 | export function getBlendFilter(blendMode: BLEND_MODES) 216 | { 217 | const triv = trivialBlend[blendMode]; 218 | 219 | if (!triv && !blendPartsArray[blendMode]) 220 | { 221 | return null; 222 | } 223 | if (!filterCache[blendMode]) 224 | { 225 | if (triv) 226 | { 227 | filterCache[blendMode] = (new Filter()) as any; 228 | filterCache[blendMode].blendMode = blendMode; 229 | filterCache[blendMode].trivial = true; 230 | } 231 | else 232 | { 233 | filterCache[blendMode] = new BlendFilter(blendPartsArray[blendMode]); 234 | } 235 | } 236 | 237 | return filterCache[blendMode]; 238 | } 239 | 240 | /** 241 | * Similar to {@link getBlendFilter}, but wraps the filter in a memoized array. 242 | * 243 | * This is useful when assigning {@link PIXI.Container.filters} as a new array will not be created 244 | * per re-assigment. 245 | * 246 | * ``` 247 | * import { getBlendFilter, getBlendFilterArray } from '@pixi/picture'; 248 | * 249 | * // Don't do 250 | * displayObject.filters = [getBlendFilter(BLEND_MODES.OVERLAY)]; 251 | * 252 | * // Do 253 | * displayObject.filters = getBlendFilterArray(BLEND_MODES.OVERLAY); 254 | * ``` 255 | * 256 | * @param blendMode - The blend mode desired. 257 | */ 258 | export function getBlendFilterArray(blendMode: BLEND_MODES) 259 | { 260 | if (!blendPartsArray[blendMode]) 261 | { 262 | return null; 263 | } 264 | if (!filterCacheArray[blendMode]) 265 | { 266 | filterCacheArray[blendMode] = [getBlendFilter(blendMode)]; 267 | } 268 | 269 | return filterCacheArray[blendMode]; 270 | } 271 | -------------------------------------------------------------------------------- /src/FilterSystemMixin.ts: -------------------------------------------------------------------------------- 1 | import { 2 | TextureSystem, 3 | FilterSystem, 4 | BaseTexture, 5 | RenderTexture, 6 | Filter, 7 | FilterState, 8 | CLEAR_MODES, 9 | MSAA_QUALITY, 10 | State 11 | } from '@pixi/core'; 12 | import { Matrix, Rectangle } from '@pixi/math'; 13 | import { DisplayObject } from '@pixi/display'; 14 | import { BackdropFilter } from './BlendFilter'; 15 | 16 | export interface IPictureFilterSystem extends FilterSystem 17 | { 18 | prepareBackdrop(sourceFrame: Rectangle, flipY: Float32Array): RenderTexture; 19 | 20 | pushWithCheck(target: DisplayObject, filters: Array, checkEmptyBounds?: boolean): boolean; 21 | } 22 | 23 | export interface IPictureTextureSystem extends TextureSystem 24 | { 25 | bindForceLocation(texture: BaseTexture, location: number): void; 26 | } 27 | 28 | function containsRect(rectOut: Rectangle, rectIn: Rectangle): boolean 29 | { 30 | const r1 = rectIn.x + rectIn.width; 31 | const b1 = rectIn.y + rectIn.height; 32 | const r2 = rectOut.x + rectOut.width; 33 | const b2 = rectOut.y + rectOut.height; 34 | 35 | return (rectIn.x >= rectOut.x) 36 | && (rectIn.x <= r2) 37 | && (rectIn.y >= rectOut.y) 38 | && (rectIn.y <= b2) 39 | && (r1 >= rectOut.x) 40 | && (r1 <= r2) 41 | && (b1 >= rectOut.y) 42 | && (b1 <= b2); 43 | } 44 | 45 | function bindForceLocation(this: IPictureTextureSystem, texture: BaseTexture, location = 0) 46 | { 47 | const { gl } = this; 48 | 49 | if (this.currentLocation !== location) 50 | { 51 | this.currentLocation = location; 52 | gl.activeTexture(gl.TEXTURE0 + location); 53 | } 54 | this.bind(texture, location); 55 | } 56 | 57 | const tempMatrix = new Matrix(); 58 | 59 | function pushWithCheck(this: IPictureFilterSystem, 60 | target: DisplayObject, filters: Array, checkEmptyBounds = true) 61 | { 62 | const renderer = this.renderer; 63 | const filterStack = this.defaultFilterStack; 64 | const state = this.statePool.pop() || new FilterState(); 65 | const renderTextureSystem = renderer.renderTexture; 66 | let currentResolution: number; 67 | let currentMultisample: MSAA_QUALITY; 68 | 69 | if (renderTextureSystem.current) 70 | { 71 | const renderTexture = renderTextureSystem.current; 72 | 73 | currentResolution = renderTexture.resolution; 74 | currentMultisample = renderTexture.multisample; 75 | } 76 | else 77 | { 78 | currentResolution = renderer.resolution; 79 | currentMultisample = renderer.multisample; 80 | } 81 | 82 | let resolution = filters[0].resolution || currentResolution; 83 | let multisample = filters[0].multisample ?? currentMultisample; 84 | 85 | let padding = filters[0].padding; 86 | let autoFit = filters[0].autoFit; 87 | // We don't know whether it's a legacy filter until it was bound for the first time, 88 | // therefore we have to assume that it is if legacy is undefined. 89 | let legacy = filters[0].legacy ?? true; 90 | 91 | for (let i = 1; i < filters.length; i++) 92 | { 93 | const filter = filters[i]; 94 | 95 | // let's use the lowest resolution 96 | resolution = Math.min(resolution, filter.resolution || currentResolution); 97 | // let's use the lowest number of samples 98 | multisample = Math.min(multisample, filter.multisample ?? currentMultisample); 99 | // figure out the padding required for filters 100 | padding = this.useMaxPadding 101 | // old behavior: use largest amount of padding! 102 | ? Math.max(padding, filter.padding) 103 | // new behavior: sum the padding 104 | : padding + filter.padding; 105 | // only auto fit if all filters are autofit 106 | autoFit = autoFit && filter.autoFit; 107 | 108 | legacy = legacy || (filter.legacy ?? true); 109 | } 110 | 111 | if (filterStack.length === 1) 112 | { 113 | this.defaultFilterStack[0].renderTexture = renderTextureSystem.current; 114 | } 115 | 116 | filterStack.push(state); 117 | 118 | state.resolution = resolution; 119 | 120 | state.legacy = legacy; 121 | 122 | state.target = target; 123 | state.sourceFrame.copyFrom(target.filterArea || target.getBounds(true)); 124 | 125 | state.sourceFrame.pad(padding); 126 | 127 | // TODO: use backdrop in case of multisample, only after blit() 128 | let canUseBackdrop = true; // !currentMultisample; 129 | 130 | const sourceFrameProjected = (this as any).tempRect.copyFrom(renderTextureSystem.sourceFrame); 131 | 132 | // Project source frame into world space (if projection is applied) 133 | if (renderer.projection.transform) 134 | { 135 | (this as any).transformAABB?.( 136 | tempMatrix.copyFrom(renderer.projection.transform).invert(), 137 | sourceFrameProjected 138 | ); 139 | } 140 | 141 | if (autoFit) 142 | { 143 | state.sourceFrame.fit(sourceFrameProjected); 144 | 145 | if (state.sourceFrame.width <= 0 || state.sourceFrame.height <= 0) 146 | { 147 | state.sourceFrame.width = 0; 148 | state.sourceFrame.height = 0; 149 | } 150 | } 151 | else 152 | { 153 | // check if backdrop is obtainable after rejecting autoFit 154 | canUseBackdrop = containsRect(this.renderer.renderTexture.sourceFrame, state.sourceFrame); 155 | 156 | if (!state.sourceFrame.intersects(sourceFrameProjected)) 157 | { 158 | state.sourceFrame.width = 0; 159 | state.sourceFrame.height = 0; 160 | } 161 | } 162 | 163 | // Round sourceFrame in screen space based on render-texture. 164 | (this as any).roundFrame( 165 | state.sourceFrame, 166 | renderTextureSystem.current ? renderTextureSystem.current.resolution : renderer.resolution, 167 | renderTextureSystem.sourceFrame, 168 | renderTextureSystem.destinationFrame, 169 | renderer.projection.transform, 170 | ); 171 | 172 | if (checkEmptyBounds && state.sourceFrame.width <= 1 && state.sourceFrame.height <= 1) 173 | { 174 | filterStack.pop(); 175 | state.clear(); 176 | this.statePool.push(state); 177 | 178 | return false; 179 | } 180 | 181 | // detect backdrop uniform 182 | if (canUseBackdrop) 183 | { 184 | let backdrop = null; 185 | let backdropFlip = null; 186 | 187 | for (let i = 0; i < filters.length; i++) 188 | { 189 | const bName = filters[i].backdropUniformName; 190 | 191 | if (bName) 192 | { 193 | const { uniforms } = filters[i]; 194 | 195 | if (!uniforms[`${bName}_flipY`]) 196 | { 197 | uniforms[`${bName}_flipY`] = new Float32Array([0.0, 1.0]); 198 | } 199 | const flip = uniforms[`${bName}_flipY`]; 200 | 201 | if (backdrop === null) 202 | { 203 | backdrop = this.prepareBackdrop(state.sourceFrame, flip); 204 | backdropFlip = flip; 205 | } 206 | else 207 | { 208 | flip[0] = backdropFlip[0]; 209 | flip[1] = backdropFlip[1]; 210 | } 211 | 212 | uniforms[bName] = backdrop; 213 | if (backdrop) 214 | { 215 | filters[i]._backdropActive = true; 216 | } 217 | } 218 | } 219 | 220 | if (backdrop) 221 | { 222 | resolution = state.resolution = backdrop.resolution; 223 | } 224 | } 225 | 226 | state.renderTexture = this.getOptimalFilterTexture(state.sourceFrame.width, state.sourceFrame.height, 227 | resolution, multisample); 228 | state.filters = filters; 229 | 230 | state.destinationFrame.width = state.renderTexture.width; 231 | state.destinationFrame.height = state.renderTexture.height; 232 | 233 | const destinationFrame = (this as any).tempRect; 234 | 235 | destinationFrame.x = 0; 236 | destinationFrame.y = 0; 237 | destinationFrame.width = state.sourceFrame.width; 238 | destinationFrame.height = state.sourceFrame.height; 239 | 240 | state.renderTexture.filterFrame = state.sourceFrame; 241 | state.bindingSourceFrame.copyFrom(renderTextureSystem.sourceFrame); 242 | state.bindingDestinationFrame.copyFrom(renderTextureSystem.destinationFrame); 243 | 244 | state.transform = renderer.projection.transform; 245 | renderer.projection.transform = null; 246 | renderTextureSystem.bind(state.renderTexture, state.sourceFrame, destinationFrame); 247 | 248 | const cc = filters[filters.length - 1].clearColor as any; 249 | 250 | if (cc) 251 | { 252 | // take clear color from filter, it helps for advanced DisplacementFilter 253 | renderer.framebuffer.clear(cc[0], cc[1], cc[2], cc[3]); 254 | } 255 | else 256 | { 257 | renderer.framebuffer.clear(0, 0, 0, 0); 258 | } 259 | 260 | return true; 261 | } 262 | 263 | function push(this: IPictureFilterSystem, 264 | target: DisplayObject, filters: Array) 265 | { 266 | return this.pushWithCheck(target, filters, false); 267 | } 268 | 269 | function pop(this: IPictureFilterSystem) 270 | { 271 | const filterStack = this.defaultFilterStack; 272 | const state = filterStack.pop(); 273 | const filters = state.filters as Array; 274 | 275 | this.activeState = state; 276 | 277 | const globalUniforms = this.globalUniforms.uniforms; 278 | 279 | globalUniforms.outputFrame = state.sourceFrame; 280 | globalUniforms.resolution = state.resolution; 281 | 282 | const inputSize = globalUniforms.inputSize; 283 | const inputPixel = globalUniforms.inputPixel; 284 | const inputClamp = globalUniforms.inputClamp; 285 | 286 | inputSize[0] = state.destinationFrame.width; 287 | inputSize[1] = state.destinationFrame.height; 288 | inputSize[2] = 1.0 / inputSize[0]; 289 | inputSize[3] = 1.0 / inputSize[1]; 290 | 291 | inputPixel[0] = Math.round(inputSize[0] * state.resolution); 292 | inputPixel[1] = Math.round(inputSize[1] * state.resolution); 293 | inputPixel[2] = 1.0 / inputPixel[0]; 294 | inputPixel[3] = 1.0 / inputPixel[1]; 295 | 296 | inputClamp[0] = 0.5 * inputPixel[2]; 297 | inputClamp[1] = 0.5 * inputPixel[3]; 298 | inputClamp[2] = (state.sourceFrame.width * inputSize[2]) - (0.5 * inputPixel[2]); 299 | inputClamp[3] = (state.sourceFrame.height * inputSize[3]) - (0.5 * inputPixel[3]); 300 | 301 | // only update the rect if its legacy.. 302 | if (state.legacy) 303 | { 304 | const filterArea = globalUniforms.filterArea; 305 | 306 | filterArea[0] = state.destinationFrame.width; 307 | filterArea[1] = state.destinationFrame.height; 308 | filterArea[2] = state.sourceFrame.x; 309 | filterArea[3] = state.sourceFrame.y; 310 | 311 | globalUniforms.filterClamp = globalUniforms.inputClamp; 312 | } 313 | 314 | this.globalUniforms.update(); 315 | 316 | const lastState = filterStack[filterStack.length - 1]; 317 | 318 | if (state.renderTexture.framebuffer.multisample > 1) 319 | { 320 | this.renderer.framebuffer.blit(); 321 | } 322 | 323 | let filterLen = filters.length; 324 | let tmpState: State = null; 325 | 326 | if (filterLen >= 2 && filters[filterLen - 1].trivial) 327 | { 328 | tmpState = filters[filterLen - 2].state; 329 | filters[filterLen - 2].state = filters[filterLen - 1].state; 330 | filterLen--; 331 | } 332 | 333 | if (filterLen === 1) 334 | { 335 | filters[0].apply(this, state.renderTexture, lastState.renderTexture, CLEAR_MODES.BLEND, state); 336 | 337 | this.returnFilterTexture(state.renderTexture); 338 | } 339 | else 340 | { 341 | let flip = state.renderTexture; 342 | let flop = this.getOptimalFilterTexture( 343 | flip.width, 344 | flip.height, 345 | state.resolution 346 | ); 347 | 348 | flop.filterFrame = flip.filterFrame; 349 | 350 | let i = 0; 351 | 352 | for (i = 0; i < filterLen - 1; ++i) 353 | { 354 | if (i === 1 && state.multisample > 1) 355 | { 356 | flop = this.getOptimalFilterTexture( 357 | flip.width, 358 | flip.height, 359 | state.resolution 360 | ); 361 | 362 | flop.filterFrame = flip.filterFrame; 363 | } 364 | 365 | filters[i].apply(this, flip, flop, CLEAR_MODES.CLEAR, state); 366 | 367 | const t = flip; 368 | 369 | flip = flop; 370 | flop = t; 371 | } 372 | 373 | filters[i].apply(this, flip, lastState.renderTexture, CLEAR_MODES.BLEND, state); 374 | 375 | if (i > 1 && state.multisample > 1) 376 | { 377 | this.returnFilterTexture(state.renderTexture); 378 | } 379 | 380 | this.returnFilterTexture(flip); 381 | this.returnFilterTexture(flop); 382 | } 383 | if (tmpState) 384 | { 385 | filters[filterLen - 1].state = tmpState; 386 | } 387 | 388 | // release the backdrop! 389 | let backdropFree = false; 390 | 391 | for (let i = 0; i < filters.length; i++) 392 | { 393 | if (filters[i]._backdropActive) 394 | { 395 | const bName = filters[i].backdropUniformName; 396 | 397 | if (!backdropFree) 398 | { 399 | this.returnFilterTexture(filters[i].uniforms[bName]); 400 | backdropFree = true; 401 | } 402 | filters[i].uniforms[bName] = null; 403 | filters[i]._backdropActive = false; 404 | } 405 | } 406 | 407 | // lastState.renderTexture is blitted when lastState is popped 408 | 409 | state.clear(); 410 | this.statePool.push(state); 411 | } 412 | 413 | let hadBackbufferError = false; 414 | 415 | /** 416 | * Takes a part of current render target corresponding to bounds 417 | * fits sourceFrame to current render target frame to evade problems 418 | */ 419 | function prepareBackdrop(bounds: Rectangle, flipY: Float32Array): RenderTexture 420 | { 421 | const renderer = this.renderer; 422 | const renderTarget = renderer.renderTexture.current; 423 | const fr = this.renderer.renderTexture.sourceFrame; 424 | const tf = renderer.projection.transform || Matrix.IDENTITY; 425 | 426 | // TODO: take non-standart sourceFrame/destinationFrame into account, all according to ShukantPal refactoring 427 | 428 | let resolution = 1; 429 | 430 | if (renderTarget) 431 | { 432 | resolution = renderTarget.baseTexture.resolution; 433 | flipY[1] = 1.0; 434 | } 435 | else 436 | { 437 | if (this.renderer.background.alpha >= 1) 438 | { 439 | if (!hadBackbufferError) 440 | { 441 | hadBackbufferError = true; 442 | console.warn('pixi-picture: you are trying to use Blend Filter on main framebuffer!'); 443 | console.warn('pixi-picture: please set backgroundAlpha=0 in renderer creation params'); 444 | } 445 | 446 | return null; 447 | } 448 | resolution = renderer.resolution; 449 | flipY[1] = -1.0; 450 | } 451 | 452 | // bounds.fit(fr); 453 | 454 | const x = Math.round((bounds.x - fr.x + tf.tx) * resolution); 455 | const dy = bounds.y - fr.y + tf.ty; 456 | const y = Math.round((flipY[1] < 0.0 ? fr.height - (dy + bounds.height) : dy) * resolution); 457 | const w = Math.round(bounds.width * resolution); 458 | const h = Math.round(bounds.height * resolution); 459 | 460 | const gl = renderer.gl; 461 | const rt = this.getOptimalFilterTexture(w, h, 1); 462 | 463 | if (flipY[1] < 0) 464 | { 465 | flipY[0] = h / rt.height; 466 | } 467 | else 468 | { 469 | flipY[0] = 0; 470 | } 471 | 472 | rt.filterFrame = fr; 473 | rt.setResolution(resolution); 474 | renderer.texture.bindForceLocation(rt.baseTexture, 0); 475 | gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, x, y, w, h); 476 | 477 | return rt; 478 | } 479 | 480 | export function applyMixins() 481 | { 482 | (TextureSystem as any).prototype.bindForceLocation = bindForceLocation; 483 | (FilterSystem as any).prototype.push = push; 484 | (FilterSystem as any).prototype.pushWithCheck = pushWithCheck as any; 485 | (FilterSystem as any).prototype.pop = pop; 486 | (FilterSystem as any).prototype.prepareBackdrop = prepareBackdrop; 487 | } 488 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@microsoft/api-extractor': ^7.15.2 5 | '@pixi-build-tools/rollup-configurator': ~1.0.11 6 | '@pixi/constants': ^6.0.4 7 | '@pixi/core': ^6.0.4 8 | '@pixi/display': ^6.0.4 9 | '@pixi/eslint-config': ^2.0.1 10 | '@pixi/extract': ^6.0.4 11 | '@pixi/math': ^6.0.4 12 | '@pixi/sprite': ^6.0.4 13 | '@pixi/sprite-tiling': ^6.0.4 14 | '@pixi/utils': ^6.0.4 15 | '@rollup/plugin-node-resolve': ^8.4.0 16 | '@rollup/plugin-typescript': ^8.2.1 17 | '@types/eventemitter3': ^2.0.2 18 | '@typescript-eslint/eslint-plugin': ^4.16.1 19 | '@typescript-eslint/parser': ^4.16.1 20 | chai: ^4.3.3 21 | del: ^2.2.0 22 | electron: ^9.4.0 23 | eslint: ^7.21.0 24 | floss: ^3.0.0 25 | jsdoc: ^3.4.0 26 | mkdirp: ^0.5.1 27 | parallelshell: ^2.0.0 28 | relative-deps: ^1.0.6 29 | rimraf: ^2.5.3 30 | rollup: ^2.50.5 31 | rollup-plugin-sourcemaps: ^0.6.2 32 | rollup-plugin-terser: ^7.0.0 33 | tslib: ^2.2.0 34 | typescript: ^4.3.2 35 | 36 | devDependencies: 37 | '@microsoft/api-extractor': 7.15.2 38 | '@pixi-build-tools/rollup-configurator': 1.0.14_rollup@2.50.5 39 | '@pixi/constants': 6.0.4 40 | '@pixi/core': 6.0.4 41 | '@pixi/display': 6.0.4 42 | '@pixi/eslint-config': 2.0.2_eslint@7.27.0+typescript@4.3.2 43 | '@pixi/extract': 6.0.4 44 | '@pixi/math': 6.0.4 45 | '@pixi/sprite': 6.0.4 46 | '@pixi/sprite-tiling': 6.0.4 47 | '@pixi/utils': 6.0.4 48 | '@rollup/plugin-node-resolve': 8.4.0_rollup@2.50.5 49 | '@rollup/plugin-typescript': 8.2.1_bd3a055edaa35b83ca59032ad2d97cfc 50 | '@types/eventemitter3': 2.0.2 51 | '@typescript-eslint/eslint-plugin': 4.25.0_ec7770e83475322b368bff30b543badb 52 | '@typescript-eslint/parser': 4.25.0_eslint@7.27.0+typescript@4.3.2 53 | chai: 4.3.4 54 | del: 2.2.2 55 | electron: 9.4.4 56 | eslint: 7.27.0 57 | floss: 3.0.1_electron@9.4.4 58 | jsdoc: 3.6.7 59 | mkdirp: 0.5.5 60 | parallelshell: 2.0.0 61 | relative-deps: 1.0.7 62 | rimraf: 2.7.1 63 | rollup: 2.50.5 64 | rollup-plugin-sourcemaps: 0.6.3_rollup@2.50.5 65 | rollup-plugin-terser: 7.0.2_rollup@2.50.5 66 | tslib: 2.2.0 67 | typescript: 4.3.2 68 | 69 | packages: 70 | 71 | /@babel/code-frame/7.12.11: 72 | resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} 73 | dependencies: 74 | '@babel/highlight': 7.14.0 75 | dev: true 76 | 77 | /@babel/code-frame/7.12.13: 78 | resolution: {integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==} 79 | dependencies: 80 | '@babel/highlight': 7.14.0 81 | dev: true 82 | 83 | /@babel/helper-validator-identifier/7.14.0: 84 | resolution: {integrity: sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==} 85 | dev: true 86 | 87 | /@babel/highlight/7.14.0: 88 | resolution: {integrity: sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==} 89 | dependencies: 90 | '@babel/helper-validator-identifier': 7.14.0 91 | chalk: 2.4.2 92 | js-tokens: 4.0.0 93 | dev: true 94 | 95 | /@babel/parser/7.14.4: 96 | resolution: {integrity: sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==} 97 | engines: {node: '>=6.0.0'} 98 | hasBin: true 99 | dev: true 100 | 101 | /@electron/get/1.12.4: 102 | resolution: {integrity: sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==} 103 | engines: {node: '>=8.6'} 104 | dependencies: 105 | debug: 4.3.1 106 | env-paths: 2.2.1 107 | fs-extra: 8.1.0 108 | got: 9.6.0 109 | progress: 2.0.3 110 | semver: 6.3.0 111 | sumchecker: 3.0.1 112 | optionalDependencies: 113 | global-agent: 2.2.0 114 | global-tunnel-ng: 2.7.1 115 | transitivePeerDependencies: 116 | - supports-color 117 | dev: true 118 | 119 | /@eslint/eslintrc/0.4.1: 120 | resolution: {integrity: sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==} 121 | engines: {node: ^10.12.0 || >=12.0.0} 122 | dependencies: 123 | ajv: 6.12.6 124 | debug: 4.3.1 125 | espree: 7.3.1 126 | globals: 12.4.0 127 | ignore: 4.0.6 128 | import-fresh: 3.3.0 129 | js-yaml: 3.14.1 130 | minimatch: 3.0.4 131 | strip-json-comments: 3.1.1 132 | transitivePeerDependencies: 133 | - supports-color 134 | dev: true 135 | 136 | /@microsoft/api-extractor-model/7.13.2: 137 | resolution: {integrity: sha512-gA9Q8q5TPM2YYk7rLinAv9KqcodrmRC13BVmNzLswjtFxpz13lRh0BmrqD01/sddGpGMIuWFYlfUM4VSWxnggA==} 138 | dependencies: 139 | '@microsoft/tsdoc': 0.13.2 140 | '@microsoft/tsdoc-config': 0.15.2 141 | '@rushstack/node-core-library': 3.38.0 142 | dev: true 143 | 144 | /@microsoft/api-extractor/7.15.2: 145 | resolution: {integrity: sha512-/Y/n+QOc1vM6Vg3OAUByT/wXdZciE7jV3ay33+vxl3aKva5cNsuOauL14T7XQWUiLko3ilPwrcnFcEjzXpLsuA==} 146 | hasBin: true 147 | dependencies: 148 | '@microsoft/api-extractor-model': 7.13.2 149 | '@microsoft/tsdoc': 0.13.2 150 | '@microsoft/tsdoc-config': 0.15.2 151 | '@rushstack/node-core-library': 3.38.0 152 | '@rushstack/rig-package': 0.2.12 153 | '@rushstack/ts-command-line': 4.7.10 154 | colors: 1.2.5 155 | lodash: 4.17.21 156 | resolve: 1.17.0 157 | semver: 7.3.5 158 | source-map: 0.6.1 159 | typescript: 4.2.4 160 | dev: true 161 | 162 | /@microsoft/tsdoc-config/0.15.2: 163 | resolution: {integrity: sha512-mK19b2wJHSdNf8znXSMYVShAHktVr/ib0Ck2FA3lsVBSEhSI/TfXT7DJQkAYgcztTuwazGcg58ZjYdk0hTCVrA==} 164 | dependencies: 165 | '@microsoft/tsdoc': 0.13.2 166 | ajv: 6.12.6 167 | jju: 1.4.0 168 | resolve: 1.19.0 169 | dev: true 170 | 171 | /@microsoft/tsdoc/0.13.2: 172 | resolution: {integrity: sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg==} 173 | dev: true 174 | 175 | /@mrmlnc/readdir-enhanced/2.2.1: 176 | resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} 177 | engines: {node: '>=4'} 178 | dependencies: 179 | call-me-maybe: 1.0.1 180 | glob-to-regexp: 0.3.0 181 | dev: true 182 | 183 | /@nodelib/fs.scandir/2.1.4: 184 | resolution: {integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==} 185 | engines: {node: '>= 8'} 186 | dependencies: 187 | '@nodelib/fs.stat': 2.0.4 188 | run-parallel: 1.2.0 189 | dev: true 190 | 191 | /@nodelib/fs.stat/1.1.3: 192 | resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} 193 | engines: {node: '>= 6'} 194 | dev: true 195 | 196 | /@nodelib/fs.stat/2.0.4: 197 | resolution: {integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==} 198 | engines: {node: '>= 8'} 199 | dev: true 200 | 201 | /@nodelib/fs.walk/1.2.6: 202 | resolution: {integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==} 203 | engines: {node: '>= 8'} 204 | dependencies: 205 | '@nodelib/fs.scandir': 2.1.4 206 | fastq: 1.11.0 207 | dev: true 208 | 209 | /@pixi-build-tools/globals/1.0.6: 210 | resolution: {integrity: sha512-ZkiQRW5zrT2VvLrhXKRObSFBf8it+GW+ITcHvULxXx313soIPDt7ai7233M+7XtJmA5H0V6LaDlFrwnjNY2xEQ==} 211 | dev: true 212 | 213 | /@pixi-build-tools/rollup-configurator/1.0.14_rollup@2.50.5: 214 | resolution: {integrity: sha512-7P0tX53AoQHAtD4iGWRoFOulVOYV4DZuRXG31UdxK0xMJ1054eM0p9JtZRrNyOkE1AAcfJQbXz0cNrnGcnMLyg==} 215 | peerDependencies: 216 | rollup: '*' 217 | dependencies: 218 | '@pixi-build-tools/globals': 1.0.6 219 | '@rollup/plugin-commonjs': 15.0.0_rollup@2.50.5 220 | '@rollup/plugin-sucrase': 3.1.0_rollup@2.50.5 221 | rollup: 2.50.5 222 | rollup-plugin-node-resolve: 5.2.0_rollup@2.50.5 223 | rollup-plugin-replace: 2.2.0 224 | rollup-plugin-sourcemaps: 0.6.3_rollup@2.50.5 225 | rollup-plugin-string: 3.0.0 226 | rollup-plugin-terser: 7.0.2_rollup@2.50.5 227 | transitivePeerDependencies: 228 | - '@types/node' 229 | dev: true 230 | 231 | /@pixi/constants/6.0.4: 232 | resolution: {integrity: sha512-khwRMfuHVdFk93L+bf0mmCwtSloYlfBfjdseIAbJL+VSpeMG1S2DzCYlMCPdp4mvDLU9LvkH2U2leZGEIx5j7g==} 233 | dev: true 234 | 235 | /@pixi/core/6.0.4: 236 | resolution: {integrity: sha512-r1ceyAz0z3usUs0uj4u2986vVT2tQixGNin2o9FNhPFDXbN5EaoKHLtrjGBt1iylK/EUH/nfL5zq0SGa/loW0A==} 237 | dependencies: 238 | '@pixi/constants': 6.0.4 239 | '@pixi/math': 6.0.4 240 | '@pixi/runner': 6.0.4 241 | '@pixi/settings': 6.0.4 242 | '@pixi/ticker': 6.0.4 243 | '@pixi/utils': 6.0.4 244 | dev: true 245 | 246 | /@pixi/display/6.0.4: 247 | resolution: {integrity: sha512-v6hjx5Gm5aIlLQ7xrsZ2lstI1cv/MtbWXJOhU8LXckkrHHUvAuJgml3+0pcHw8YLuOlepZngUuiqy/XjceVk8A==} 248 | dependencies: 249 | '@pixi/math': 6.0.4 250 | '@pixi/settings': 6.0.4 251 | '@pixi/utils': 6.0.4 252 | dev: true 253 | 254 | /@pixi/eslint-config/2.0.2_eslint@7.27.0+typescript@4.3.2: 255 | resolution: {integrity: sha512-CCC6EJ/VA4J9evZiHW0fEAky+ujxqupyB2l5uiGxN7SFO0df9PgGkn4jbH83mjnRPcRnM+//7tH/VFgaNcguvA==} 256 | peerDependencies: 257 | eslint: '>=7.0.0' 258 | typescript: '>=3.8.3' 259 | dependencies: 260 | '@typescript-eslint/eslint-plugin': 4.25.0_ec7770e83475322b368bff30b543badb 261 | '@typescript-eslint/parser': 4.25.0_eslint@7.27.0+typescript@4.3.2 262 | eslint: 7.27.0 263 | typescript: 4.3.2 264 | transitivePeerDependencies: 265 | - supports-color 266 | dev: true 267 | 268 | /@pixi/extract/6.0.4: 269 | resolution: {integrity: sha512-xf/pnc5od7YJ8zCVIrv1km7i+P+rxYcSrrBI/hqX+qoVsI5EySKInf2GhCKHz4UjOHdSL5aPDnNYvzssNdIpdQ==} 270 | dependencies: 271 | '@pixi/core': 6.0.4 272 | '@pixi/math': 6.0.4 273 | '@pixi/utils': 6.0.4 274 | dev: true 275 | 276 | /@pixi/math/6.0.4: 277 | resolution: {integrity: sha512-UwZ72CeZ2KsS4IlcEXgNiuD88omPk42Dct74+1G+R2+yPI+XRZq+hGQRTle/BbFYjxh9ccdQVyX9ToGv1XTd6Q==} 278 | dev: true 279 | 280 | /@pixi/runner/6.0.4: 281 | resolution: {integrity: sha512-ta6r36r2vC+fPB27URpSacPGQDtbJbdUoeGCJWAEwX+QI4vx4C9NYAcB0bIg8TLXiigCfA6by/RMnJ0dBiemFA==} 282 | dev: true 283 | 284 | /@pixi/settings/6.0.4: 285 | resolution: {integrity: sha512-djiIsmULDwcHWNmEiZKm4zyVopu1NL+fClnbBmtDkGZw7nm37y6dOcdpYawJcxvE4/KLm6pspBiRTnrzdlqW7Q==} 286 | dependencies: 287 | ismobilejs: 1.1.1 288 | dev: true 289 | 290 | /@pixi/sprite-tiling/6.0.4: 291 | resolution: {integrity: sha512-4TBsKMeGhwmfsVELorSs+zWWBih37Kd0lPQu0uhcHVV1RKtZxZpkgNoyzKS4d+WInNek5F0E592bYsXkbE6Gag==} 292 | dependencies: 293 | '@pixi/constants': 6.0.4 294 | '@pixi/core': 6.0.4 295 | '@pixi/display': 6.0.4 296 | '@pixi/math': 6.0.4 297 | '@pixi/sprite': 6.0.4 298 | '@pixi/utils': 6.0.4 299 | dev: true 300 | 301 | /@pixi/sprite/6.0.4: 302 | resolution: {integrity: sha512-6yMoHmfFhSRERLM1PUXceq9e6e1UH0YJkLoPVLv6gxMunfk6jPXeO8p9dDS2FQ8ZMSkO/16BKq27HIMKvF6Cvg==} 303 | dependencies: 304 | '@pixi/constants': 6.0.4 305 | '@pixi/core': 6.0.4 306 | '@pixi/display': 6.0.4 307 | '@pixi/math': 6.0.4 308 | '@pixi/settings': 6.0.4 309 | '@pixi/utils': 6.0.4 310 | dev: true 311 | 312 | /@pixi/ticker/6.0.4: 313 | resolution: {integrity: sha512-PkFfPP5vHlgnApLks0Ia0okmFu6KPqBdIyquDqHJAcBdgljedm32KS6K2EH37xelBOzYHScjZ2SQGiiebVfClw==} 314 | dependencies: 315 | '@pixi/settings': 6.0.4 316 | dev: true 317 | 318 | /@pixi/utils/6.0.4: 319 | resolution: {integrity: sha512-35JTWsAJ8Va0vvtUSQvyOr3kGedGKVuJnHDO89B8C8tSFtMpJYrR44vp1b1p1vOjNak+ulGehZc8LzlCqymViQ==} 320 | dependencies: 321 | '@pixi/constants': 6.0.4 322 | '@pixi/settings': 6.0.4 323 | '@types/earcut': 2.1.1 324 | earcut: 2.2.2 325 | eventemitter3: 3.1.2 326 | url: 0.11.0 327 | dev: true 328 | 329 | /@rollup/plugin-commonjs/15.0.0_rollup@2.50.5: 330 | resolution: {integrity: sha512-8uAdikHqVyrT32w1zB9VhW6uGwGjhKgnDNP4pQJsjdnyF4FgCj6/bmv24c7v2CuKhq32CcyCwRzMPEElaKkn0w==} 331 | engines: {node: '>= 8.0.0'} 332 | peerDependencies: 333 | rollup: ^2.22.0 334 | dependencies: 335 | '@rollup/pluginutils': 3.1.0_rollup@2.50.5 336 | commondir: 1.0.1 337 | estree-walker: 2.0.2 338 | glob: 7.1.7 339 | is-reference: 1.2.1 340 | magic-string: 0.25.7 341 | resolve: 1.20.0 342 | rollup: 2.50.5 343 | dev: true 344 | 345 | /@rollup/plugin-node-resolve/8.4.0_rollup@2.50.5: 346 | resolution: {integrity: sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==} 347 | engines: {node: '>= 8.0.0'} 348 | peerDependencies: 349 | rollup: ^1.20.0||^2.0.0 350 | dependencies: 351 | '@rollup/pluginutils': 3.1.0_rollup@2.50.5 352 | '@types/resolve': 1.17.1 353 | builtin-modules: 3.2.0 354 | deep-freeze: 0.0.1 355 | deepmerge: 4.2.2 356 | is-module: 1.0.0 357 | resolve: 1.20.0 358 | rollup: 2.50.5 359 | dev: true 360 | 361 | /@rollup/plugin-sucrase/3.1.0_rollup@2.50.5: 362 | resolution: {integrity: sha512-PZ70LDNgIj8rL+3pKwKwTBOQ2c9JofXeLbWz+2V4/nCt4LqwYTNqxJJf1riTJsVARVzJdA0woIzUzjKZvL8TfA==} 363 | engines: {node: '>=8.0.0'} 364 | peerDependencies: 365 | rollup: ^1.20.0 || ^2.0.0 366 | dependencies: 367 | '@rollup/pluginutils': 3.1.0_rollup@2.50.5 368 | rollup: 2.50.5 369 | sucrase: 3.18.1 370 | dev: true 371 | 372 | /@rollup/plugin-typescript/8.2.1_bd3a055edaa35b83ca59032ad2d97cfc: 373 | resolution: {integrity: sha512-Qd2E1pleDR4bwyFxqbjt4eJf+wB0UKVMLc7/BAFDGVdAXQMCsD4DUv5/7/ww47BZCYxWtJqe1Lo0KVNswBJlRw==} 374 | engines: {node: '>=8.0.0'} 375 | peerDependencies: 376 | rollup: ^2.14.0 377 | tslib: '*' 378 | typescript: '>=3.7.0' 379 | dependencies: 380 | '@rollup/pluginutils': 3.1.0_rollup@2.50.5 381 | resolve: 1.20.0 382 | rollup: 2.50.5 383 | tslib: 2.2.0 384 | typescript: 4.3.2 385 | dev: true 386 | 387 | /@rollup/pluginutils/3.1.0_rollup@2.50.5: 388 | resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} 389 | engines: {node: '>= 8.0.0'} 390 | peerDependencies: 391 | rollup: ^1.20.0||^2.0.0 392 | dependencies: 393 | '@types/estree': 0.0.39 394 | estree-walker: 1.0.1 395 | picomatch: 2.3.0 396 | rollup: 2.50.5 397 | dev: true 398 | 399 | /@rushstack/node-core-library/3.38.0: 400 | resolution: {integrity: sha512-cmvl0yQx8sSmbuXwiRYJi8TO+jpTtrLJQ8UmFHhKvgPVJAW8cV8dnpD1Xx/BvTGrJZ2XtRAIkAhBS9okBnap4w==} 401 | dependencies: 402 | '@types/node': 10.17.13 403 | colors: 1.2.5 404 | fs-extra: 7.0.1 405 | import-lazy: 4.0.0 406 | jju: 1.4.0 407 | resolve: 1.17.0 408 | semver: 7.3.5 409 | timsort: 0.3.0 410 | z-schema: 3.18.4 411 | dev: true 412 | 413 | /@rushstack/rig-package/0.2.12: 414 | resolution: {integrity: sha512-nbePcvF8hQwv0ql9aeQxcaMPK/h1OLAC00W7fWCRWIvD2MchZOE8jumIIr66HGrfG2X1sw++m/ZYI4D+BM5ovQ==} 415 | dependencies: 416 | resolve: 1.17.0 417 | strip-json-comments: 3.1.1 418 | dev: true 419 | 420 | /@rushstack/ts-command-line/4.7.10: 421 | resolution: {integrity: sha512-8t042g8eerypNOEcdpxwRA3uCmz0duMo21rG4Z2mdz7JxJeylDmzjlU3wDdef2t3P1Z61JCdZB6fbm1Mh0zi7w==} 422 | dependencies: 423 | '@types/argparse': 1.0.38 424 | argparse: 1.0.10 425 | colors: 1.2.5 426 | string-argv: 0.3.1 427 | dev: true 428 | 429 | /@sindresorhus/is/0.14.0: 430 | resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} 431 | engines: {node: '>=6'} 432 | dev: true 433 | 434 | /@szmarczak/http-timer/1.1.2: 435 | resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} 436 | engines: {node: '>=6'} 437 | dependencies: 438 | defer-to-connect: 1.1.3 439 | dev: true 440 | 441 | /@types/argparse/1.0.38: 442 | resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} 443 | dev: true 444 | 445 | /@types/earcut/2.1.1: 446 | resolution: {integrity: sha512-w8oigUCDjElRHRRrMvn/spybSMyX8MTkKA5Dv+tS1IE/TgmNZPqUYtvYBXGY8cieSE66gm+szeK+bnbxC2xHTQ==} 447 | dev: true 448 | 449 | /@types/estree/0.0.39: 450 | resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} 451 | dev: true 452 | 453 | /@types/eventemitter3/2.0.2: 454 | resolution: {integrity: sha1-lLV8JWjE8JR51kgS9iUxexKm7dA=} 455 | deprecated: This is a stub types definition for EventEmitter3 (https://github.com/primus/eventemitter3). EventEmitter3 provides its own type definitions, so you don't need @types/eventemitter3 installed! 456 | dependencies: 457 | eventemitter3: 4.0.7 458 | dev: true 459 | 460 | /@types/glob/7.1.3: 461 | resolution: {integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==} 462 | dependencies: 463 | '@types/minimatch': 3.0.4 464 | '@types/node': 15.6.1 465 | dev: true 466 | 467 | /@types/json-schema/7.0.7: 468 | resolution: {integrity: sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==} 469 | dev: true 470 | 471 | /@types/minimatch/3.0.4: 472 | resolution: {integrity: sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==} 473 | dev: true 474 | 475 | /@types/node/10.17.13: 476 | resolution: {integrity: sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==} 477 | dev: true 478 | 479 | /@types/node/12.20.13: 480 | resolution: {integrity: sha512-1x8W5OpxPq+T85OUsHRP6BqXeosKmeXRtjoF39STcdf/UWLqUsoehstZKOi0CunhVqHG17AyZgpj20eRVooK6A==} 481 | dev: true 482 | 483 | /@types/node/15.6.1: 484 | resolution: {integrity: sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==} 485 | dev: true 486 | 487 | /@types/normalize-package-data/2.4.0: 488 | resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==} 489 | dev: true 490 | 491 | /@types/resolve/0.0.8: 492 | resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} 493 | dependencies: 494 | '@types/node': 15.6.1 495 | dev: true 496 | 497 | /@types/resolve/1.17.1: 498 | resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} 499 | dependencies: 500 | '@types/node': 15.6.1 501 | dev: true 502 | 503 | /@typescript-eslint/eslint-plugin/4.25.0_ec7770e83475322b368bff30b543badb: 504 | resolution: {integrity: sha512-Qfs3dWkTMKkKwt78xp2O/KZQB8MPS1UQ5D3YW2s6LQWBE1074BE+Rym+b1pXZIX3M3fSvPUDaCvZLKV2ylVYYQ==} 505 | engines: {node: ^10.12.0 || >=12.0.0} 506 | peerDependencies: 507 | '@typescript-eslint/parser': ^4.0.0 508 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 509 | typescript: '*' 510 | peerDependenciesMeta: 511 | typescript: 512 | optional: true 513 | dependencies: 514 | '@typescript-eslint/experimental-utils': 4.25.0_eslint@7.27.0+typescript@4.3.2 515 | '@typescript-eslint/parser': 4.25.0_eslint@7.27.0+typescript@4.3.2 516 | '@typescript-eslint/scope-manager': 4.25.0 517 | debug: 4.3.1 518 | eslint: 7.27.0 519 | functional-red-black-tree: 1.0.1 520 | lodash: 4.17.21 521 | regexpp: 3.1.0 522 | semver: 7.3.5 523 | tsutils: 3.21.0_typescript@4.3.2 524 | typescript: 4.3.2 525 | transitivePeerDependencies: 526 | - supports-color 527 | dev: true 528 | 529 | /@typescript-eslint/experimental-utils/4.25.0_eslint@7.27.0+typescript@4.3.2: 530 | resolution: {integrity: sha512-f0doRE76vq7NEEU0tw+ajv6CrmPelw5wLoaghEHkA2dNLFb3T/zJQqGPQ0OYt5XlZaS13MtnN+GTPCuUVg338w==} 531 | engines: {node: ^10.12.0 || >=12.0.0} 532 | peerDependencies: 533 | eslint: '*' 534 | dependencies: 535 | '@types/json-schema': 7.0.7 536 | '@typescript-eslint/scope-manager': 4.25.0 537 | '@typescript-eslint/types': 4.25.0 538 | '@typescript-eslint/typescript-estree': 4.25.0_typescript@4.3.2 539 | eslint: 7.27.0 540 | eslint-scope: 5.1.1 541 | eslint-utils: 2.1.0 542 | transitivePeerDependencies: 543 | - supports-color 544 | - typescript 545 | dev: true 546 | 547 | /@typescript-eslint/parser/4.25.0_eslint@7.27.0+typescript@4.3.2: 548 | resolution: {integrity: sha512-OZFa1SKyEJpAhDx8FcbWyX+vLwh7OEtzoo2iQaeWwxucyfbi0mT4DijbOSsTgPKzGHr6GrF2V5p/CEpUH/VBxg==} 549 | engines: {node: ^10.12.0 || >=12.0.0} 550 | peerDependencies: 551 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 552 | typescript: '*' 553 | peerDependenciesMeta: 554 | typescript: 555 | optional: true 556 | dependencies: 557 | '@typescript-eslint/scope-manager': 4.25.0 558 | '@typescript-eslint/types': 4.25.0 559 | '@typescript-eslint/typescript-estree': 4.25.0_typescript@4.3.2 560 | debug: 4.3.1 561 | eslint: 7.27.0 562 | typescript: 4.3.2 563 | transitivePeerDependencies: 564 | - supports-color 565 | dev: true 566 | 567 | /@typescript-eslint/scope-manager/4.25.0: 568 | resolution: {integrity: sha512-2NElKxMb/0rya+NJG1U71BuNnp1TBd1JgzYsldsdA83h/20Tvnf/HrwhiSlNmuq6Vqa0EzidsvkTArwoq+tH6w==} 569 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 570 | dependencies: 571 | '@typescript-eslint/types': 4.25.0 572 | '@typescript-eslint/visitor-keys': 4.25.0 573 | dev: true 574 | 575 | /@typescript-eslint/types/4.25.0: 576 | resolution: {integrity: sha512-+CNINNvl00OkW6wEsi32wU5MhHti2J25TJsJJqgQmJu3B3dYDBcmOxcE5w9cgoM13TrdE/5ND2HoEnBohasxRQ==} 577 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 578 | dev: true 579 | 580 | /@typescript-eslint/typescript-estree/4.25.0_typescript@4.3.2: 581 | resolution: {integrity: sha512-1B8U07TGNAFMxZbSpF6jqiDs1cVGO0izVkf18Q/SPcUAc9LhHxzvSowXDTvkHMWUVuPpagupaW63gB6ahTXVlg==} 582 | engines: {node: ^10.12.0 || >=12.0.0} 583 | peerDependencies: 584 | typescript: '*' 585 | peerDependenciesMeta: 586 | typescript: 587 | optional: true 588 | dependencies: 589 | '@typescript-eslint/types': 4.25.0 590 | '@typescript-eslint/visitor-keys': 4.25.0 591 | debug: 4.3.1 592 | globby: 11.0.3 593 | is-glob: 4.0.1 594 | semver: 7.3.5 595 | tsutils: 3.21.0_typescript@4.3.2 596 | typescript: 4.3.2 597 | transitivePeerDependencies: 598 | - supports-color 599 | dev: true 600 | 601 | /@typescript-eslint/visitor-keys/4.25.0: 602 | resolution: {integrity: sha512-AmkqV9dDJVKP/TcZrbf6s6i1zYXt5Hl8qOLrRDTFfRNae4+LB8A4N3i+FLZPW85zIxRy39BgeWOfMS3HoH5ngg==} 603 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 604 | dependencies: 605 | '@typescript-eslint/types': 4.25.0 606 | eslint-visitor-keys: 2.1.0 607 | dev: true 608 | 609 | /acorn-jsx/5.3.1_acorn@7.4.1: 610 | resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} 611 | peerDependencies: 612 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 613 | dependencies: 614 | acorn: 7.4.1 615 | dev: true 616 | 617 | /acorn/7.4.1: 618 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 619 | engines: {node: '>=0.4.0'} 620 | hasBin: true 621 | dev: true 622 | 623 | /ajv/6.12.6: 624 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 625 | dependencies: 626 | fast-deep-equal: 3.1.3 627 | fast-json-stable-stringify: 2.1.0 628 | json-schema-traverse: 0.4.1 629 | uri-js: 4.4.1 630 | dev: true 631 | 632 | /ajv/8.5.0: 633 | resolution: {integrity: sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==} 634 | dependencies: 635 | fast-deep-equal: 3.1.3 636 | json-schema-traverse: 1.0.0 637 | require-from-string: 2.0.2 638 | uri-js: 4.4.1 639 | dev: true 640 | 641 | /ansi-colors/3.2.3: 642 | resolution: {integrity: sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==} 643 | engines: {node: '>=6'} 644 | dev: true 645 | 646 | /ansi-colors/4.1.1: 647 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} 648 | engines: {node: '>=6'} 649 | dev: true 650 | 651 | /ansi-regex/3.0.0: 652 | resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=} 653 | engines: {node: '>=4'} 654 | dev: true 655 | 656 | /ansi-regex/4.1.0: 657 | resolution: {integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==} 658 | engines: {node: '>=6'} 659 | dev: true 660 | 661 | /ansi-regex/5.0.0: 662 | resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} 663 | engines: {node: '>=8'} 664 | dev: true 665 | 666 | /ansi-styles/3.2.1: 667 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 668 | engines: {node: '>=4'} 669 | dependencies: 670 | color-convert: 1.9.3 671 | dev: true 672 | 673 | /ansi-styles/4.3.0: 674 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 675 | engines: {node: '>=8'} 676 | dependencies: 677 | color-convert: 2.0.1 678 | dev: true 679 | 680 | /any-promise/1.3.0: 681 | resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} 682 | dev: true 683 | 684 | /argparse/1.0.10: 685 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 686 | dependencies: 687 | sprintf-js: 1.0.3 688 | dev: true 689 | 690 | /arr-diff/4.0.0: 691 | resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=} 692 | engines: {node: '>=0.10.0'} 693 | dev: true 694 | 695 | /arr-flatten/1.1.0: 696 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} 697 | engines: {node: '>=0.10.0'} 698 | dev: true 699 | 700 | /arr-union/3.1.0: 701 | resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=} 702 | engines: {node: '>=0.10.0'} 703 | dev: true 704 | 705 | /array-union/1.0.2: 706 | resolution: {integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=} 707 | engines: {node: '>=0.10.0'} 708 | dependencies: 709 | array-uniq: 1.0.3 710 | dev: true 711 | 712 | /array-union/2.1.0: 713 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 714 | engines: {node: '>=8'} 715 | dev: true 716 | 717 | /array-uniq/1.0.3: 718 | resolution: {integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=} 719 | engines: {node: '>=0.10.0'} 720 | dev: true 721 | 722 | /array-unique/0.3.2: 723 | resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=} 724 | engines: {node: '>=0.10.0'} 725 | dev: true 726 | 727 | /arrify/1.0.1: 728 | resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} 729 | engines: {node: '>=0.10.0'} 730 | dev: true 731 | 732 | /assertion-error/1.1.0: 733 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 734 | dev: true 735 | 736 | /assign-symbols/1.0.0: 737 | resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} 738 | engines: {node: '>=0.10.0'} 739 | dev: true 740 | 741 | /astral-regex/2.0.0: 742 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 743 | engines: {node: '>=8'} 744 | dev: true 745 | 746 | /atob/2.1.2: 747 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} 748 | engines: {node: '>= 4.5.0'} 749 | hasBin: true 750 | dev: true 751 | 752 | /balanced-match/1.0.2: 753 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 754 | dev: true 755 | 756 | /base/0.11.2: 757 | resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} 758 | engines: {node: '>=0.10.0'} 759 | dependencies: 760 | cache-base: 1.0.1 761 | class-utils: 0.3.6 762 | component-emitter: 1.3.0 763 | define-property: 1.0.0 764 | isobject: 3.0.1 765 | mixin-deep: 1.3.2 766 | pascalcase: 0.1.1 767 | dev: true 768 | 769 | /bluebird/3.7.2: 770 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} 771 | dev: true 772 | 773 | /boolean/3.1.0: 774 | resolution: {integrity: sha512-K6r5tvO1ykeYerI7jIyTvSFw2l6D6DzqkljGj2E2uyYAAdDo2SV4qGJIV75cHIQpTFyb6BB0BEHiDdDrFsNI+g==} 775 | dev: true 776 | optional: true 777 | 778 | /brace-expansion/1.1.11: 779 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 780 | dependencies: 781 | balanced-match: 1.0.2 782 | concat-map: 0.0.1 783 | dev: true 784 | 785 | /braces/2.3.2: 786 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} 787 | engines: {node: '>=0.10.0'} 788 | dependencies: 789 | arr-flatten: 1.1.0 790 | array-unique: 0.3.2 791 | extend-shallow: 2.0.1 792 | fill-range: 4.0.0 793 | isobject: 3.0.1 794 | repeat-element: 1.1.4 795 | snapdragon: 0.8.2 796 | snapdragon-node: 2.1.1 797 | split-string: 3.1.0 798 | to-regex: 3.0.2 799 | dev: true 800 | 801 | /braces/3.0.2: 802 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 803 | engines: {node: '>=8'} 804 | dependencies: 805 | fill-range: 7.0.1 806 | dev: true 807 | 808 | /browser-stdout/1.3.1: 809 | resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} 810 | dev: true 811 | 812 | /buffer-crc32/0.2.13: 813 | resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} 814 | dev: true 815 | 816 | /buffer-from/1.1.1: 817 | resolution: {integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==} 818 | dev: true 819 | 820 | /builtin-modules/3.2.0: 821 | resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} 822 | engines: {node: '>=6'} 823 | dev: true 824 | 825 | /cache-base/1.0.1: 826 | resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} 827 | engines: {node: '>=0.10.0'} 828 | dependencies: 829 | collection-visit: 1.0.0 830 | component-emitter: 1.3.0 831 | get-value: 2.0.6 832 | has-value: 1.0.0 833 | isobject: 3.0.1 834 | set-value: 2.0.1 835 | to-object-path: 0.3.0 836 | union-value: 1.0.1 837 | unset-value: 1.0.0 838 | dev: true 839 | 840 | /cacheable-request/6.1.0: 841 | resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} 842 | engines: {node: '>=8'} 843 | dependencies: 844 | clone-response: 1.0.2 845 | get-stream: 5.2.0 846 | http-cache-semantics: 4.1.0 847 | keyv: 3.1.0 848 | lowercase-keys: 2.0.0 849 | normalize-url: 4.5.1 850 | responselike: 1.0.2 851 | dev: true 852 | 853 | /call-bind/1.0.2: 854 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 855 | dependencies: 856 | function-bind: 1.1.1 857 | get-intrinsic: 1.1.1 858 | dev: true 859 | 860 | /call-me-maybe/1.0.1: 861 | resolution: {integrity: sha1-JtII6onje1y95gJQoV8DHBak1ms=} 862 | dev: true 863 | 864 | /callsites/3.1.0: 865 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 866 | engines: {node: '>=6'} 867 | dev: true 868 | 869 | /camelcase/5.3.1: 870 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 871 | engines: {node: '>=6'} 872 | dev: true 873 | 874 | /catharsis/0.9.0: 875 | resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} 876 | engines: {node: '>= 10'} 877 | dependencies: 878 | lodash: 4.17.21 879 | dev: true 880 | 881 | /chai/4.3.4: 882 | resolution: {integrity: sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==} 883 | engines: {node: '>=4'} 884 | dependencies: 885 | assertion-error: 1.1.0 886 | check-error: 1.0.2 887 | deep-eql: 3.0.1 888 | get-func-name: 2.0.0 889 | pathval: 1.1.1 890 | type-detect: 4.0.8 891 | dev: true 892 | 893 | /chalk/2.4.2: 894 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 895 | engines: {node: '>=4'} 896 | dependencies: 897 | ansi-styles: 3.2.1 898 | escape-string-regexp: 1.0.5 899 | supports-color: 5.5.0 900 | dev: true 901 | 902 | /chalk/4.1.1: 903 | resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} 904 | engines: {node: '>=10'} 905 | dependencies: 906 | ansi-styles: 4.3.0 907 | supports-color: 7.2.0 908 | dev: true 909 | 910 | /check-error/1.0.2: 911 | resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} 912 | dev: true 913 | 914 | /checksum/0.1.1: 915 | resolution: {integrity: sha1-3GUn1MkL6FYNvR7Uzs8yl9Uo6ek=} 916 | hasBin: true 917 | dependencies: 918 | optimist: 0.3.7 919 | dev: true 920 | 921 | /chownr/2.0.0: 922 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 923 | engines: {node: '>=10'} 924 | dev: true 925 | 926 | /class-utils/0.3.6: 927 | resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} 928 | engines: {node: '>=0.10.0'} 929 | dependencies: 930 | arr-union: 3.1.0 931 | define-property: 0.2.5 932 | isobject: 3.0.1 933 | static-extend: 0.1.2 934 | dev: true 935 | 936 | /cliui/5.0.0: 937 | resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} 938 | dependencies: 939 | string-width: 3.1.0 940 | strip-ansi: 5.2.0 941 | wrap-ansi: 5.1.0 942 | dev: true 943 | 944 | /cliui/6.0.0: 945 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 946 | dependencies: 947 | string-width: 4.2.2 948 | strip-ansi: 6.0.0 949 | wrap-ansi: 6.2.0 950 | dev: true 951 | 952 | /clone-response/1.0.2: 953 | resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} 954 | dependencies: 955 | mimic-response: 1.0.1 956 | dev: true 957 | 958 | /collection-visit/1.0.0: 959 | resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=} 960 | engines: {node: '>=0.10.0'} 961 | dependencies: 962 | map-visit: 1.0.0 963 | object-visit: 1.0.1 964 | dev: true 965 | 966 | /color-convert/1.9.3: 967 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 968 | dependencies: 969 | color-name: 1.1.3 970 | dev: true 971 | 972 | /color-convert/2.0.1: 973 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 974 | engines: {node: '>=7.0.0'} 975 | dependencies: 976 | color-name: 1.1.4 977 | dev: true 978 | 979 | /color-name/1.1.3: 980 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 981 | dev: true 982 | 983 | /color-name/1.1.4: 984 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 985 | dev: true 986 | 987 | /colors/1.2.5: 988 | resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} 989 | engines: {node: '>=0.1.90'} 990 | dev: true 991 | 992 | /commander/2.20.3: 993 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 994 | dev: true 995 | 996 | /commander/4.1.1: 997 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 998 | engines: {node: '>= 6'} 999 | dev: true 1000 | 1001 | /commondir/1.0.1: 1002 | resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} 1003 | dev: true 1004 | 1005 | /component-emitter/1.3.0: 1006 | resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} 1007 | dev: true 1008 | 1009 | /concat-map/0.0.1: 1010 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 1011 | dev: true 1012 | 1013 | /concat-stream/1.6.2: 1014 | resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} 1015 | engines: {'0': node >= 0.8} 1016 | dependencies: 1017 | buffer-from: 1.1.1 1018 | inherits: 2.0.4 1019 | readable-stream: 2.3.7 1020 | typedarray: 0.0.6 1021 | dev: true 1022 | 1023 | /config-chain/1.1.12: 1024 | resolution: {integrity: sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==} 1025 | dependencies: 1026 | ini: 1.3.8 1027 | proto-list: 1.2.4 1028 | dev: true 1029 | optional: true 1030 | 1031 | /copy-descriptor/0.1.1: 1032 | resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=} 1033 | engines: {node: '>=0.10.0'} 1034 | dev: true 1035 | 1036 | /core-js/3.13.1: 1037 | resolution: {integrity: sha512-JqveUc4igkqwStL2RTRn/EPFGBOfEZHxJl/8ej1mXJR75V3go2mFF4bmUYkEIT1rveHKnkUlcJX/c+f1TyIovQ==} 1038 | requiresBuild: true 1039 | dev: true 1040 | optional: true 1041 | 1042 | /core-util-is/1.0.2: 1043 | resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} 1044 | dev: true 1045 | 1046 | /cross-spawn/6.0.5: 1047 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 1048 | engines: {node: '>=4.8'} 1049 | dependencies: 1050 | nice-try: 1.0.5 1051 | path-key: 2.0.1 1052 | semver: 5.7.1 1053 | shebang-command: 1.2.0 1054 | which: 1.3.1 1055 | dev: true 1056 | 1057 | /cross-spawn/7.0.3: 1058 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1059 | engines: {node: '>= 8'} 1060 | dependencies: 1061 | path-key: 3.1.1 1062 | shebang-command: 2.0.0 1063 | which: 2.0.2 1064 | dev: true 1065 | 1066 | /debug/2.6.9: 1067 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1068 | dependencies: 1069 | ms: 2.0.0 1070 | dev: true 1071 | 1072 | /debug/3.2.6: 1073 | resolution: {integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==} 1074 | deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) 1075 | dependencies: 1076 | ms: 2.1.1 1077 | dev: true 1078 | 1079 | /debug/4.3.1: 1080 | resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} 1081 | engines: {node: '>=6.0'} 1082 | peerDependencies: 1083 | supports-color: '*' 1084 | peerDependenciesMeta: 1085 | supports-color: 1086 | optional: true 1087 | dependencies: 1088 | ms: 2.1.2 1089 | dev: true 1090 | 1091 | /decamelize/1.2.0: 1092 | resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} 1093 | engines: {node: '>=0.10.0'} 1094 | dev: true 1095 | 1096 | /decode-uri-component/0.2.0: 1097 | resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} 1098 | engines: {node: '>=0.10'} 1099 | dev: true 1100 | 1101 | /decompress-response/3.3.0: 1102 | resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} 1103 | engines: {node: '>=4'} 1104 | dependencies: 1105 | mimic-response: 1.0.1 1106 | dev: true 1107 | 1108 | /deep-eql/3.0.1: 1109 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} 1110 | engines: {node: '>=0.12'} 1111 | dependencies: 1112 | type-detect: 4.0.8 1113 | dev: true 1114 | 1115 | /deep-freeze/0.0.1: 1116 | resolution: {integrity: sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=} 1117 | dev: true 1118 | 1119 | /deep-is/0.1.3: 1120 | resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} 1121 | dev: true 1122 | 1123 | /deepmerge/4.2.2: 1124 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 1125 | engines: {node: '>=0.10.0'} 1126 | dev: true 1127 | 1128 | /defer-to-connect/1.1.3: 1129 | resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} 1130 | dev: true 1131 | 1132 | /define-properties/1.1.3: 1133 | resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} 1134 | engines: {node: '>= 0.4'} 1135 | dependencies: 1136 | object-keys: 1.1.1 1137 | dev: true 1138 | 1139 | /define-property/0.2.5: 1140 | resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=} 1141 | engines: {node: '>=0.10.0'} 1142 | dependencies: 1143 | is-descriptor: 0.1.6 1144 | dev: true 1145 | 1146 | /define-property/1.0.0: 1147 | resolution: {integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=} 1148 | engines: {node: '>=0.10.0'} 1149 | dependencies: 1150 | is-descriptor: 1.0.2 1151 | dev: true 1152 | 1153 | /define-property/2.0.2: 1154 | resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} 1155 | engines: {node: '>=0.10.0'} 1156 | dependencies: 1157 | is-descriptor: 1.0.2 1158 | isobject: 3.0.1 1159 | dev: true 1160 | 1161 | /del/2.2.2: 1162 | resolution: {integrity: sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=} 1163 | engines: {node: '>=0.10.0'} 1164 | dependencies: 1165 | globby: 5.0.0 1166 | is-path-cwd: 1.0.0 1167 | is-path-in-cwd: 1.0.1 1168 | object-assign: 4.1.1 1169 | pify: 2.3.0 1170 | pinkie-promise: 2.0.1 1171 | rimraf: 2.7.1 1172 | dev: true 1173 | 1174 | /detect-node/2.1.0: 1175 | resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} 1176 | dev: true 1177 | optional: true 1178 | 1179 | /diff/3.5.0: 1180 | resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} 1181 | engines: {node: '>=0.3.1'} 1182 | dev: true 1183 | 1184 | /dir-glob/2.2.2: 1185 | resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} 1186 | engines: {node: '>=4'} 1187 | dependencies: 1188 | path-type: 3.0.0 1189 | dev: true 1190 | 1191 | /dir-glob/3.0.1: 1192 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1193 | engines: {node: '>=8'} 1194 | dependencies: 1195 | path-type: 4.0.0 1196 | dev: true 1197 | 1198 | /doctrine/3.0.0: 1199 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1200 | engines: {node: '>=6.0.0'} 1201 | dependencies: 1202 | esutils: 2.0.3 1203 | dev: true 1204 | 1205 | /duplexer3/0.1.4: 1206 | resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} 1207 | dev: true 1208 | 1209 | /earcut/2.2.2: 1210 | resolution: {integrity: sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==} 1211 | dev: true 1212 | 1213 | /electron/9.4.4: 1214 | resolution: {integrity: sha512-dcPlTrMWQu5xuSm6sYV42KK/BRIqh3erM8v/WtZqaDmG7pkCeJpvw26Dgbqhdt78XmqqGiN96giEe6A3S9vpAQ==} 1215 | engines: {node: '>= 8.6'} 1216 | hasBin: true 1217 | requiresBuild: true 1218 | dependencies: 1219 | '@electron/get': 1.12.4 1220 | '@types/node': 12.20.13 1221 | extract-zip: 1.7.0 1222 | transitivePeerDependencies: 1223 | - supports-color 1224 | dev: true 1225 | 1226 | /emoji-regex/7.0.3: 1227 | resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} 1228 | dev: true 1229 | 1230 | /emoji-regex/8.0.0: 1231 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1232 | dev: true 1233 | 1234 | /encodeurl/1.0.2: 1235 | resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} 1236 | engines: {node: '>= 0.8'} 1237 | dev: true 1238 | optional: true 1239 | 1240 | /end-of-stream/1.4.4: 1241 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1242 | dependencies: 1243 | once: 1.4.0 1244 | dev: true 1245 | 1246 | /enquirer/2.3.6: 1247 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} 1248 | engines: {node: '>=8.6'} 1249 | dependencies: 1250 | ansi-colors: 4.1.1 1251 | dev: true 1252 | 1253 | /entities/2.0.3: 1254 | resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} 1255 | dev: true 1256 | 1257 | /env-paths/2.2.1: 1258 | resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} 1259 | engines: {node: '>=6'} 1260 | dev: true 1261 | 1262 | /error-ex/1.3.2: 1263 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1264 | dependencies: 1265 | is-arrayish: 0.2.1 1266 | dev: true 1267 | 1268 | /es-abstract/1.18.3: 1269 | resolution: {integrity: sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==} 1270 | engines: {node: '>= 0.4'} 1271 | dependencies: 1272 | call-bind: 1.0.2 1273 | es-to-primitive: 1.2.1 1274 | function-bind: 1.1.1 1275 | get-intrinsic: 1.1.1 1276 | has: 1.0.3 1277 | has-symbols: 1.0.2 1278 | is-callable: 1.2.3 1279 | is-negative-zero: 2.0.1 1280 | is-regex: 1.1.3 1281 | is-string: 1.0.6 1282 | object-inspect: 1.10.3 1283 | object-keys: 1.1.1 1284 | object.assign: 4.1.2 1285 | string.prototype.trimend: 1.0.4 1286 | string.prototype.trimstart: 1.0.4 1287 | unbox-primitive: 1.0.1 1288 | dev: true 1289 | 1290 | /es-to-primitive/1.2.1: 1291 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1292 | engines: {node: '>= 0.4'} 1293 | dependencies: 1294 | is-callable: 1.2.3 1295 | is-date-object: 1.0.4 1296 | is-symbol: 1.0.4 1297 | dev: true 1298 | 1299 | /es6-error/4.1.1: 1300 | resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} 1301 | dev: true 1302 | optional: true 1303 | 1304 | /escape-string-regexp/1.0.5: 1305 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 1306 | engines: {node: '>=0.8.0'} 1307 | dev: true 1308 | 1309 | /escape-string-regexp/2.0.0: 1310 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 1311 | engines: {node: '>=8'} 1312 | dev: true 1313 | 1314 | /escape-string-regexp/4.0.0: 1315 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1316 | engines: {node: '>=10'} 1317 | dev: true 1318 | 1319 | /eslint-scope/5.1.1: 1320 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1321 | engines: {node: '>=8.0.0'} 1322 | dependencies: 1323 | esrecurse: 4.3.0 1324 | estraverse: 4.3.0 1325 | dev: true 1326 | 1327 | /eslint-utils/2.1.0: 1328 | resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} 1329 | engines: {node: '>=6'} 1330 | dependencies: 1331 | eslint-visitor-keys: 1.3.0 1332 | dev: true 1333 | 1334 | /eslint-visitor-keys/1.3.0: 1335 | resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} 1336 | engines: {node: '>=4'} 1337 | dev: true 1338 | 1339 | /eslint-visitor-keys/2.1.0: 1340 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1341 | engines: {node: '>=10'} 1342 | dev: true 1343 | 1344 | /eslint/7.27.0: 1345 | resolution: {integrity: sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==} 1346 | engines: {node: ^10.12.0 || >=12.0.0} 1347 | hasBin: true 1348 | dependencies: 1349 | '@babel/code-frame': 7.12.11 1350 | '@eslint/eslintrc': 0.4.1 1351 | ajv: 6.12.6 1352 | chalk: 4.1.1 1353 | cross-spawn: 7.0.3 1354 | debug: 4.3.1 1355 | doctrine: 3.0.0 1356 | enquirer: 2.3.6 1357 | escape-string-regexp: 4.0.0 1358 | eslint-scope: 5.1.1 1359 | eslint-utils: 2.1.0 1360 | eslint-visitor-keys: 2.1.0 1361 | espree: 7.3.1 1362 | esquery: 1.4.0 1363 | esutils: 2.0.3 1364 | fast-deep-equal: 3.1.3 1365 | file-entry-cache: 6.0.1 1366 | functional-red-black-tree: 1.0.1 1367 | glob-parent: 5.1.2 1368 | globals: 13.9.0 1369 | ignore: 4.0.6 1370 | import-fresh: 3.3.0 1371 | imurmurhash: 0.1.4 1372 | is-glob: 4.0.1 1373 | js-yaml: 3.14.1 1374 | json-stable-stringify-without-jsonify: 1.0.1 1375 | levn: 0.4.1 1376 | lodash.merge: 4.6.2 1377 | minimatch: 3.0.4 1378 | natural-compare: 1.4.0 1379 | optionator: 0.9.1 1380 | progress: 2.0.3 1381 | regexpp: 3.1.0 1382 | semver: 7.3.5 1383 | strip-ansi: 6.0.0 1384 | strip-json-comments: 3.1.1 1385 | table: 6.7.1 1386 | text-table: 0.2.0 1387 | v8-compile-cache: 2.3.0 1388 | transitivePeerDependencies: 1389 | - supports-color 1390 | dev: true 1391 | 1392 | /espree/7.3.1: 1393 | resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} 1394 | engines: {node: ^10.12.0 || >=12.0.0} 1395 | dependencies: 1396 | acorn: 7.4.1 1397 | acorn-jsx: 5.3.1_acorn@7.4.1 1398 | eslint-visitor-keys: 1.3.0 1399 | dev: true 1400 | 1401 | /esprima/4.0.1: 1402 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1403 | engines: {node: '>=4'} 1404 | hasBin: true 1405 | dev: true 1406 | 1407 | /esquery/1.4.0: 1408 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1409 | engines: {node: '>=0.10'} 1410 | dependencies: 1411 | estraverse: 5.2.0 1412 | dev: true 1413 | 1414 | /esrecurse/4.3.0: 1415 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1416 | engines: {node: '>=4.0'} 1417 | dependencies: 1418 | estraverse: 5.2.0 1419 | dev: true 1420 | 1421 | /estraverse/4.3.0: 1422 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1423 | engines: {node: '>=4.0'} 1424 | dev: true 1425 | 1426 | /estraverse/5.2.0: 1427 | resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} 1428 | engines: {node: '>=4.0'} 1429 | dev: true 1430 | 1431 | /estree-walker/0.6.1: 1432 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 1433 | dev: true 1434 | 1435 | /estree-walker/1.0.1: 1436 | resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} 1437 | dev: true 1438 | 1439 | /estree-walker/2.0.2: 1440 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1441 | dev: true 1442 | 1443 | /esutils/2.0.3: 1444 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1445 | engines: {node: '>=0.10.0'} 1446 | dev: true 1447 | 1448 | /eventemitter3/3.1.2: 1449 | resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} 1450 | dev: true 1451 | 1452 | /eventemitter3/4.0.7: 1453 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 1454 | dev: true 1455 | 1456 | /expand-brackets/2.1.4: 1457 | resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=} 1458 | engines: {node: '>=0.10.0'} 1459 | dependencies: 1460 | debug: 2.6.9 1461 | define-property: 0.2.5 1462 | extend-shallow: 2.0.1 1463 | posix-character-classes: 0.1.1 1464 | regex-not: 1.0.2 1465 | snapdragon: 0.8.2 1466 | to-regex: 3.0.2 1467 | dev: true 1468 | 1469 | /extend-shallow/2.0.1: 1470 | resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} 1471 | engines: {node: '>=0.10.0'} 1472 | dependencies: 1473 | is-extendable: 0.1.1 1474 | dev: true 1475 | 1476 | /extend-shallow/3.0.2: 1477 | resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=} 1478 | engines: {node: '>=0.10.0'} 1479 | dependencies: 1480 | assign-symbols: 1.0.0 1481 | is-extendable: 1.0.1 1482 | dev: true 1483 | 1484 | /extglob/2.0.4: 1485 | resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} 1486 | engines: {node: '>=0.10.0'} 1487 | dependencies: 1488 | array-unique: 0.3.2 1489 | define-property: 1.0.0 1490 | expand-brackets: 2.1.4 1491 | extend-shallow: 2.0.1 1492 | fragment-cache: 0.2.1 1493 | regex-not: 1.0.2 1494 | snapdragon: 0.8.2 1495 | to-regex: 3.0.2 1496 | dev: true 1497 | 1498 | /extract-zip/1.7.0: 1499 | resolution: {integrity: sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==} 1500 | hasBin: true 1501 | dependencies: 1502 | concat-stream: 1.6.2 1503 | debug: 2.6.9 1504 | mkdirp: 0.5.5 1505 | yauzl: 2.10.0 1506 | dev: true 1507 | 1508 | /fast-deep-equal/3.1.3: 1509 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1510 | dev: true 1511 | 1512 | /fast-glob/2.2.7: 1513 | resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} 1514 | engines: {node: '>=4.0.0'} 1515 | dependencies: 1516 | '@mrmlnc/readdir-enhanced': 2.2.1 1517 | '@nodelib/fs.stat': 1.1.3 1518 | glob-parent: 3.1.0 1519 | is-glob: 4.0.1 1520 | merge2: 1.4.1 1521 | micromatch: 3.1.10 1522 | dev: true 1523 | 1524 | /fast-glob/3.2.5: 1525 | resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} 1526 | engines: {node: '>=8'} 1527 | dependencies: 1528 | '@nodelib/fs.stat': 2.0.4 1529 | '@nodelib/fs.walk': 1.2.6 1530 | glob-parent: 5.1.2 1531 | merge2: 1.4.1 1532 | micromatch: 4.0.4 1533 | picomatch: 2.3.0 1534 | dev: true 1535 | 1536 | /fast-json-stable-stringify/2.1.0: 1537 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1538 | dev: true 1539 | 1540 | /fast-levenshtein/2.0.6: 1541 | resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} 1542 | dev: true 1543 | 1544 | /fastq/1.11.0: 1545 | resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} 1546 | dependencies: 1547 | reusify: 1.0.4 1548 | dev: true 1549 | 1550 | /fd-slicer/1.1.0: 1551 | resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} 1552 | dependencies: 1553 | pend: 1.2.0 1554 | dev: true 1555 | 1556 | /file-entry-cache/6.0.1: 1557 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1558 | engines: {node: ^10.12.0 || >=12.0.0} 1559 | dependencies: 1560 | flat-cache: 3.0.4 1561 | dev: true 1562 | 1563 | /fill-range/4.0.0: 1564 | resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=} 1565 | engines: {node: '>=0.10.0'} 1566 | dependencies: 1567 | extend-shallow: 2.0.1 1568 | is-number: 3.0.0 1569 | repeat-string: 1.6.1 1570 | to-regex-range: 2.1.1 1571 | dev: true 1572 | 1573 | /fill-range/7.0.1: 1574 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1575 | engines: {node: '>=8'} 1576 | dependencies: 1577 | to-regex-range: 5.0.1 1578 | dev: true 1579 | 1580 | /find-up/3.0.0: 1581 | resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} 1582 | engines: {node: '>=6'} 1583 | dependencies: 1584 | locate-path: 3.0.0 1585 | dev: true 1586 | 1587 | /find-up/4.1.0: 1588 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1589 | engines: {node: '>=8'} 1590 | dependencies: 1591 | locate-path: 5.0.0 1592 | path-exists: 4.0.0 1593 | dev: true 1594 | 1595 | /flat-cache/3.0.4: 1596 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1597 | engines: {node: ^10.12.0 || >=12.0.0} 1598 | dependencies: 1599 | flatted: 3.1.1 1600 | rimraf: 3.0.2 1601 | dev: true 1602 | 1603 | /flat/4.1.1: 1604 | resolution: {integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==} 1605 | hasBin: true 1606 | dependencies: 1607 | is-buffer: 2.0.5 1608 | dev: true 1609 | 1610 | /flatted/3.1.1: 1611 | resolution: {integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==} 1612 | dev: true 1613 | 1614 | /floss/3.0.1_electron@9.4.4: 1615 | resolution: {integrity: sha512-FOe9aK/RPpcYYDVo4Jqib69qLERBDQw647lOAqM697/dgqGdSmcQiBBOYfuYFfRldHFw4km7ruL+z6enXVM8KA==} 1616 | engines: {node: '>=6.0'} 1617 | hasBin: true 1618 | peerDependencies: 1619 | electron: '>=1' 1620 | nyc: '>=13' 1621 | dependencies: 1622 | chalk: 2.4.2 1623 | commander: 2.20.3 1624 | electron: 9.4.4 1625 | mocha: 6.2.3 1626 | resolve: 1.20.0 1627 | dev: true 1628 | 1629 | /for-in/1.0.2: 1630 | resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} 1631 | engines: {node: '>=0.10.0'} 1632 | dev: true 1633 | 1634 | /fragment-cache/0.2.1: 1635 | resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=} 1636 | engines: {node: '>=0.10.0'} 1637 | dependencies: 1638 | map-cache: 0.2.2 1639 | dev: true 1640 | 1641 | /fs-extra/7.0.1: 1642 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 1643 | engines: {node: '>=6 <7 || >=8'} 1644 | dependencies: 1645 | graceful-fs: 4.2.6 1646 | jsonfile: 4.0.0 1647 | universalify: 0.1.2 1648 | dev: true 1649 | 1650 | /fs-extra/8.1.0: 1651 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 1652 | engines: {node: '>=6 <7 || >=8'} 1653 | dependencies: 1654 | graceful-fs: 4.2.6 1655 | jsonfile: 4.0.0 1656 | universalify: 0.1.2 1657 | dev: true 1658 | 1659 | /fs-minipass/2.1.0: 1660 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 1661 | engines: {node: '>= 8'} 1662 | dependencies: 1663 | minipass: 3.1.3 1664 | dev: true 1665 | 1666 | /fs.realpath/1.0.0: 1667 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 1668 | dev: true 1669 | 1670 | /fsevents/2.3.2: 1671 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1672 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1673 | os: [darwin] 1674 | dev: true 1675 | optional: true 1676 | 1677 | /function-bind/1.1.1: 1678 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1679 | dev: true 1680 | 1681 | /functional-red-black-tree/1.0.1: 1682 | resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} 1683 | dev: true 1684 | 1685 | /get-caller-file/2.0.5: 1686 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1687 | engines: {node: 6.* || 8.* || >= 10.*} 1688 | dev: true 1689 | 1690 | /get-func-name/2.0.0: 1691 | resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} 1692 | dev: true 1693 | 1694 | /get-intrinsic/1.1.1: 1695 | resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} 1696 | dependencies: 1697 | function-bind: 1.1.1 1698 | has: 1.0.3 1699 | has-symbols: 1.0.2 1700 | dev: true 1701 | 1702 | /get-stream/4.1.0: 1703 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 1704 | engines: {node: '>=6'} 1705 | dependencies: 1706 | pump: 3.0.0 1707 | dev: true 1708 | 1709 | /get-stream/5.2.0: 1710 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 1711 | engines: {node: '>=8'} 1712 | dependencies: 1713 | pump: 3.0.0 1714 | dev: true 1715 | 1716 | /get-value/2.0.6: 1717 | resolution: {integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=} 1718 | engines: {node: '>=0.10.0'} 1719 | dev: true 1720 | 1721 | /glob-parent/3.1.0: 1722 | resolution: {integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=} 1723 | dependencies: 1724 | is-glob: 3.1.0 1725 | path-dirname: 1.0.2 1726 | dev: true 1727 | 1728 | /glob-parent/5.1.2: 1729 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1730 | engines: {node: '>= 6'} 1731 | dependencies: 1732 | is-glob: 4.0.1 1733 | dev: true 1734 | 1735 | /glob-to-regexp/0.3.0: 1736 | resolution: {integrity: sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=} 1737 | dev: true 1738 | 1739 | /glob/7.1.3: 1740 | resolution: {integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==} 1741 | dependencies: 1742 | fs.realpath: 1.0.0 1743 | inflight: 1.0.6 1744 | inherits: 2.0.4 1745 | minimatch: 3.0.4 1746 | once: 1.4.0 1747 | path-is-absolute: 1.0.1 1748 | dev: true 1749 | 1750 | /glob/7.1.6: 1751 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1752 | dependencies: 1753 | fs.realpath: 1.0.0 1754 | inflight: 1.0.6 1755 | inherits: 2.0.4 1756 | minimatch: 3.0.4 1757 | once: 1.4.0 1758 | path-is-absolute: 1.0.1 1759 | dev: true 1760 | 1761 | /glob/7.1.7: 1762 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 1763 | dependencies: 1764 | fs.realpath: 1.0.0 1765 | inflight: 1.0.6 1766 | inherits: 2.0.4 1767 | minimatch: 3.0.4 1768 | once: 1.4.0 1769 | path-is-absolute: 1.0.1 1770 | dev: true 1771 | 1772 | /global-agent/2.2.0: 1773 | resolution: {integrity: sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==} 1774 | engines: {node: '>=10.0'} 1775 | dependencies: 1776 | boolean: 3.1.0 1777 | core-js: 3.13.1 1778 | es6-error: 4.1.1 1779 | matcher: 3.0.0 1780 | roarr: 2.15.4 1781 | semver: 7.3.5 1782 | serialize-error: 7.0.1 1783 | dev: true 1784 | optional: true 1785 | 1786 | /global-tunnel-ng/2.7.1: 1787 | resolution: {integrity: sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==} 1788 | engines: {node: '>=0.10'} 1789 | dependencies: 1790 | encodeurl: 1.0.2 1791 | lodash: 4.17.21 1792 | npm-conf: 1.1.3 1793 | tunnel: 0.0.6 1794 | dev: true 1795 | optional: true 1796 | 1797 | /globals/12.4.0: 1798 | resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} 1799 | engines: {node: '>=8'} 1800 | dependencies: 1801 | type-fest: 0.8.1 1802 | dev: true 1803 | 1804 | /globals/13.9.0: 1805 | resolution: {integrity: sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==} 1806 | engines: {node: '>=8'} 1807 | dependencies: 1808 | type-fest: 0.20.2 1809 | dev: true 1810 | 1811 | /globalthis/1.0.2: 1812 | resolution: {integrity: sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==} 1813 | engines: {node: '>= 0.4'} 1814 | dependencies: 1815 | define-properties: 1.1.3 1816 | dev: true 1817 | optional: true 1818 | 1819 | /globby/11.0.3: 1820 | resolution: {integrity: sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==} 1821 | engines: {node: '>=10'} 1822 | dependencies: 1823 | array-union: 2.1.0 1824 | dir-glob: 3.0.1 1825 | fast-glob: 3.2.5 1826 | ignore: 5.1.8 1827 | merge2: 1.4.1 1828 | slash: 3.0.0 1829 | dev: true 1830 | 1831 | /globby/5.0.0: 1832 | resolution: {integrity: sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=} 1833 | engines: {node: '>=0.10.0'} 1834 | dependencies: 1835 | array-union: 1.0.2 1836 | arrify: 1.0.1 1837 | glob: 7.1.7 1838 | object-assign: 4.1.1 1839 | pify: 2.3.0 1840 | pinkie-promise: 2.0.1 1841 | dev: true 1842 | 1843 | /globby/9.2.0: 1844 | resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==} 1845 | engines: {node: '>=6'} 1846 | dependencies: 1847 | '@types/glob': 7.1.3 1848 | array-union: 1.0.2 1849 | dir-glob: 2.2.2 1850 | fast-glob: 2.2.7 1851 | glob: 7.1.7 1852 | ignore: 4.0.6 1853 | pify: 4.0.1 1854 | slash: 2.0.0 1855 | dev: true 1856 | 1857 | /got/9.6.0: 1858 | resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} 1859 | engines: {node: '>=8.6'} 1860 | dependencies: 1861 | '@sindresorhus/is': 0.14.0 1862 | '@szmarczak/http-timer': 1.1.2 1863 | cacheable-request: 6.1.0 1864 | decompress-response: 3.3.0 1865 | duplexer3: 0.1.4 1866 | get-stream: 4.1.0 1867 | lowercase-keys: 1.0.1 1868 | mimic-response: 1.0.1 1869 | p-cancelable: 1.1.0 1870 | to-readable-stream: 1.0.0 1871 | url-parse-lax: 3.0.0 1872 | dev: true 1873 | 1874 | /graceful-fs/4.2.6: 1875 | resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} 1876 | dev: true 1877 | 1878 | /growl/1.10.5: 1879 | resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} 1880 | engines: {node: '>=4.x'} 1881 | dev: true 1882 | 1883 | /has-bigints/1.0.1: 1884 | resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} 1885 | dev: true 1886 | 1887 | /has-flag/3.0.0: 1888 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 1889 | engines: {node: '>=4'} 1890 | dev: true 1891 | 1892 | /has-flag/4.0.0: 1893 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1894 | engines: {node: '>=8'} 1895 | dev: true 1896 | 1897 | /has-symbols/1.0.2: 1898 | resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} 1899 | engines: {node: '>= 0.4'} 1900 | dev: true 1901 | 1902 | /has-value/0.3.1: 1903 | resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=} 1904 | engines: {node: '>=0.10.0'} 1905 | dependencies: 1906 | get-value: 2.0.6 1907 | has-values: 0.1.4 1908 | isobject: 2.1.0 1909 | dev: true 1910 | 1911 | /has-value/1.0.0: 1912 | resolution: {integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=} 1913 | engines: {node: '>=0.10.0'} 1914 | dependencies: 1915 | get-value: 2.0.6 1916 | has-values: 1.0.0 1917 | isobject: 3.0.1 1918 | dev: true 1919 | 1920 | /has-values/0.1.4: 1921 | resolution: {integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=} 1922 | engines: {node: '>=0.10.0'} 1923 | dev: true 1924 | 1925 | /has-values/1.0.0: 1926 | resolution: {integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=} 1927 | engines: {node: '>=0.10.0'} 1928 | dependencies: 1929 | is-number: 3.0.0 1930 | kind-of: 4.0.0 1931 | dev: true 1932 | 1933 | /has/1.0.3: 1934 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1935 | engines: {node: '>= 0.4.0'} 1936 | dependencies: 1937 | function-bind: 1.1.1 1938 | dev: true 1939 | 1940 | /he/1.2.0: 1941 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 1942 | hasBin: true 1943 | dev: true 1944 | 1945 | /hosted-git-info/2.8.9: 1946 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1947 | dev: true 1948 | 1949 | /http-cache-semantics/4.1.0: 1950 | resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} 1951 | dev: true 1952 | 1953 | /ignore/4.0.6: 1954 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} 1955 | engines: {node: '>= 4'} 1956 | dev: true 1957 | 1958 | /ignore/5.1.8: 1959 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} 1960 | engines: {node: '>= 4'} 1961 | dev: true 1962 | 1963 | /import-fresh/3.3.0: 1964 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1965 | engines: {node: '>=6'} 1966 | dependencies: 1967 | parent-module: 1.0.1 1968 | resolve-from: 4.0.0 1969 | dev: true 1970 | 1971 | /import-lazy/4.0.0: 1972 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} 1973 | engines: {node: '>=8'} 1974 | dev: true 1975 | 1976 | /imurmurhash/0.1.4: 1977 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} 1978 | engines: {node: '>=0.8.19'} 1979 | dev: true 1980 | 1981 | /inflight/1.0.6: 1982 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 1983 | dependencies: 1984 | once: 1.4.0 1985 | wrappy: 1.0.2 1986 | dev: true 1987 | 1988 | /inherits/2.0.4: 1989 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1990 | dev: true 1991 | 1992 | /ini/1.3.8: 1993 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1994 | dev: true 1995 | optional: true 1996 | 1997 | /is-accessor-descriptor/0.1.6: 1998 | resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=} 1999 | engines: {node: '>=0.10.0'} 2000 | dependencies: 2001 | kind-of: 3.2.2 2002 | dev: true 2003 | 2004 | /is-accessor-descriptor/1.0.0: 2005 | resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} 2006 | engines: {node: '>=0.10.0'} 2007 | dependencies: 2008 | kind-of: 6.0.3 2009 | dev: true 2010 | 2011 | /is-arrayish/0.2.1: 2012 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 2013 | dev: true 2014 | 2015 | /is-bigint/1.0.2: 2016 | resolution: {integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==} 2017 | dev: true 2018 | 2019 | /is-boolean-object/1.1.1: 2020 | resolution: {integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==} 2021 | engines: {node: '>= 0.4'} 2022 | dependencies: 2023 | call-bind: 1.0.2 2024 | dev: true 2025 | 2026 | /is-buffer/1.1.6: 2027 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 2028 | dev: true 2029 | 2030 | /is-buffer/2.0.5: 2031 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} 2032 | engines: {node: '>=4'} 2033 | dev: true 2034 | 2035 | /is-callable/1.2.3: 2036 | resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==} 2037 | engines: {node: '>= 0.4'} 2038 | dev: true 2039 | 2040 | /is-core-module/2.4.0: 2041 | resolution: {integrity: sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==} 2042 | dependencies: 2043 | has: 1.0.3 2044 | dev: true 2045 | 2046 | /is-data-descriptor/0.1.4: 2047 | resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=} 2048 | engines: {node: '>=0.10.0'} 2049 | dependencies: 2050 | kind-of: 3.2.2 2051 | dev: true 2052 | 2053 | /is-data-descriptor/1.0.0: 2054 | resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} 2055 | engines: {node: '>=0.10.0'} 2056 | dependencies: 2057 | kind-of: 6.0.3 2058 | dev: true 2059 | 2060 | /is-date-object/1.0.4: 2061 | resolution: {integrity: sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==} 2062 | engines: {node: '>= 0.4'} 2063 | dev: true 2064 | 2065 | /is-descriptor/0.1.6: 2066 | resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} 2067 | engines: {node: '>=0.10.0'} 2068 | dependencies: 2069 | is-accessor-descriptor: 0.1.6 2070 | is-data-descriptor: 0.1.4 2071 | kind-of: 5.1.0 2072 | dev: true 2073 | 2074 | /is-descriptor/1.0.2: 2075 | resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} 2076 | engines: {node: '>=0.10.0'} 2077 | dependencies: 2078 | is-accessor-descriptor: 1.0.0 2079 | is-data-descriptor: 1.0.0 2080 | kind-of: 6.0.3 2081 | dev: true 2082 | 2083 | /is-extendable/0.1.1: 2084 | resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} 2085 | engines: {node: '>=0.10.0'} 2086 | dev: true 2087 | 2088 | /is-extendable/1.0.1: 2089 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} 2090 | engines: {node: '>=0.10.0'} 2091 | dependencies: 2092 | is-plain-object: 2.0.4 2093 | dev: true 2094 | 2095 | /is-extglob/2.1.1: 2096 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 2097 | engines: {node: '>=0.10.0'} 2098 | dev: true 2099 | 2100 | /is-fullwidth-code-point/2.0.0: 2101 | resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} 2102 | engines: {node: '>=4'} 2103 | dev: true 2104 | 2105 | /is-fullwidth-code-point/3.0.0: 2106 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2107 | engines: {node: '>=8'} 2108 | dev: true 2109 | 2110 | /is-glob/3.1.0: 2111 | resolution: {integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=} 2112 | engines: {node: '>=0.10.0'} 2113 | dependencies: 2114 | is-extglob: 2.1.1 2115 | dev: true 2116 | 2117 | /is-glob/4.0.1: 2118 | resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} 2119 | engines: {node: '>=0.10.0'} 2120 | dependencies: 2121 | is-extglob: 2.1.1 2122 | dev: true 2123 | 2124 | /is-module/1.0.0: 2125 | resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=} 2126 | dev: true 2127 | 2128 | /is-negative-zero/2.0.1: 2129 | resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} 2130 | engines: {node: '>= 0.4'} 2131 | dev: true 2132 | 2133 | /is-number-object/1.0.5: 2134 | resolution: {integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==} 2135 | engines: {node: '>= 0.4'} 2136 | dev: true 2137 | 2138 | /is-number/3.0.0: 2139 | resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=} 2140 | engines: {node: '>=0.10.0'} 2141 | dependencies: 2142 | kind-of: 3.2.2 2143 | dev: true 2144 | 2145 | /is-number/7.0.0: 2146 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2147 | engines: {node: '>=0.12.0'} 2148 | dev: true 2149 | 2150 | /is-path-cwd/1.0.0: 2151 | resolution: {integrity: sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=} 2152 | engines: {node: '>=0.10.0'} 2153 | dev: true 2154 | 2155 | /is-path-in-cwd/1.0.1: 2156 | resolution: {integrity: sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==} 2157 | engines: {node: '>=0.10.0'} 2158 | dependencies: 2159 | is-path-inside: 1.0.1 2160 | dev: true 2161 | 2162 | /is-path-inside/1.0.1: 2163 | resolution: {integrity: sha1-jvW33lBDej/cprToZe96pVy0gDY=} 2164 | engines: {node: '>=0.10.0'} 2165 | dependencies: 2166 | path-is-inside: 1.0.2 2167 | dev: true 2168 | 2169 | /is-plain-object/2.0.4: 2170 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 2171 | engines: {node: '>=0.10.0'} 2172 | dependencies: 2173 | isobject: 3.0.1 2174 | dev: true 2175 | 2176 | /is-reference/1.2.1: 2177 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 2178 | dependencies: 2179 | '@types/estree': 0.0.39 2180 | dev: true 2181 | 2182 | /is-regex/1.1.3: 2183 | resolution: {integrity: sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==} 2184 | engines: {node: '>= 0.4'} 2185 | dependencies: 2186 | call-bind: 1.0.2 2187 | has-symbols: 1.0.2 2188 | dev: true 2189 | 2190 | /is-string/1.0.6: 2191 | resolution: {integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==} 2192 | engines: {node: '>= 0.4'} 2193 | dev: true 2194 | 2195 | /is-symbol/1.0.4: 2196 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2197 | engines: {node: '>= 0.4'} 2198 | dependencies: 2199 | has-symbols: 1.0.2 2200 | dev: true 2201 | 2202 | /is-windows/1.0.2: 2203 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 2204 | engines: {node: '>=0.10.0'} 2205 | dev: true 2206 | 2207 | /isarray/1.0.0: 2208 | resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} 2209 | dev: true 2210 | 2211 | /isexe/2.0.0: 2212 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 2213 | dev: true 2214 | 2215 | /ismobilejs/1.1.1: 2216 | resolution: {integrity: sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==} 2217 | dev: true 2218 | 2219 | /isobject/2.1.0: 2220 | resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=} 2221 | engines: {node: '>=0.10.0'} 2222 | dependencies: 2223 | isarray: 1.0.0 2224 | dev: true 2225 | 2226 | /isobject/3.0.1: 2227 | resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} 2228 | engines: {node: '>=0.10.0'} 2229 | dev: true 2230 | 2231 | /jest-worker/26.6.2: 2232 | resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} 2233 | engines: {node: '>= 10.13.0'} 2234 | dependencies: 2235 | '@types/node': 15.6.1 2236 | merge-stream: 2.0.0 2237 | supports-color: 7.2.0 2238 | dev: true 2239 | 2240 | /jju/1.4.0: 2241 | resolution: {integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo=} 2242 | dev: true 2243 | 2244 | /js-tokens/4.0.0: 2245 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2246 | dev: true 2247 | 2248 | /js-yaml/3.13.1: 2249 | resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} 2250 | hasBin: true 2251 | dependencies: 2252 | argparse: 1.0.10 2253 | esprima: 4.0.1 2254 | dev: true 2255 | 2256 | /js-yaml/3.14.1: 2257 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 2258 | hasBin: true 2259 | dependencies: 2260 | argparse: 1.0.10 2261 | esprima: 4.0.1 2262 | dev: true 2263 | 2264 | /js2xmlparser/4.0.1: 2265 | resolution: {integrity: sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==} 2266 | dependencies: 2267 | xmlcreate: 2.0.3 2268 | dev: true 2269 | 2270 | /jsdoc/3.6.7: 2271 | resolution: {integrity: sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==} 2272 | engines: {node: '>=8.15.0'} 2273 | hasBin: true 2274 | dependencies: 2275 | '@babel/parser': 7.14.4 2276 | bluebird: 3.7.2 2277 | catharsis: 0.9.0 2278 | escape-string-regexp: 2.0.0 2279 | js2xmlparser: 4.0.1 2280 | klaw: 3.0.0 2281 | markdown-it: 10.0.0 2282 | markdown-it-anchor: 5.3.0_markdown-it@10.0.0 2283 | marked: 2.0.6 2284 | mkdirp: 1.0.4 2285 | requizzle: 0.2.3 2286 | strip-json-comments: 3.1.1 2287 | taffydb: 2.6.2 2288 | underscore: 1.13.1 2289 | dev: true 2290 | 2291 | /json-buffer/3.0.0: 2292 | resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} 2293 | dev: true 2294 | 2295 | /json-parse-even-better-errors/2.3.1: 2296 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 2297 | dev: true 2298 | 2299 | /json-schema-traverse/0.4.1: 2300 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2301 | dev: true 2302 | 2303 | /json-schema-traverse/1.0.0: 2304 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 2305 | dev: true 2306 | 2307 | /json-stable-stringify-without-jsonify/1.0.1: 2308 | resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} 2309 | dev: true 2310 | 2311 | /json-stringify-safe/5.0.1: 2312 | resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} 2313 | dev: true 2314 | optional: true 2315 | 2316 | /jsonfile/4.0.0: 2317 | resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} 2318 | optionalDependencies: 2319 | graceful-fs: 4.2.6 2320 | dev: true 2321 | 2322 | /keyv/3.1.0: 2323 | resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} 2324 | dependencies: 2325 | json-buffer: 3.0.0 2326 | dev: true 2327 | 2328 | /kind-of/3.2.2: 2329 | resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} 2330 | engines: {node: '>=0.10.0'} 2331 | dependencies: 2332 | is-buffer: 1.1.6 2333 | dev: true 2334 | 2335 | /kind-of/4.0.0: 2336 | resolution: {integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=} 2337 | engines: {node: '>=0.10.0'} 2338 | dependencies: 2339 | is-buffer: 1.1.6 2340 | dev: true 2341 | 2342 | /kind-of/5.1.0: 2343 | resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} 2344 | engines: {node: '>=0.10.0'} 2345 | dev: true 2346 | 2347 | /kind-of/6.0.3: 2348 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 2349 | engines: {node: '>=0.10.0'} 2350 | dev: true 2351 | 2352 | /klaw/3.0.0: 2353 | resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} 2354 | dependencies: 2355 | graceful-fs: 4.2.6 2356 | dev: true 2357 | 2358 | /levn/0.4.1: 2359 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2360 | engines: {node: '>= 0.8.0'} 2361 | dependencies: 2362 | prelude-ls: 1.2.1 2363 | type-check: 0.4.0 2364 | dev: true 2365 | 2366 | /lines-and-columns/1.1.6: 2367 | resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} 2368 | dev: true 2369 | 2370 | /linkify-it/2.2.0: 2371 | resolution: {integrity: sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==} 2372 | dependencies: 2373 | uc.micro: 1.0.6 2374 | dev: true 2375 | 2376 | /locate-path/3.0.0: 2377 | resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} 2378 | engines: {node: '>=6'} 2379 | dependencies: 2380 | p-locate: 3.0.0 2381 | path-exists: 3.0.0 2382 | dev: true 2383 | 2384 | /locate-path/5.0.0: 2385 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2386 | engines: {node: '>=8'} 2387 | dependencies: 2388 | p-locate: 4.1.0 2389 | dev: true 2390 | 2391 | /lodash.clonedeep/4.5.0: 2392 | resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} 2393 | dev: true 2394 | 2395 | /lodash.get/4.4.2: 2396 | resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} 2397 | dev: true 2398 | 2399 | /lodash.isequal/4.5.0: 2400 | resolution: {integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA=} 2401 | dev: true 2402 | 2403 | /lodash.merge/4.6.2: 2404 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2405 | dev: true 2406 | 2407 | /lodash.truncate/4.4.2: 2408 | resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} 2409 | dev: true 2410 | 2411 | /lodash/4.17.21: 2412 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2413 | dev: true 2414 | 2415 | /log-symbols/2.2.0: 2416 | resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} 2417 | engines: {node: '>=4'} 2418 | dependencies: 2419 | chalk: 2.4.2 2420 | dev: true 2421 | 2422 | /lowercase-keys/1.0.1: 2423 | resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} 2424 | engines: {node: '>=0.10.0'} 2425 | dev: true 2426 | 2427 | /lowercase-keys/2.0.0: 2428 | resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} 2429 | engines: {node: '>=8'} 2430 | dev: true 2431 | 2432 | /lru-cache/6.0.0: 2433 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2434 | engines: {node: '>=10'} 2435 | dependencies: 2436 | yallist: 4.0.0 2437 | dev: true 2438 | 2439 | /magic-string/0.25.7: 2440 | resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} 2441 | dependencies: 2442 | sourcemap-codec: 1.4.8 2443 | dev: true 2444 | 2445 | /map-cache/0.2.2: 2446 | resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=} 2447 | engines: {node: '>=0.10.0'} 2448 | dev: true 2449 | 2450 | /map-visit/1.0.0: 2451 | resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=} 2452 | engines: {node: '>=0.10.0'} 2453 | dependencies: 2454 | object-visit: 1.0.1 2455 | dev: true 2456 | 2457 | /markdown-it-anchor/5.3.0_markdown-it@10.0.0: 2458 | resolution: {integrity: sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==} 2459 | peerDependencies: 2460 | markdown-it: '*' 2461 | dependencies: 2462 | markdown-it: 10.0.0 2463 | dev: true 2464 | 2465 | /markdown-it/10.0.0: 2466 | resolution: {integrity: sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==} 2467 | hasBin: true 2468 | dependencies: 2469 | argparse: 1.0.10 2470 | entities: 2.0.3 2471 | linkify-it: 2.2.0 2472 | mdurl: 1.0.1 2473 | uc.micro: 1.0.6 2474 | dev: true 2475 | 2476 | /marked/2.0.6: 2477 | resolution: {integrity: sha512-S2mYj0FzTQa0dLddssqwRVW4EOJOVJ355Xm2Vcbm+LU7GQRGWvwbO5K87OaPSOux2AwTSgtPPaXmc8sDPrhn2A==} 2478 | engines: {node: '>= 8.16.2'} 2479 | hasBin: true 2480 | dev: true 2481 | 2482 | /matcher/3.0.0: 2483 | resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} 2484 | engines: {node: '>=10'} 2485 | dependencies: 2486 | escape-string-regexp: 4.0.0 2487 | dev: true 2488 | optional: true 2489 | 2490 | /mdurl/1.0.1: 2491 | resolution: {integrity: sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=} 2492 | dev: true 2493 | 2494 | /merge-stream/2.0.0: 2495 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2496 | dev: true 2497 | 2498 | /merge2/1.4.1: 2499 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2500 | engines: {node: '>= 8'} 2501 | dev: true 2502 | 2503 | /micromatch/3.1.10: 2504 | resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} 2505 | engines: {node: '>=0.10.0'} 2506 | dependencies: 2507 | arr-diff: 4.0.0 2508 | array-unique: 0.3.2 2509 | braces: 2.3.2 2510 | define-property: 2.0.2 2511 | extend-shallow: 3.0.2 2512 | extglob: 2.0.4 2513 | fragment-cache: 0.2.1 2514 | kind-of: 6.0.3 2515 | nanomatch: 1.2.13 2516 | object.pick: 1.3.0 2517 | regex-not: 1.0.2 2518 | snapdragon: 0.8.2 2519 | to-regex: 3.0.2 2520 | dev: true 2521 | 2522 | /micromatch/4.0.4: 2523 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 2524 | engines: {node: '>=8.6'} 2525 | dependencies: 2526 | braces: 3.0.2 2527 | picomatch: 2.3.0 2528 | dev: true 2529 | 2530 | /mimic-response/1.0.1: 2531 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 2532 | engines: {node: '>=4'} 2533 | dev: true 2534 | 2535 | /minimatch/3.0.4: 2536 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 2537 | dependencies: 2538 | brace-expansion: 1.1.11 2539 | dev: true 2540 | 2541 | /minimist/1.2.5: 2542 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} 2543 | dev: true 2544 | 2545 | /minipass/3.1.3: 2546 | resolution: {integrity: sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==} 2547 | engines: {node: '>=8'} 2548 | dependencies: 2549 | yallist: 4.0.0 2550 | dev: true 2551 | 2552 | /minizlib/2.1.2: 2553 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 2554 | engines: {node: '>= 8'} 2555 | dependencies: 2556 | minipass: 3.1.3 2557 | yallist: 4.0.0 2558 | dev: true 2559 | 2560 | /mixin-deep/1.3.2: 2561 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} 2562 | engines: {node: '>=0.10.0'} 2563 | dependencies: 2564 | for-in: 1.0.2 2565 | is-extendable: 1.0.1 2566 | dev: true 2567 | 2568 | /mkdirp/0.5.4: 2569 | resolution: {integrity: sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==} 2570 | deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) 2571 | hasBin: true 2572 | dependencies: 2573 | minimist: 1.2.5 2574 | dev: true 2575 | 2576 | /mkdirp/0.5.5: 2577 | resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} 2578 | hasBin: true 2579 | dependencies: 2580 | minimist: 1.2.5 2581 | dev: true 2582 | 2583 | /mkdirp/1.0.4: 2584 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2585 | engines: {node: '>=10'} 2586 | hasBin: true 2587 | dev: true 2588 | 2589 | /mocha/6.2.3: 2590 | resolution: {integrity: sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==} 2591 | engines: {node: '>= 6.0.0'} 2592 | hasBin: true 2593 | dependencies: 2594 | ansi-colors: 3.2.3 2595 | browser-stdout: 1.3.1 2596 | debug: 3.2.6 2597 | diff: 3.5.0 2598 | escape-string-regexp: 1.0.5 2599 | find-up: 3.0.0 2600 | glob: 7.1.3 2601 | growl: 1.10.5 2602 | he: 1.2.0 2603 | js-yaml: 3.13.1 2604 | log-symbols: 2.2.0 2605 | minimatch: 3.0.4 2606 | mkdirp: 0.5.4 2607 | ms: 2.1.1 2608 | node-environment-flags: 1.0.5 2609 | object.assign: 4.1.0 2610 | strip-json-comments: 2.0.1 2611 | supports-color: 6.0.0 2612 | which: 1.3.1 2613 | wide-align: 1.1.3 2614 | yargs: 13.3.2 2615 | yargs-parser: 13.1.2 2616 | yargs-unparser: 1.6.0 2617 | dev: true 2618 | 2619 | /ms/2.0.0: 2620 | resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} 2621 | dev: true 2622 | 2623 | /ms/2.1.1: 2624 | resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} 2625 | dev: true 2626 | 2627 | /ms/2.1.2: 2628 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2629 | dev: true 2630 | 2631 | /mz/2.7.0: 2632 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2633 | dependencies: 2634 | any-promise: 1.3.0 2635 | object-assign: 4.1.1 2636 | thenify-all: 1.6.0 2637 | dev: true 2638 | 2639 | /nanomatch/1.2.13: 2640 | resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} 2641 | engines: {node: '>=0.10.0'} 2642 | dependencies: 2643 | arr-diff: 4.0.0 2644 | array-unique: 0.3.2 2645 | define-property: 2.0.2 2646 | extend-shallow: 3.0.2 2647 | fragment-cache: 0.2.1 2648 | is-windows: 1.0.2 2649 | kind-of: 6.0.3 2650 | object.pick: 1.3.0 2651 | regex-not: 1.0.2 2652 | snapdragon: 0.8.2 2653 | to-regex: 3.0.2 2654 | dev: true 2655 | 2656 | /natural-compare/1.4.0: 2657 | resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} 2658 | dev: true 2659 | 2660 | /nice-try/1.0.5: 2661 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 2662 | dev: true 2663 | 2664 | /node-environment-flags/1.0.5: 2665 | resolution: {integrity: sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==} 2666 | dependencies: 2667 | object.getownpropertydescriptors: 2.1.2 2668 | semver: 5.7.1 2669 | dev: true 2670 | 2671 | /node-modules-regexp/1.0.0: 2672 | resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} 2673 | engines: {node: '>=0.10.0'} 2674 | dev: true 2675 | 2676 | /normalize-package-data/2.5.0: 2677 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2678 | dependencies: 2679 | hosted-git-info: 2.8.9 2680 | resolve: 1.20.0 2681 | semver: 5.7.1 2682 | validate-npm-package-license: 3.0.4 2683 | dev: true 2684 | 2685 | /normalize-url/4.5.1: 2686 | resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} 2687 | engines: {node: '>=8'} 2688 | dev: true 2689 | 2690 | /npm-conf/1.1.3: 2691 | resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} 2692 | engines: {node: '>=4'} 2693 | dependencies: 2694 | config-chain: 1.1.12 2695 | pify: 3.0.0 2696 | dev: true 2697 | optional: true 2698 | 2699 | /object-assign/4.1.1: 2700 | resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} 2701 | engines: {node: '>=0.10.0'} 2702 | dev: true 2703 | 2704 | /object-copy/0.1.0: 2705 | resolution: {integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw=} 2706 | engines: {node: '>=0.10.0'} 2707 | dependencies: 2708 | copy-descriptor: 0.1.1 2709 | define-property: 0.2.5 2710 | kind-of: 3.2.2 2711 | dev: true 2712 | 2713 | /object-inspect/1.10.3: 2714 | resolution: {integrity: sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==} 2715 | dev: true 2716 | 2717 | /object-keys/1.1.1: 2718 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2719 | engines: {node: '>= 0.4'} 2720 | dev: true 2721 | 2722 | /object-visit/1.0.1: 2723 | resolution: {integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=} 2724 | engines: {node: '>=0.10.0'} 2725 | dependencies: 2726 | isobject: 3.0.1 2727 | dev: true 2728 | 2729 | /object.assign/4.1.0: 2730 | resolution: {integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==} 2731 | engines: {node: '>= 0.4'} 2732 | dependencies: 2733 | define-properties: 1.1.3 2734 | function-bind: 1.1.1 2735 | has-symbols: 1.0.2 2736 | object-keys: 1.1.1 2737 | dev: true 2738 | 2739 | /object.assign/4.1.2: 2740 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} 2741 | engines: {node: '>= 0.4'} 2742 | dependencies: 2743 | call-bind: 1.0.2 2744 | define-properties: 1.1.3 2745 | has-symbols: 1.0.2 2746 | object-keys: 1.1.1 2747 | dev: true 2748 | 2749 | /object.getownpropertydescriptors/2.1.2: 2750 | resolution: {integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==} 2751 | engines: {node: '>= 0.8'} 2752 | dependencies: 2753 | call-bind: 1.0.2 2754 | define-properties: 1.1.3 2755 | es-abstract: 1.18.3 2756 | dev: true 2757 | 2758 | /object.pick/1.3.0: 2759 | resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=} 2760 | engines: {node: '>=0.10.0'} 2761 | dependencies: 2762 | isobject: 3.0.1 2763 | dev: true 2764 | 2765 | /once/1.4.0: 2766 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 2767 | dependencies: 2768 | wrappy: 1.0.2 2769 | dev: true 2770 | 2771 | /optimist/0.3.7: 2772 | resolution: {integrity: sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=} 2773 | dependencies: 2774 | wordwrap: 0.0.3 2775 | dev: true 2776 | 2777 | /optionator/0.9.1: 2778 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 2779 | engines: {node: '>= 0.8.0'} 2780 | dependencies: 2781 | deep-is: 0.1.3 2782 | fast-levenshtein: 2.0.6 2783 | levn: 0.4.1 2784 | prelude-ls: 1.2.1 2785 | type-check: 0.4.0 2786 | word-wrap: 1.2.3 2787 | dev: true 2788 | 2789 | /p-cancelable/1.1.0: 2790 | resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} 2791 | engines: {node: '>=6'} 2792 | dev: true 2793 | 2794 | /p-limit/2.3.0: 2795 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2796 | engines: {node: '>=6'} 2797 | dependencies: 2798 | p-try: 2.2.0 2799 | dev: true 2800 | 2801 | /p-locate/3.0.0: 2802 | resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} 2803 | engines: {node: '>=6'} 2804 | dependencies: 2805 | p-limit: 2.3.0 2806 | dev: true 2807 | 2808 | /p-locate/4.1.0: 2809 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2810 | engines: {node: '>=8'} 2811 | dependencies: 2812 | p-limit: 2.3.0 2813 | dev: true 2814 | 2815 | /p-try/2.2.0: 2816 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2817 | engines: {node: '>=6'} 2818 | dev: true 2819 | 2820 | /parallelshell/2.0.0: 2821 | resolution: {integrity: sha1-yUr11jSFJqJtqQIPrrX8ckqAYAw=} 2822 | hasBin: true 2823 | dev: true 2824 | 2825 | /parent-module/1.0.1: 2826 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2827 | engines: {node: '>=6'} 2828 | dependencies: 2829 | callsites: 3.1.0 2830 | dev: true 2831 | 2832 | /parse-json/5.2.0: 2833 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2834 | engines: {node: '>=8'} 2835 | dependencies: 2836 | '@babel/code-frame': 7.12.13 2837 | error-ex: 1.3.2 2838 | json-parse-even-better-errors: 2.3.1 2839 | lines-and-columns: 1.1.6 2840 | dev: true 2841 | 2842 | /pascalcase/0.1.1: 2843 | resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=} 2844 | engines: {node: '>=0.10.0'} 2845 | dev: true 2846 | 2847 | /path-dirname/1.0.2: 2848 | resolution: {integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=} 2849 | dev: true 2850 | 2851 | /path-exists/3.0.0: 2852 | resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} 2853 | engines: {node: '>=4'} 2854 | dev: true 2855 | 2856 | /path-exists/4.0.0: 2857 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2858 | engines: {node: '>=8'} 2859 | dev: true 2860 | 2861 | /path-is-absolute/1.0.1: 2862 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 2863 | engines: {node: '>=0.10.0'} 2864 | dev: true 2865 | 2866 | /path-is-inside/1.0.2: 2867 | resolution: {integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=} 2868 | dev: true 2869 | 2870 | /path-key/2.0.1: 2871 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} 2872 | engines: {node: '>=4'} 2873 | dev: true 2874 | 2875 | /path-key/3.1.1: 2876 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2877 | engines: {node: '>=8'} 2878 | dev: true 2879 | 2880 | /path-parse/1.0.7: 2881 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2882 | dev: true 2883 | 2884 | /path-type/3.0.0: 2885 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 2886 | engines: {node: '>=4'} 2887 | dependencies: 2888 | pify: 3.0.0 2889 | dev: true 2890 | 2891 | /path-type/4.0.0: 2892 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2893 | engines: {node: '>=8'} 2894 | dev: true 2895 | 2896 | /pathval/1.1.1: 2897 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2898 | dev: true 2899 | 2900 | /pend/1.2.0: 2901 | resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} 2902 | dev: true 2903 | 2904 | /picomatch/2.3.0: 2905 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} 2906 | engines: {node: '>=8.6'} 2907 | dev: true 2908 | 2909 | /pify/2.3.0: 2910 | resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} 2911 | engines: {node: '>=0.10.0'} 2912 | dev: true 2913 | 2914 | /pify/3.0.0: 2915 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} 2916 | engines: {node: '>=4'} 2917 | dev: true 2918 | 2919 | /pify/4.0.1: 2920 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 2921 | engines: {node: '>=6'} 2922 | dev: true 2923 | 2924 | /pinkie-promise/2.0.1: 2925 | resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} 2926 | engines: {node: '>=0.10.0'} 2927 | dependencies: 2928 | pinkie: 2.0.4 2929 | dev: true 2930 | 2931 | /pinkie/2.0.4: 2932 | resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} 2933 | engines: {node: '>=0.10.0'} 2934 | dev: true 2935 | 2936 | /pirates/4.0.1: 2937 | resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} 2938 | engines: {node: '>= 6'} 2939 | dependencies: 2940 | node-modules-regexp: 1.0.0 2941 | dev: true 2942 | 2943 | /pkg-dir/4.2.0: 2944 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2945 | engines: {node: '>=8'} 2946 | dependencies: 2947 | find-up: 4.1.0 2948 | dev: true 2949 | 2950 | /posix-character-classes/0.1.1: 2951 | resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=} 2952 | engines: {node: '>=0.10.0'} 2953 | dev: true 2954 | 2955 | /prelude-ls/1.2.1: 2956 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2957 | engines: {node: '>= 0.8.0'} 2958 | dev: true 2959 | 2960 | /prepend-http/2.0.0: 2961 | resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} 2962 | engines: {node: '>=4'} 2963 | dev: true 2964 | 2965 | /process-nextick-args/2.0.1: 2966 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 2967 | dev: true 2968 | 2969 | /progress/2.0.3: 2970 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 2971 | engines: {node: '>=0.4.0'} 2972 | dev: true 2973 | 2974 | /proto-list/1.2.4: 2975 | resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} 2976 | dev: true 2977 | optional: true 2978 | 2979 | /pump/3.0.0: 2980 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 2981 | dependencies: 2982 | end-of-stream: 1.4.4 2983 | once: 1.4.0 2984 | dev: true 2985 | 2986 | /punycode/1.3.2: 2987 | resolution: {integrity: sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=} 2988 | dev: true 2989 | 2990 | /punycode/2.1.1: 2991 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 2992 | engines: {node: '>=6'} 2993 | dev: true 2994 | 2995 | /querystring/0.2.0: 2996 | resolution: {integrity: sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=} 2997 | engines: {node: '>=0.4.x'} 2998 | dev: true 2999 | 3000 | /queue-microtask/1.2.3: 3001 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3002 | dev: true 3003 | 3004 | /randombytes/2.1.0: 3005 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 3006 | dependencies: 3007 | safe-buffer: 5.2.1 3008 | dev: true 3009 | 3010 | /read-pkg-up/6.0.0: 3011 | resolution: {integrity: sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==} 3012 | engines: {node: '>=8'} 3013 | dependencies: 3014 | find-up: 4.1.0 3015 | read-pkg: 5.2.0 3016 | type-fest: 0.5.2 3017 | dev: true 3018 | 3019 | /read-pkg/5.2.0: 3020 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 3021 | engines: {node: '>=8'} 3022 | dependencies: 3023 | '@types/normalize-package-data': 2.4.0 3024 | normalize-package-data: 2.5.0 3025 | parse-json: 5.2.0 3026 | type-fest: 0.6.0 3027 | dev: true 3028 | 3029 | /readable-stream/2.3.7: 3030 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} 3031 | dependencies: 3032 | core-util-is: 1.0.2 3033 | inherits: 2.0.4 3034 | isarray: 1.0.0 3035 | process-nextick-args: 2.0.1 3036 | safe-buffer: 5.1.2 3037 | string_decoder: 1.1.1 3038 | util-deprecate: 1.0.2 3039 | dev: true 3040 | 3041 | /regex-not/1.0.2: 3042 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} 3043 | engines: {node: '>=0.10.0'} 3044 | dependencies: 3045 | extend-shallow: 3.0.2 3046 | safe-regex: 1.1.0 3047 | dev: true 3048 | 3049 | /regexpp/3.1.0: 3050 | resolution: {integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==} 3051 | engines: {node: '>=8'} 3052 | dev: true 3053 | 3054 | /relative-deps/1.0.7: 3055 | resolution: {integrity: sha512-MYgnQJtA0O9ODDTmvuXMZqcCBLygBsuF5Wg6JSOyX9beWEVlCBIVOuF5vHYD9F7QM7M+3dA9XU90xMhxF0YJGA==} 3056 | hasBin: true 3057 | dependencies: 3058 | checksum: 0.1.1 3059 | globby: 9.2.0 3060 | lodash: 4.17.21 3061 | read-pkg-up: 6.0.0 3062 | rimraf: 2.7.1 3063 | tar: 6.1.0 3064 | yargs: 15.4.1 3065 | yarn-or-npm: 3.0.1 3066 | dev: true 3067 | 3068 | /repeat-element/1.1.4: 3069 | resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} 3070 | engines: {node: '>=0.10.0'} 3071 | dev: true 3072 | 3073 | /repeat-string/1.6.1: 3074 | resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} 3075 | engines: {node: '>=0.10'} 3076 | dev: true 3077 | 3078 | /require-directory/2.1.1: 3079 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} 3080 | engines: {node: '>=0.10.0'} 3081 | dev: true 3082 | 3083 | /require-from-string/2.0.2: 3084 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 3085 | engines: {node: '>=0.10.0'} 3086 | dev: true 3087 | 3088 | /require-main-filename/2.0.0: 3089 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 3090 | dev: true 3091 | 3092 | /requizzle/0.2.3: 3093 | resolution: {integrity: sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==} 3094 | dependencies: 3095 | lodash: 4.17.21 3096 | dev: true 3097 | 3098 | /resolve-from/4.0.0: 3099 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3100 | engines: {node: '>=4'} 3101 | dev: true 3102 | 3103 | /resolve-url/0.2.1: 3104 | resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=} 3105 | deprecated: https://github.com/lydell/resolve-url#deprecated 3106 | dev: true 3107 | 3108 | /resolve/1.17.0: 3109 | resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} 3110 | dependencies: 3111 | path-parse: 1.0.7 3112 | dev: true 3113 | 3114 | /resolve/1.19.0: 3115 | resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} 3116 | dependencies: 3117 | is-core-module: 2.4.0 3118 | path-parse: 1.0.7 3119 | dev: true 3120 | 3121 | /resolve/1.20.0: 3122 | resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} 3123 | dependencies: 3124 | is-core-module: 2.4.0 3125 | path-parse: 1.0.7 3126 | dev: true 3127 | 3128 | /responselike/1.0.2: 3129 | resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} 3130 | dependencies: 3131 | lowercase-keys: 1.0.1 3132 | dev: true 3133 | 3134 | /ret/0.1.15: 3135 | resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} 3136 | engines: {node: '>=0.12'} 3137 | dev: true 3138 | 3139 | /reusify/1.0.4: 3140 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3141 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3142 | dev: true 3143 | 3144 | /rimraf/2.7.1: 3145 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 3146 | hasBin: true 3147 | dependencies: 3148 | glob: 7.1.7 3149 | dev: true 3150 | 3151 | /rimraf/3.0.2: 3152 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3153 | hasBin: true 3154 | dependencies: 3155 | glob: 7.1.7 3156 | dev: true 3157 | 3158 | /roarr/2.15.4: 3159 | resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} 3160 | engines: {node: '>=8.0'} 3161 | dependencies: 3162 | boolean: 3.1.0 3163 | detect-node: 2.1.0 3164 | globalthis: 1.0.2 3165 | json-stringify-safe: 5.0.1 3166 | semver-compare: 1.0.0 3167 | sprintf-js: 1.1.2 3168 | dev: true 3169 | optional: true 3170 | 3171 | /rollup-plugin-node-resolve/5.2.0_rollup@2.50.5: 3172 | resolution: {integrity: sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==} 3173 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve. 3174 | peerDependencies: 3175 | rollup: '>=1.11.0' 3176 | dependencies: 3177 | '@types/resolve': 0.0.8 3178 | builtin-modules: 3.2.0 3179 | is-module: 1.0.0 3180 | resolve: 1.20.0 3181 | rollup: 2.50.5 3182 | rollup-pluginutils: 2.8.2 3183 | dev: true 3184 | 3185 | /rollup-plugin-replace/2.2.0: 3186 | resolution: {integrity: sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==} 3187 | deprecated: This module has moved and is now available at @rollup/plugin-replace. Please update your dependencies. This version is no longer maintained. 3188 | dependencies: 3189 | magic-string: 0.25.7 3190 | rollup-pluginutils: 2.8.2 3191 | dev: true 3192 | 3193 | /rollup-plugin-sourcemaps/0.6.3_rollup@2.50.5: 3194 | resolution: {integrity: sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==} 3195 | engines: {node: '>=10.0.0'} 3196 | peerDependencies: 3197 | '@types/node': '>=10.0.0' 3198 | rollup: '>=0.31.2' 3199 | peerDependenciesMeta: 3200 | '@types/node': 3201 | optional: true 3202 | dependencies: 3203 | '@rollup/pluginutils': 3.1.0_rollup@2.50.5 3204 | rollup: 2.50.5 3205 | source-map-resolve: 0.6.0 3206 | dev: true 3207 | 3208 | /rollup-plugin-string/3.0.0: 3209 | resolution: {integrity: sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw==} 3210 | dependencies: 3211 | rollup-pluginutils: 2.8.2 3212 | dev: true 3213 | 3214 | /rollup-plugin-terser/7.0.2_rollup@2.50.5: 3215 | resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} 3216 | peerDependencies: 3217 | rollup: ^2.0.0 3218 | dependencies: 3219 | '@babel/code-frame': 7.12.13 3220 | jest-worker: 26.6.2 3221 | rollup: 2.50.5 3222 | serialize-javascript: 4.0.0 3223 | terser: 5.7.0 3224 | dev: true 3225 | 3226 | /rollup-pluginutils/2.8.2: 3227 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 3228 | dependencies: 3229 | estree-walker: 0.6.1 3230 | dev: true 3231 | 3232 | /rollup/2.50.5: 3233 | resolution: {integrity: sha512-Ztz4NurU2LbS3Jn5rlhnYv35z6pkjBUmYKr94fOBIKINKRO6kug9NTFHArT7jqwMP2kqEZ39jJuEtkk91NBltQ==} 3234 | engines: {node: '>=10.0.0'} 3235 | hasBin: true 3236 | optionalDependencies: 3237 | fsevents: 2.3.2 3238 | dev: true 3239 | 3240 | /run-parallel/1.2.0: 3241 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3242 | dependencies: 3243 | queue-microtask: 1.2.3 3244 | dev: true 3245 | 3246 | /safe-buffer/5.1.2: 3247 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 3248 | dev: true 3249 | 3250 | /safe-buffer/5.2.1: 3251 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3252 | dev: true 3253 | 3254 | /safe-regex/1.1.0: 3255 | resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=} 3256 | dependencies: 3257 | ret: 0.1.15 3258 | dev: true 3259 | 3260 | /semver-compare/1.0.0: 3261 | resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} 3262 | dev: true 3263 | optional: true 3264 | 3265 | /semver/5.7.1: 3266 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 3267 | hasBin: true 3268 | dev: true 3269 | 3270 | /semver/6.3.0: 3271 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 3272 | hasBin: true 3273 | dev: true 3274 | 3275 | /semver/7.3.5: 3276 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 3277 | engines: {node: '>=10'} 3278 | hasBin: true 3279 | dependencies: 3280 | lru-cache: 6.0.0 3281 | dev: true 3282 | 3283 | /serialize-error/7.0.1: 3284 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} 3285 | engines: {node: '>=10'} 3286 | dependencies: 3287 | type-fest: 0.13.1 3288 | dev: true 3289 | optional: true 3290 | 3291 | /serialize-javascript/4.0.0: 3292 | resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} 3293 | dependencies: 3294 | randombytes: 2.1.0 3295 | dev: true 3296 | 3297 | /set-blocking/2.0.0: 3298 | resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} 3299 | dev: true 3300 | 3301 | /set-value/2.0.1: 3302 | resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} 3303 | engines: {node: '>=0.10.0'} 3304 | dependencies: 3305 | extend-shallow: 2.0.1 3306 | is-extendable: 0.1.1 3307 | is-plain-object: 2.0.4 3308 | split-string: 3.1.0 3309 | dev: true 3310 | 3311 | /shebang-command/1.2.0: 3312 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} 3313 | engines: {node: '>=0.10.0'} 3314 | dependencies: 3315 | shebang-regex: 1.0.0 3316 | dev: true 3317 | 3318 | /shebang-command/2.0.0: 3319 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3320 | engines: {node: '>=8'} 3321 | dependencies: 3322 | shebang-regex: 3.0.0 3323 | dev: true 3324 | 3325 | /shebang-regex/1.0.0: 3326 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} 3327 | engines: {node: '>=0.10.0'} 3328 | dev: true 3329 | 3330 | /shebang-regex/3.0.0: 3331 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3332 | engines: {node: '>=8'} 3333 | dev: true 3334 | 3335 | /slash/2.0.0: 3336 | resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} 3337 | engines: {node: '>=6'} 3338 | dev: true 3339 | 3340 | /slash/3.0.0: 3341 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3342 | engines: {node: '>=8'} 3343 | dev: true 3344 | 3345 | /slice-ansi/4.0.0: 3346 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 3347 | engines: {node: '>=10'} 3348 | dependencies: 3349 | ansi-styles: 4.3.0 3350 | astral-regex: 2.0.0 3351 | is-fullwidth-code-point: 3.0.0 3352 | dev: true 3353 | 3354 | /snapdragon-node/2.1.1: 3355 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} 3356 | engines: {node: '>=0.10.0'} 3357 | dependencies: 3358 | define-property: 1.0.0 3359 | isobject: 3.0.1 3360 | snapdragon-util: 3.0.1 3361 | dev: true 3362 | 3363 | /snapdragon-util/3.0.1: 3364 | resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} 3365 | engines: {node: '>=0.10.0'} 3366 | dependencies: 3367 | kind-of: 3.2.2 3368 | dev: true 3369 | 3370 | /snapdragon/0.8.2: 3371 | resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} 3372 | engines: {node: '>=0.10.0'} 3373 | dependencies: 3374 | base: 0.11.2 3375 | debug: 2.6.9 3376 | define-property: 0.2.5 3377 | extend-shallow: 2.0.1 3378 | map-cache: 0.2.2 3379 | source-map: 0.5.7 3380 | source-map-resolve: 0.5.3 3381 | use: 3.1.1 3382 | dev: true 3383 | 3384 | /source-map-resolve/0.5.3: 3385 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} 3386 | dependencies: 3387 | atob: 2.1.2 3388 | decode-uri-component: 0.2.0 3389 | resolve-url: 0.2.1 3390 | source-map-url: 0.4.1 3391 | urix: 0.1.0 3392 | dev: true 3393 | 3394 | /source-map-resolve/0.6.0: 3395 | resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} 3396 | dependencies: 3397 | atob: 2.1.2 3398 | decode-uri-component: 0.2.0 3399 | dev: true 3400 | 3401 | /source-map-support/0.5.19: 3402 | resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} 3403 | dependencies: 3404 | buffer-from: 1.1.1 3405 | source-map: 0.6.1 3406 | dev: true 3407 | 3408 | /source-map-url/0.4.1: 3409 | resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} 3410 | dev: true 3411 | 3412 | /source-map/0.5.7: 3413 | resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} 3414 | engines: {node: '>=0.10.0'} 3415 | dev: true 3416 | 3417 | /source-map/0.6.1: 3418 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3419 | engines: {node: '>=0.10.0'} 3420 | dev: true 3421 | 3422 | /source-map/0.7.3: 3423 | resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} 3424 | engines: {node: '>= 8'} 3425 | dev: true 3426 | 3427 | /sourcemap-codec/1.4.8: 3428 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 3429 | dev: true 3430 | 3431 | /spdx-correct/3.1.1: 3432 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 3433 | dependencies: 3434 | spdx-expression-parse: 3.0.1 3435 | spdx-license-ids: 3.0.9 3436 | dev: true 3437 | 3438 | /spdx-exceptions/2.3.0: 3439 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 3440 | dev: true 3441 | 3442 | /spdx-expression-parse/3.0.1: 3443 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 3444 | dependencies: 3445 | spdx-exceptions: 2.3.0 3446 | spdx-license-ids: 3.0.9 3447 | dev: true 3448 | 3449 | /spdx-license-ids/3.0.9: 3450 | resolution: {integrity: sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==} 3451 | dev: true 3452 | 3453 | /split-string/3.1.0: 3454 | resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} 3455 | engines: {node: '>=0.10.0'} 3456 | dependencies: 3457 | extend-shallow: 3.0.2 3458 | dev: true 3459 | 3460 | /sprintf-js/1.0.3: 3461 | resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} 3462 | dev: true 3463 | 3464 | /sprintf-js/1.1.2: 3465 | resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} 3466 | dev: true 3467 | optional: true 3468 | 3469 | /static-extend/0.1.2: 3470 | resolution: {integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=} 3471 | engines: {node: '>=0.10.0'} 3472 | dependencies: 3473 | define-property: 0.2.5 3474 | object-copy: 0.1.0 3475 | dev: true 3476 | 3477 | /string-argv/0.3.1: 3478 | resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} 3479 | engines: {node: '>=0.6.19'} 3480 | dev: true 3481 | 3482 | /string-width/2.1.1: 3483 | resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} 3484 | engines: {node: '>=4'} 3485 | dependencies: 3486 | is-fullwidth-code-point: 2.0.0 3487 | strip-ansi: 4.0.0 3488 | dev: true 3489 | 3490 | /string-width/3.1.0: 3491 | resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} 3492 | engines: {node: '>=6'} 3493 | dependencies: 3494 | emoji-regex: 7.0.3 3495 | is-fullwidth-code-point: 2.0.0 3496 | strip-ansi: 5.2.0 3497 | dev: true 3498 | 3499 | /string-width/4.2.2: 3500 | resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} 3501 | engines: {node: '>=8'} 3502 | dependencies: 3503 | emoji-regex: 8.0.0 3504 | is-fullwidth-code-point: 3.0.0 3505 | strip-ansi: 6.0.0 3506 | dev: true 3507 | 3508 | /string.prototype.trimend/1.0.4: 3509 | resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} 3510 | dependencies: 3511 | call-bind: 1.0.2 3512 | define-properties: 1.1.3 3513 | dev: true 3514 | 3515 | /string.prototype.trimstart/1.0.4: 3516 | resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} 3517 | dependencies: 3518 | call-bind: 1.0.2 3519 | define-properties: 1.1.3 3520 | dev: true 3521 | 3522 | /string_decoder/1.1.1: 3523 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 3524 | dependencies: 3525 | safe-buffer: 5.1.2 3526 | dev: true 3527 | 3528 | /strip-ansi/4.0.0: 3529 | resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} 3530 | engines: {node: '>=4'} 3531 | dependencies: 3532 | ansi-regex: 3.0.0 3533 | dev: true 3534 | 3535 | /strip-ansi/5.2.0: 3536 | resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} 3537 | engines: {node: '>=6'} 3538 | dependencies: 3539 | ansi-regex: 4.1.0 3540 | dev: true 3541 | 3542 | /strip-ansi/6.0.0: 3543 | resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} 3544 | engines: {node: '>=8'} 3545 | dependencies: 3546 | ansi-regex: 5.0.0 3547 | dev: true 3548 | 3549 | /strip-json-comments/2.0.1: 3550 | resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} 3551 | engines: {node: '>=0.10.0'} 3552 | dev: true 3553 | 3554 | /strip-json-comments/3.1.1: 3555 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3556 | engines: {node: '>=8'} 3557 | dev: true 3558 | 3559 | /sucrase/3.18.1: 3560 | resolution: {integrity: sha512-TRyO38wwOPhLLlM8QLOG3TgMj0FKk+arlTrS9pRAanF8cAcHvgRPKIYWGO25mPSp/Rj87zMMTjFfkqIZGI6ZdA==} 3561 | engines: {node: '>=8'} 3562 | hasBin: true 3563 | dependencies: 3564 | commander: 4.1.1 3565 | glob: 7.1.6 3566 | lines-and-columns: 1.1.6 3567 | mz: 2.7.0 3568 | pirates: 4.0.1 3569 | ts-interface-checker: 0.1.13 3570 | dev: true 3571 | 3572 | /sumchecker/3.0.1: 3573 | resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} 3574 | engines: {node: '>= 8.0'} 3575 | dependencies: 3576 | debug: 4.3.1 3577 | transitivePeerDependencies: 3578 | - supports-color 3579 | dev: true 3580 | 3581 | /supports-color/5.5.0: 3582 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3583 | engines: {node: '>=4'} 3584 | dependencies: 3585 | has-flag: 3.0.0 3586 | dev: true 3587 | 3588 | /supports-color/6.0.0: 3589 | resolution: {integrity: sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==} 3590 | engines: {node: '>=6'} 3591 | dependencies: 3592 | has-flag: 3.0.0 3593 | dev: true 3594 | 3595 | /supports-color/7.2.0: 3596 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3597 | engines: {node: '>=8'} 3598 | dependencies: 3599 | has-flag: 4.0.0 3600 | dev: true 3601 | 3602 | /table/6.7.1: 3603 | resolution: {integrity: sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==} 3604 | engines: {node: '>=10.0.0'} 3605 | dependencies: 3606 | ajv: 8.5.0 3607 | lodash.clonedeep: 4.5.0 3608 | lodash.truncate: 4.4.2 3609 | slice-ansi: 4.0.0 3610 | string-width: 4.2.2 3611 | strip-ansi: 6.0.0 3612 | dev: true 3613 | 3614 | /taffydb/2.6.2: 3615 | resolution: {integrity: sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=} 3616 | dev: true 3617 | 3618 | /tar/6.1.0: 3619 | resolution: {integrity: sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==} 3620 | engines: {node: '>= 10'} 3621 | dependencies: 3622 | chownr: 2.0.0 3623 | fs-minipass: 2.1.0 3624 | minipass: 3.1.3 3625 | minizlib: 2.1.2 3626 | mkdirp: 1.0.4 3627 | yallist: 4.0.0 3628 | dev: true 3629 | 3630 | /terser/5.7.0: 3631 | resolution: {integrity: sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==} 3632 | engines: {node: '>=10'} 3633 | hasBin: true 3634 | dependencies: 3635 | commander: 2.20.3 3636 | source-map: 0.7.3 3637 | source-map-support: 0.5.19 3638 | dev: true 3639 | 3640 | /text-table/0.2.0: 3641 | resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} 3642 | dev: true 3643 | 3644 | /thenify-all/1.6.0: 3645 | resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} 3646 | engines: {node: '>=0.8'} 3647 | dependencies: 3648 | thenify: 3.3.1 3649 | dev: true 3650 | 3651 | /thenify/3.3.1: 3652 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3653 | dependencies: 3654 | any-promise: 1.3.0 3655 | dev: true 3656 | 3657 | /timsort/0.3.0: 3658 | resolution: {integrity: sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=} 3659 | dev: true 3660 | 3661 | /to-object-path/0.3.0: 3662 | resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=} 3663 | engines: {node: '>=0.10.0'} 3664 | dependencies: 3665 | kind-of: 3.2.2 3666 | dev: true 3667 | 3668 | /to-readable-stream/1.0.0: 3669 | resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} 3670 | engines: {node: '>=6'} 3671 | dev: true 3672 | 3673 | /to-regex-range/2.1.1: 3674 | resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=} 3675 | engines: {node: '>=0.10.0'} 3676 | dependencies: 3677 | is-number: 3.0.0 3678 | repeat-string: 1.6.1 3679 | dev: true 3680 | 3681 | /to-regex-range/5.0.1: 3682 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3683 | engines: {node: '>=8.0'} 3684 | dependencies: 3685 | is-number: 7.0.0 3686 | dev: true 3687 | 3688 | /to-regex/3.0.2: 3689 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} 3690 | engines: {node: '>=0.10.0'} 3691 | dependencies: 3692 | define-property: 2.0.2 3693 | extend-shallow: 3.0.2 3694 | regex-not: 1.0.2 3695 | safe-regex: 1.1.0 3696 | dev: true 3697 | 3698 | /ts-interface-checker/0.1.13: 3699 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3700 | dev: true 3701 | 3702 | /tslib/1.14.1: 3703 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 3704 | dev: true 3705 | 3706 | /tslib/2.2.0: 3707 | resolution: {integrity: sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==} 3708 | dev: true 3709 | 3710 | /tsutils/3.21.0_typescript@4.3.2: 3711 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 3712 | engines: {node: '>= 6'} 3713 | peerDependencies: 3714 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 3715 | dependencies: 3716 | tslib: 1.14.1 3717 | typescript: 4.3.2 3718 | dev: true 3719 | 3720 | /tunnel/0.0.6: 3721 | resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} 3722 | engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} 3723 | dev: true 3724 | optional: true 3725 | 3726 | /type-check/0.4.0: 3727 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3728 | engines: {node: '>= 0.8.0'} 3729 | dependencies: 3730 | prelude-ls: 1.2.1 3731 | dev: true 3732 | 3733 | /type-detect/4.0.8: 3734 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3735 | engines: {node: '>=4'} 3736 | dev: true 3737 | 3738 | /type-fest/0.13.1: 3739 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 3740 | engines: {node: '>=10'} 3741 | dev: true 3742 | optional: true 3743 | 3744 | /type-fest/0.20.2: 3745 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3746 | engines: {node: '>=10'} 3747 | dev: true 3748 | 3749 | /type-fest/0.5.2: 3750 | resolution: {integrity: sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==} 3751 | engines: {node: '>=6'} 3752 | dev: true 3753 | 3754 | /type-fest/0.6.0: 3755 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 3756 | engines: {node: '>=8'} 3757 | dev: true 3758 | 3759 | /type-fest/0.8.1: 3760 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 3761 | engines: {node: '>=8'} 3762 | dev: true 3763 | 3764 | /typedarray/0.0.6: 3765 | resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} 3766 | dev: true 3767 | 3768 | /typescript/4.2.4: 3769 | resolution: {integrity: sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==} 3770 | engines: {node: '>=4.2.0'} 3771 | hasBin: true 3772 | dev: true 3773 | 3774 | /typescript/4.3.2: 3775 | resolution: {integrity: sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==} 3776 | engines: {node: '>=4.2.0'} 3777 | hasBin: true 3778 | dev: true 3779 | 3780 | /uc.micro/1.0.6: 3781 | resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} 3782 | dev: true 3783 | 3784 | /unbox-primitive/1.0.1: 3785 | resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} 3786 | dependencies: 3787 | function-bind: 1.1.1 3788 | has-bigints: 1.0.1 3789 | has-symbols: 1.0.2 3790 | which-boxed-primitive: 1.0.2 3791 | dev: true 3792 | 3793 | /underscore/1.13.1: 3794 | resolution: {integrity: sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==} 3795 | dev: true 3796 | 3797 | /union-value/1.0.1: 3798 | resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} 3799 | engines: {node: '>=0.10.0'} 3800 | dependencies: 3801 | arr-union: 3.1.0 3802 | get-value: 2.0.6 3803 | is-extendable: 0.1.1 3804 | set-value: 2.0.1 3805 | dev: true 3806 | 3807 | /universalify/0.1.2: 3808 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 3809 | engines: {node: '>= 4.0.0'} 3810 | dev: true 3811 | 3812 | /unset-value/1.0.0: 3813 | resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} 3814 | engines: {node: '>=0.10.0'} 3815 | dependencies: 3816 | has-value: 0.3.1 3817 | isobject: 3.0.1 3818 | dev: true 3819 | 3820 | /uri-js/4.4.1: 3821 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3822 | dependencies: 3823 | punycode: 2.1.1 3824 | dev: true 3825 | 3826 | /urix/0.1.0: 3827 | resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} 3828 | deprecated: Please see https://github.com/lydell/urix#deprecated 3829 | dev: true 3830 | 3831 | /url-parse-lax/3.0.0: 3832 | resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} 3833 | engines: {node: '>=4'} 3834 | dependencies: 3835 | prepend-http: 2.0.0 3836 | dev: true 3837 | 3838 | /url/0.11.0: 3839 | resolution: {integrity: sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=} 3840 | dependencies: 3841 | punycode: 1.3.2 3842 | querystring: 0.2.0 3843 | dev: true 3844 | 3845 | /use/3.1.1: 3846 | resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} 3847 | engines: {node: '>=0.10.0'} 3848 | dev: true 3849 | 3850 | /util-deprecate/1.0.2: 3851 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 3852 | dev: true 3853 | 3854 | /v8-compile-cache/2.3.0: 3855 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} 3856 | dev: true 3857 | 3858 | /validate-npm-package-license/3.0.4: 3859 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3860 | dependencies: 3861 | spdx-correct: 3.1.1 3862 | spdx-expression-parse: 3.0.1 3863 | dev: true 3864 | 3865 | /validator/8.2.0: 3866 | resolution: {integrity: sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==} 3867 | engines: {node: '>= 0.10'} 3868 | dev: true 3869 | 3870 | /which-boxed-primitive/1.0.2: 3871 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3872 | dependencies: 3873 | is-bigint: 1.0.2 3874 | is-boolean-object: 1.1.1 3875 | is-number-object: 1.0.5 3876 | is-string: 1.0.6 3877 | is-symbol: 1.0.4 3878 | dev: true 3879 | 3880 | /which-module/2.0.0: 3881 | resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=} 3882 | dev: true 3883 | 3884 | /which/1.3.1: 3885 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 3886 | hasBin: true 3887 | dependencies: 3888 | isexe: 2.0.0 3889 | dev: true 3890 | 3891 | /which/2.0.2: 3892 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3893 | engines: {node: '>= 8'} 3894 | hasBin: true 3895 | dependencies: 3896 | isexe: 2.0.0 3897 | dev: true 3898 | 3899 | /wide-align/1.1.3: 3900 | resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} 3901 | dependencies: 3902 | string-width: 2.1.1 3903 | dev: true 3904 | 3905 | /word-wrap/1.2.3: 3906 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 3907 | engines: {node: '>=0.10.0'} 3908 | dev: true 3909 | 3910 | /wordwrap/0.0.3: 3911 | resolution: {integrity: sha1-o9XabNXAvAAI03I0u68b7WMFkQc=} 3912 | engines: {node: '>=0.4.0'} 3913 | dev: true 3914 | 3915 | /wrap-ansi/5.1.0: 3916 | resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} 3917 | engines: {node: '>=6'} 3918 | dependencies: 3919 | ansi-styles: 3.2.1 3920 | string-width: 3.1.0 3921 | strip-ansi: 5.2.0 3922 | dev: true 3923 | 3924 | /wrap-ansi/6.2.0: 3925 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 3926 | engines: {node: '>=8'} 3927 | dependencies: 3928 | ansi-styles: 4.3.0 3929 | string-width: 4.2.2 3930 | strip-ansi: 6.0.0 3931 | dev: true 3932 | 3933 | /wrappy/1.0.2: 3934 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 3935 | dev: true 3936 | 3937 | /xmlcreate/2.0.3: 3938 | resolution: {integrity: sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==} 3939 | dev: true 3940 | 3941 | /y18n/4.0.3: 3942 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 3943 | dev: true 3944 | 3945 | /yallist/4.0.0: 3946 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3947 | dev: true 3948 | 3949 | /yargs-parser/13.1.2: 3950 | resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} 3951 | dependencies: 3952 | camelcase: 5.3.1 3953 | decamelize: 1.2.0 3954 | dev: true 3955 | 3956 | /yargs-parser/18.1.3: 3957 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 3958 | engines: {node: '>=6'} 3959 | dependencies: 3960 | camelcase: 5.3.1 3961 | decamelize: 1.2.0 3962 | dev: true 3963 | 3964 | /yargs-unparser/1.6.0: 3965 | resolution: {integrity: sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==} 3966 | engines: {node: '>=6'} 3967 | dependencies: 3968 | flat: 4.1.1 3969 | lodash: 4.17.21 3970 | yargs: 13.3.2 3971 | dev: true 3972 | 3973 | /yargs/13.3.2: 3974 | resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} 3975 | dependencies: 3976 | cliui: 5.0.0 3977 | find-up: 3.0.0 3978 | get-caller-file: 2.0.5 3979 | require-directory: 2.1.1 3980 | require-main-filename: 2.0.0 3981 | set-blocking: 2.0.0 3982 | string-width: 3.1.0 3983 | which-module: 2.0.0 3984 | y18n: 4.0.3 3985 | yargs-parser: 13.1.2 3986 | dev: true 3987 | 3988 | /yargs/15.4.1: 3989 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 3990 | engines: {node: '>=8'} 3991 | dependencies: 3992 | cliui: 6.0.0 3993 | decamelize: 1.2.0 3994 | find-up: 4.1.0 3995 | get-caller-file: 2.0.5 3996 | require-directory: 2.1.1 3997 | require-main-filename: 2.0.0 3998 | set-blocking: 2.0.0 3999 | string-width: 4.2.2 4000 | which-module: 2.0.0 4001 | y18n: 4.0.3 4002 | yargs-parser: 18.1.3 4003 | dev: true 4004 | 4005 | /yarn-or-npm/3.0.1: 4006 | resolution: {integrity: sha512-fTiQP6WbDAh5QZAVdbMQkecZoahnbOjClTQhzv74WX5h2Uaidj1isf9FDes11TKtsZ0/ZVfZsqZ+O3x6aLERHQ==} 4007 | engines: {node: '>=8.6.0'} 4008 | hasBin: true 4009 | dependencies: 4010 | cross-spawn: 6.0.5 4011 | pkg-dir: 4.2.0 4012 | dev: true 4013 | 4014 | /yauzl/2.10.0: 4015 | resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} 4016 | dependencies: 4017 | buffer-crc32: 0.2.13 4018 | fd-slicer: 1.1.0 4019 | dev: true 4020 | 4021 | /z-schema/3.18.4: 4022 | resolution: {integrity: sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==} 4023 | hasBin: true 4024 | dependencies: 4025 | lodash.get: 4.4.2 4026 | lodash.isequal: 4.5.0 4027 | validator: 8.2.0 4028 | optionalDependencies: 4029 | commander: 2.20.3 4030 | dev: true 4031 | --------------------------------------------------------------------------------