├── examples └── .gitkeep ├── core ├── tests │ └── .gitkeep ├── README.md ├── src │ └── lib.rs └── Cargo.toml ├── node ├── tests │ └── .gitkeep ├── build.rs ├── index.d.ts ├── tsconfig.json ├── index.js ├── __tests__ │ └── index.spec.ts ├── binding.d.ts ├── src │ └── lib.rs ├── Cargo.toml ├── package.json └── binding.js ├── rustfmt.toml ├── rust-toolchain ├── index.d.ts ├── pnpm-workspace.yaml ├── wasm-bindings.js ├── .npmrc ├── Cargo.toml ├── npm ├── darwin-x64 │ ├── README.md │ └── package.json ├── android-arm64 │ ├── README.md │ └── package.json ├── darwin-arm64 │ ├── README.md │ └── package.json ├── freebsd-x64 │ ├── README.md │ └── package.json ├── linux-x64-gnu │ ├── README.md │ └── package.json ├── win32-ia32-msvc │ ├── README.md │ └── package.json ├── win32-x64-msvc │ ├── README.md │ └── package.json ├── android-arm-eabi │ ├── README.md │ └── package.json ├── linux-arm64-gnu │ ├── README.md │ └── package.json ├── linux-x64-musl │ ├── README.md │ └── package.json ├── win32-arm64-msvc │ ├── README.md │ └── package.json ├── linux-arm64-musl │ ├── README.md │ └── package.json └── linux-arm-gnueabihf │ ├── README.md │ └── package.json ├── wasm ├── src │ └── lib.rs ├── __tests__ │ └── index.spec.ts ├── Cargo.toml └── package.json ├── benchmark ├── tsconfig.json ├── package.json └── bench.ts ├── .cargo └── config.toml ├── .gitignore ├── .github └── workflows │ ├── Test.yaml │ ├── Lint.yaml │ ├── Bench.yaml │ └── CI.yaml ├── LICENSE ├── package.json ├── README.md └── pnpm-lock.yaml /examples/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/tests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /node/tests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | nightly-2021-11-01 -------------------------------------------------------------------------------- /core/README.md: -------------------------------------------------------------------------------- 1 | # speedy_sourcemap 2 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | export * from './node/index' 2 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: ['node', 'benchmark', 'wasm'] 2 | -------------------------------------------------------------------------------- /wasm-bindings.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wasm/pkg-node') 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npm.taobao.org 2 | always-auth=false 3 | -------------------------------------------------------------------------------- /node/build.rs: -------------------------------------------------------------------------------- 1 | extern crate napi_build; 2 | 3 | fn main() { 4 | napi_build::setup(); 5 | } 6 | -------------------------------------------------------------------------------- /node/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from './binding' 2 | 3 | export default function init(): Promise 4 | -------------------------------------------------------------------------------- /core/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(clippy::all)] 2 | 3 | pub fn add(a: u32, b: u32) -> u32 { 4 | a + b 5 | } 6 | -------------------------------------------------------------------------------- /node/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true, 4 | "moduleResolution": "Node" 5 | } 6 | } -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["core", "node", "wasm"] 3 | 4 | [profile.release] 5 | codegen-units = 1 6 | lto = true 7 | opt-level = 3 8 | -------------------------------------------------------------------------------- /npm/darwin-x64/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-darwin-x64` 2 | 3 | This is the **x86_64-apple-darwin** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/android-arm64/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-android-arm64` 2 | 3 | This is the **aarch64-linux-android** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/darwin-arm64/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-darwin-arm64` 2 | 3 | This is the **aarch64-apple-darwin** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/freebsd-x64/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-freebsd-x64` 2 | 3 | This is the **x86_64-unknown-freebsd** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/linux-x64-gnu/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-linux-x64-gnu` 2 | 3 | This is the **x86_64-unknown-linux-gnu** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/win32-ia32-msvc/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-win32-ia32-msvc` 2 | 3 | This is the **i686-pc-windows-msvc** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/win32-x64-msvc/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-win32-x64-msvc` 2 | 3 | This is the **x86_64-pc-windows-msvc** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/android-arm-eabi/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-android-arm-eabi` 2 | 3 | This is the **armv7-linux-androideabi** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/linux-arm64-gnu/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-linux-arm64-gnu` 2 | 3 | This is the **aarch64-unknown-linux-gnu** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/linux-x64-musl/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-linux-x64-musl` 2 | 3 | This is the **x86_64-unknown-linux-musl** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/win32-arm64-msvc/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-win32-arm64-msvc` 2 | 3 | This is the **aarch64-pc-windows-msvc** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/linux-arm64-musl/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-linux-arm64-musl` 2 | 3 | This is the **aarch64-unknown-linux-musl** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /npm/linux-arm-gnueabihf/README.md: -------------------------------------------------------------------------------- 1 | # `@speedy-js/source-map-linux-arm-gnueabihf` 2 | 3 | This is the **armv7-unknown-linux-gnueabihf** binary for `@speedy-js/source-map` 4 | -------------------------------------------------------------------------------- /wasm/src/lib.rs: -------------------------------------------------------------------------------- 1 | use wasm_bindgen::prelude::*; 2 | 3 | use speedy_sourcemap::add as speedy_add; 4 | 5 | #[wasm_bindgen] 6 | pub fn add(a: u32, b: u32) -> u32 { 7 | speedy_add(a, b) 8 | } 9 | -------------------------------------------------------------------------------- /node/index.js: -------------------------------------------------------------------------------- 1 | const init = () => Promise.resolve() 2 | module.exports = init 3 | 4 | const { add } = require('./binding') 5 | 6 | // you can modify binding here 7 | module.exports.add = add 8 | -------------------------------------------------------------------------------- /node/__tests__/index.spec.ts: -------------------------------------------------------------------------------- 1 | import assert from "assert" 2 | import { add } from ".." 3 | 4 | describe("test", () => { 5 | it("should work", () => { 6 | assert.equal(add(1,2), 3) 7 | }) 8 | }) -------------------------------------------------------------------------------- /wasm/__tests__/index.spec.ts: -------------------------------------------------------------------------------- 1 | import assert from 'assert' 2 | import { add } from '../pkg-node' 3 | 4 | describe('test', () => { 5 | it('should work', () => { 6 | assert.equal(add(1, 2), 3) 7 | }) 8 | }) 9 | -------------------------------------------------------------------------------- /benchmark/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "moduleResolution": "node", 5 | "module": "commonjs", 6 | "outDir": "dist", 7 | "target": "ESNext", 8 | "rootDir": "." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /benchmark/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bench", 3 | "private": true, 4 | "license": "MIT", 5 | "version": "0.0.0", 6 | "dependencies": { 7 | "benchmark": "^2.1.4" 8 | }, 9 | "devDependencies": { 10 | "@types/benchmark": "^2.1.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /node/binding.d.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable */ 2 | /* eslint-disable */ 3 | 4 | /* auto-generated by NAPI-RS */ 5 | 6 | export class ExternalObject { 7 | readonly '': { 8 | readonly '': unique symbol 9 | [K: symbol]: T 10 | } 11 | } 12 | export function add(a: number, b: number): number 13 | -------------------------------------------------------------------------------- /node/src/lib.rs: -------------------------------------------------------------------------------- 1 | use napi::bindgen_prelude::*; 2 | use napi_derive::napi; 3 | 4 | use speedy_sourcemap::add as speedy_add; 5 | 6 | pub fn create_external(value: T) -> External { 7 | External::new(value) 8 | } 9 | 10 | #[napi] 11 | fn add(a: u32, b: u32) -> u32 { 12 | speedy_add(a, b) 13 | } 14 | -------------------------------------------------------------------------------- /wasm/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "speedy_sourcemap_wasm" 4 | publish = false 5 | version = "0.1.0" 6 | 7 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 8 | 9 | [lib] 10 | crate-type = ["cdylib"] 11 | 12 | [dependencies] 13 | wasm-bindgen = "0.2.78" 14 | speedy_sourcemap = {path = "../core"} 15 | -------------------------------------------------------------------------------- /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.aarch64-unknown-linux-gnu] 2 | linker = "aarch64-linux-gnu-gcc" 3 | 4 | [target.armv7-unknown-linux-gnueabihf] 5 | linker = "arm-linux-gnueabihf-gcc" 6 | 7 | [target.x86_64-unknown-linux-musl] 8 | rustflags = [ 9 | "-C", 10 | "target-feature=-crt-static", 11 | ] 12 | 13 | [target.aarch64-unknown-linux-musl] 14 | linker = "aarch64-linux-musl-gcc" 15 | rustflags = ["-C", "target-feature=-crt-static"] 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | 3 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 4 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 5 | Cargo.lock 6 | 7 | # These are backup files generated by rustfmt 8 | **/*.rs.bk 9 | 10 | # IDE 11 | .idea 12 | 13 | 14 | # Added by cargo 15 | /target 16 | 17 | 18 | 19 | # Web 20 | node_modules 21 | *.log 22 | dist 23 | 24 | # Node addon 25 | *.node -------------------------------------------------------------------------------- /core/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | description = "speedy sourcemap" 3 | edition = "2021" 4 | license = "MIT" 5 | name = "speedy_sourcemap" 6 | repository = "https://github.com/speedy-js/sourcemap" 7 | version = "0.0.1" 8 | 9 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 10 | 11 | [features] 12 | node-api = ["napi", "napi-derive"] 13 | 14 | [dependencies] 15 | 16 | [dependencies.napi] 17 | optional = true 18 | version = "2" 19 | 20 | [dependencies.napi-derive] 21 | optional = true 22 | version = "2" 23 | -------------------------------------------------------------------------------- /.github/workflows/Test.yaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | name: Test 4 | 5 | on: 6 | push: 7 | branches: 8 | - main 9 | tags-ignore: 10 | - '**' 11 | pull_request: null 12 | 13 | jobs: 14 | Test: 15 | name: Test 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - name: Setup node 21 | uses: actions/setup-node@v1 22 | with: 23 | node-version: 14 24 | 25 | - name: Install 26 | uses: actions-rs/toolchain@v1 27 | with: 28 | toolchain: stable 29 | profile: minimal 30 | override: true 31 | 32 | - name: Cargo test 33 | run: cargo test -------------------------------------------------------------------------------- /node/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "speedy_sourcemap_node" 4 | publish = false 5 | version = "0.1.0" 6 | 7 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 8 | 9 | [lib] 10 | crate-type = ["cdylib"] 11 | 12 | [dependencies] 13 | napi = {version = "2.0.1", features = ["napi3", "serde-json"]} 14 | napi-derive = "2.0.1" 15 | serde = {version = "1", features = ["derive"]} 16 | serde_json = "1" 17 | speedy_sourcemap = {path = "../core"} 18 | 19 | [target.'cfg(all(any(windows, unix), target_arch = "x86_64", not(target_env = "musl")))'.dependencies] 20 | mimalloc = {version = "0.1"} 21 | 22 | [build-dependencies] 23 | napi-build = "1" 24 | -------------------------------------------------------------------------------- /benchmark/bench.ts: -------------------------------------------------------------------------------- 1 | import { Suite } from 'benchmark' 2 | import chalk from "chalk"; 3 | 4 | import { add as napiAdd } from "../node" 5 | import { add as wasmAdd } from '../wasm/pkg-node'; 6 | const s = new Suite("bench") 7 | 8 | s 9 | .add('add#rust_napi_node', () => { 10 | napiAdd(1, 2) 11 | }) 12 | .add('add#rust_wasm_node', () => { 13 | wasmAdd(1, 2) 14 | }) 15 | .add('add#node', () => { 16 | const res = 1 + 2 17 | }) 18 | .on('cycle', function (event: Event) { 19 | console.info(String(event.target)); 20 | }) 21 | .on('complete', function (this: any) { 22 | console.info(`${this.name} bench suite: Fastest is ${chalk.green(this.filter('fastest').map('name'))}\n\n`); 23 | }) 24 | .run(); -------------------------------------------------------------------------------- /npm/darwin-x64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-darwin-x64", 3 | "version": "0.0.0", 4 | "os": [ 5 | "darwin" 6 | ], 7 | "cpu": [ 8 | "x64" 9 | ], 10 | "main": "speedy-sourcemap.darwin-x64.node", 11 | "files": [ 12 | "speedy-sourcemap.darwin-x64.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/freebsd-x64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-freebsd-x64", 3 | "version": "0.0.0", 4 | "os": [ 5 | "freebsd" 6 | ], 7 | "cpu": [ 8 | "x64" 9 | ], 10 | "main": "speedy-sourcemap.freebsd-x64.node", 11 | "files": [ 12 | "speedy-sourcemap.freebsd-x64.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/darwin-arm64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-darwin-arm64", 3 | "version": "0.0.0", 4 | "os": [ 5 | "darwin" 6 | ], 7 | "cpu": [ 8 | "arm64" 9 | ], 10 | "main": "speedy-sourcemap.darwin-arm64.node", 11 | "files": [ 12 | "speedy-sourcemap.darwin-arm64.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/linux-x64-gnu/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-linux-x64-gnu", 3 | "version": "0.0.0", 4 | "os": [ 5 | "linux" 6 | ], 7 | "cpu": [ 8 | "x64" 9 | ], 10 | "main": "speedy-sourcemap.linux-x64-gnu.node", 11 | "files": [ 12 | "speedy-sourcemap.linux-x64-gnu.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/android-arm64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-android-arm64", 3 | "version": "0.0.0", 4 | "os": [ 5 | "android" 6 | ], 7 | "cpu": [ 8 | "arm64" 9 | ], 10 | "main": "speedy-sourcemap.android-arm64.node", 11 | "files": [ 12 | "speedy-sourcemap.android-arm64.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/linux-x64-musl/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-linux-x64-musl", 3 | "version": "0.0.0", 4 | "os": [ 5 | "linux" 6 | ], 7 | "cpu": [ 8 | "x64" 9 | ], 10 | "main": "speedy-sourcemap.linux-x64-musl.node", 11 | "files": [ 12 | "speedy-sourcemap.linux-x64-musl.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/win32-x64-msvc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-win32-x64-msvc", 3 | "version": "0.0.0", 4 | "os": [ 5 | "win32" 6 | ], 7 | "cpu": [ 8 | "x64" 9 | ], 10 | "main": "speedy-sourcemap.win32-x64-msvc.node", 11 | "files": [ 12 | "speedy-sourcemap.win32-x64-msvc.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/linux-arm64-gnu/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-linux-arm64-gnu", 3 | "version": "0.0.0", 4 | "os": [ 5 | "linux" 6 | ], 7 | "cpu": [ 8 | "arm64" 9 | ], 10 | "main": "speedy-sourcemap.linux-arm64-gnu.node", 11 | "files": [ 12 | "speedy-sourcemap.linux-arm64-gnu.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/win32-ia32-msvc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-win32-ia32-msvc", 3 | "version": "0.0.0", 4 | "os": [ 5 | "win32" 6 | ], 7 | "cpu": [ 8 | "ia32" 9 | ], 10 | "main": "speedy-sourcemap.win32-ia32-msvc.node", 11 | "files": [ 12 | "speedy-sourcemap.win32-ia32-msvc.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/android-arm-eabi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-android-arm-eabi", 3 | "version": "0.0.0", 4 | "os": [ 5 | "android" 6 | ], 7 | "cpu": [ 8 | "arm" 9 | ], 10 | "main": "speedy-sourcemap.android-arm-eabi.node", 11 | "files": [ 12 | "speedy-sourcemap.android-arm-eabi.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/linux-arm64-musl/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-linux-arm64-musl", 3 | "version": "0.0.0", 4 | "os": [ 5 | "linux" 6 | ], 7 | "cpu": [ 8 | "arm64" 9 | ], 10 | "main": "speedy-sourcemap.linux-arm64-musl.node", 11 | "files": [ 12 | "speedy-sourcemap.linux-arm64-musl.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/win32-arm64-msvc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-win32-arm64-msvc", 3 | "version": "0.0.0", 4 | "os": [ 5 | "win32" 6 | ], 7 | "cpu": [ 8 | "arm64" 9 | ], 10 | "main": "speedy-sourcemap.win32-arm64-msvc.node", 11 | "files": [ 12 | "speedy-sourcemap.win32-arm64-msvc.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /npm/linux-arm-gnueabihf/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map-linux-arm-gnueabihf", 3 | "version": "0.0.0", 4 | "os": [ 5 | "linux" 6 | ], 7 | "cpu": [ 8 | "arm" 9 | ], 10 | "main": "speedy-sourcemap.linux-arm-gnueabihf.node", 11 | "files": [ 12 | "speedy-sourcemap.linux-arm-gnueabihf.node" 13 | ], 14 | "description": "Speedy source-map", 15 | "keywords": [ 16 | "sourcemap", 17 | "speedy", 18 | "napi", 19 | "N-API", 20 | "napi-rs" 21 | ], 22 | "license": "MIT", 23 | "engines": { 24 | "node": ">= 10" 25 | }, 26 | "publishConfig": { 27 | "registry": "https://registry.npmjs.org/", 28 | "access": "public" 29 | }, 30 | "repository": "https://github.com/speedy-js/sourcemap.git" 31 | } -------------------------------------------------------------------------------- /wasm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wasm", 3 | "version": "0.0.0", 4 | "private": true, 5 | "main": "pkg-node/index.js", 6 | "types": "pkg-node/index.d.ts", 7 | "repository": "https://github.com/speedy-js/napi-template.git", 8 | "license": "MIT", 9 | "publishConfig": { 10 | "registry": "https://registry.npmjs.org/", 11 | "access": "public" 12 | }, 13 | "keywords": [ 14 | "sourcemap", 15 | "speedy", 16 | "wasm", 17 | "wasm-bindgen" 18 | ], 19 | "files": [ 20 | "pkg-node", 21 | "pkg-web" 22 | ], 23 | "scripts": { 24 | "build": "pnpm build:node && pnpm build:web", 25 | "build:web": "wasm-pack build --target web --out-dir pkg-web --out-name index", 26 | "build:node": "wasm-pack build --target nodejs --out-dir pkg-node --out-name index" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node", 3 | "version": "0.0.0", 4 | "private": true, 5 | "description": "Speedy source-map", 6 | "scripts": { 7 | "build": "napi build --platform --release --js binding.js --dts binding.d.ts --pipe \"prettier -w\"", 8 | "build:debug": "napi build --platform --js binding.js --dts binding.d.ts --pipe \"prettier -w\"" 9 | }, 10 | "napi": { 11 | "name": "speedy-sourcemap", 12 | "triples": { 13 | "defaults": true, 14 | "additional": [ 15 | "x86_64-unknown-linux-musl", 16 | "aarch64-unknown-linux-gnu", 17 | "i686-pc-windows-msvc", 18 | "armv7-unknown-linux-gnueabihf", 19 | "aarch64-apple-darwin", 20 | "x86_64-unknown-freebsd", 21 | "aarch64-unknown-linux-musl", 22 | "aarch64-pc-windows-msvc", 23 | "aarch64-linux-android", 24 | "armv7-linux-androideabi" 25 | ] 26 | }, 27 | "package": { 28 | "name": "@speedy-js/source-map" 29 | } 30 | }, 31 | "engines": { 32 | "node": ">= 10" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Hana 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 | -------------------------------------------------------------------------------- /.github/workflows/Lint.yaml: -------------------------------------------------------------------------------- 1 | name: Lint 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | tags-ignore: 8 | - '**' 9 | pull_request: 10 | 11 | jobs: 12 | lint: 13 | name: Lint 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v2 17 | 18 | - name: Setup node 19 | uses: actions/setup-node@v2 20 | with: 21 | node-version: 14 22 | 23 | - name: Install 24 | uses: actions-rs/toolchain@v1 25 | with: 26 | profile: minimal 27 | override: true 28 | components: rustfmt, clippy 29 | 30 | - name: Install pnpm 31 | run: npm install -g pnpm 32 | 33 | - name: Cache NPM dependencies 34 | uses: actions/cache@v2 35 | with: 36 | path: node_modules 37 | key: npm-cache-lint-node@14-${{ hashFiles('pnpm-lock.yaml') }} 38 | 39 | - name: 'Install dependencies' 40 | run: pnpm install --frozen-lockfile --registry https://registry.npm.taobao.org 41 | 42 | - name: ESLint 43 | run: pnpm lint 44 | 45 | - name: Cargo fmt 46 | run: cargo fmt -- --check 47 | 48 | - name: Clippy 49 | run: cargo clippy 50 | -------------------------------------------------------------------------------- /.github/workflows/Bench.yaml: -------------------------------------------------------------------------------- 1 | name: Benchmark 2 | 3 | env: 4 | DEBUG: 'napi:*' 5 | APP_NAME: 'speedy-sourcemap' 6 | MACOSX_DEPLOYMENT_TARGET: '10.13' 7 | # https://github.com/SchrodingerZhu/snmalloc-rs 8 | CACHE_FRIENDLY_OFFSET: 64 9 | 10 | 'on': 11 | push: 12 | branches: 13 | - main 14 | tags-ignore: 15 | - '**' 16 | paths-ignore: 17 | - '**/*.md' 18 | - LICENSE 19 | - '**/*.gitignore' 20 | - .editorconfig 21 | - docs/** 22 | pull_request: null 23 | jobs: 24 | benchmark: 25 | runs-on: ubuntu-latest 26 | steps: 27 | - uses: actions/checkout@v2 28 | 29 | - name: Setup node 30 | uses: actions/setup-node@v2 31 | with: 32 | node-version: 14 33 | 34 | - name: Install 35 | uses: actions-rs/toolchain@v1 36 | with: 37 | profile: minimal 38 | override: true 39 | 40 | - name: Install pnpm 41 | run: npm install -g pnpm 42 | 43 | - name: Cache cargo 44 | uses: Swatinem/rust-cache@v1 45 | with: 46 | key: ${{ matrix.settings.target }}-node@14-cargo-cache 47 | 48 | - name: Cache NPM dependencies 49 | uses: actions/cache@v2 50 | with: 51 | path: node_modules 52 | key: npm-cache-lint-node@14-${{ hashFiles('pnpm-lock.yaml') }} 53 | 54 | - name: 'Install wasm-pack' 55 | uses: jetli/wasm-pack-action@v0.3.0 56 | with: 57 | version: 'latest' 58 | 59 | - name: 'Install dependencies' 60 | run: pnpm install --frozen-lockfile --registry https://registry.npm.taobao.org 61 | 62 | - name: Build 63 | run: | 64 | pnpm build 65 | 66 | - name: Run benchmark 67 | run: | 68 | pnpm bench | tee output.txt 69 | 70 | - name: Store benchmark result 71 | uses: benchmark-action/github-action-benchmark@v1 72 | with: 73 | tool: 'benchmarkjs' 74 | output-file-path: output.txt 75 | auto-push: true 76 | github-token: ${{ secrets.GITHUB_TOKEN }} 77 | comment-always: true 78 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@speedy-js/source-map", 3 | "version": "0.0.0", 4 | "description": "Speedy source-map", 5 | "main": "node/index.js", 6 | "types": "index.d.ts", 7 | "repository": "https://github.com/speedy-js/napi-template", 8 | "license": "MIT", 9 | "keywords": [ 10 | "sourcemap", 11 | "speedy", 12 | "napi", 13 | "N-API", 14 | "napi-rs", 15 | "WebAssembly", 16 | "wasm" 17 | ], 18 | "files": [ 19 | "index.d.ts", 20 | "wasm-bindings.js", 21 | "node/binding.js", 22 | "node/binding.d.ts", 23 | "node/index.js", 24 | "node/index.d.ts", 25 | "wasm/pkg-web", 26 | "wasm/pkg-node" 27 | ], 28 | "browser": { 29 | "node/index.js": "wasm/pkg-web/index.js", 30 | "wasm-bindings.js": "wasm/pkg-web/index.js" 31 | }, 32 | "workspaces": [ 33 | "node", 34 | "benchmark" 35 | ], 36 | "scripts": { 37 | "bench": "node -r @swc-node/register benchmark/bench.ts", 38 | "artifacts": "napi artifacts", 39 | "prepublishOnly": "napi prepublish -t npm && esbuild --minify --outfile=node/binding.js --allow-overwrite node/binding.js", 40 | "build:node": "pnpm build --dir node", 41 | "build:wasm": "pnpm build --dir wasm", 42 | "build": "pnpm build:node && pnpm build:wasm", 43 | "format": "prettier . -w", 44 | "lint": "echo lint", 45 | "test": "pnpm test:node && pnpm test:wasm", 46 | "test:node": "mocha -r @swc-node/register node/**/__tests__/**/*.spec.ts", 47 | "test:wasm": "mocha -r @swc-node/register wasm/**/__tests__/**/*.spec.ts" 48 | }, 49 | "devDependencies": { 50 | "@napi-rs/cli": "^2.0.0", 51 | "@swc-node/register": "^1.4.0", 52 | "@types/mocha": "^9.0.0", 53 | "@types/node": "^16.11.12", 54 | "chalk": "^4.1.2", 55 | "esbuild": "^0.14.2", 56 | "husky": "^7.0.4", 57 | "lint-staged": "^12.0.2", 58 | "mocha": "^9.1.3", 59 | "npm-run-all": "^4.1.5", 60 | "prettier": "^2.5.1", 61 | "typescript": "^4.4.4" 62 | }, 63 | "prettier": { 64 | "printWidth": 80, 65 | "semi": false, 66 | "singleQuote": true, 67 | "trailingComma": "all", 68 | "arrowParens": "always" 69 | }, 70 | "napi": { 71 | "name": "speedy-sourcemap", 72 | "triples": { 73 | "defaults": true, 74 | "additional": [ 75 | "x86_64-unknown-linux-musl", 76 | "aarch64-unknown-linux-gnu", 77 | "i686-pc-windows-msvc", 78 | "armv7-unknown-linux-gnueabihf", 79 | "aarch64-apple-darwin", 80 | "x86_64-unknown-freebsd", 81 | "aarch64-unknown-linux-musl", 82 | "aarch64-pc-windows-msvc", 83 | "aarch64-linux-android", 84 | "armv7-linux-androideabi" 85 | ] 86 | } 87 | }, 88 | "engines": { 89 | "node": ">= 10" 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |

Speedy NAPI-RS template

4 | 5 | ## Use this template 6 | 7 | Click `use this template` above, then find and replace `speedy-sourcemap` to your desired naming. 8 | 9 | ## Setup Rust toolchain 10 | 11 | This project uses [Rust](https://www.rust-lang.org/) and [NAPI-RS](https://github.com/napi-rs/napi-rs), so you can install it with: 12 | 13 | ```bash 14 | # Install Rust toolchain on MacOS, Linux. 15 | # For Windows users, you may refer to the website listed above and install the corresponding `.exe`. 16 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 17 | ``` 18 | 19 | This command will install the latest stable version of Rust standard library, Cargo and other toolchain. 20 | 21 | This project is also using Rust 2021, for those developers who have already installed Rust, you may update your toolchain to the latest stable version, which you can update it as follows: 22 | 23 | ```bash 24 | rustup update stable 25 | ``` 26 | 27 | For more information about the setup, please heads to [Rust](https://www.rust-lang.org/) and [NAPI-RS](https://github.com/napi-rs/napi-rs) 28 | 29 | ## Setup Node.js 30 | 31 | Pnpm is required for handling node modules, also pnpm workspace is enabled for the project, so you can install node modules with: 32 | 33 | ```bash 34 | npm install -g pnpm 35 | 36 | pnpm install # Install all node modules in the workspace 37 | ``` 38 | 39 | ## Setup WebAssembly 40 | 41 | ```bash 42 | curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh 43 | ``` 44 | 45 | Note: for Apple Silicons, you need to use `cargo install wasm-pack` to install wasm-pack 46 | 47 | ## Repo Structure 48 | 49 | ``` 50 | . 51 | ├── Cargo.lock 52 | ├── Cargo.toml 53 | ├── README.md 54 | ├── benchmark # Your benchmark goes here 55 | ├── core 56 | │   └── your_native_repo_goes_here # Your native repo goes here 57 | ├── node 58 | │   ├── Cargo.toml 59 | │   ├── __tests__ 60 | │   │   └── unit.spec.ts 61 | │   ├── binding.js 62 | │   ├── build.rs 63 | │   ├── index.d.ts 64 | │   ├── npm # This package is not intended for editing 65 | │   ├── package.json 66 | │   ├── src 67 | │   │   ├── lib.rs 68 | │   │   ├── test.rs 69 | │   │   └── types.rs 70 | │   └── tsconfig.json 71 | ├── wasm # Your wasm binding goes here 72 | ├── package.json 73 | ├── pnpm-workspace.yaml 74 | └── rustfmt.toml # This file is not intended for editing 75 | ``` 76 | 77 | This project is also using Cargo workspaces for managing multiple crates. 78 | 79 | ## Development 80 | 81 | **Build Node bindings** 82 | 83 | ```bash 84 | # This will only build the unoptimized version for testing 85 | # , which is hugely useful when testing projects with heavy dependencies. 86 | pnpm build:debug --dir node 87 | 88 | # Regular optimized build 89 | pnpm build --dir node 90 | ``` 91 | 92 | **Build WebAssembly bindings** 93 | 94 | ```bash 95 | pnpm build:wasm 96 | ``` 97 | 98 | ## Testing 99 | 100 | **Rust** 101 | 102 | ```bash 103 | cargo test # This will test the whole cargo workspaces, and workspace members are declared in the /Cargo.toml 104 | ``` 105 | 106 | **Node** 107 | 108 | ```bash 109 | pnpm test # This will run tests under the `node` and `wasm` directory 110 | ``` 111 | 112 | ## Publishing 113 | 114 | **Rust(Cargo)** 115 | 116 | ```bash 117 | cargo publish 118 | ``` 119 | 120 | **Node** 121 | 122 | Node addons are divided into difference npm packages for different platforms and architectures, which you can find [here](./node/npm) and this is not intended to be edited manually. 123 | 124 | ```bash 125 | # Create a new npm release 126 | cd node 127 | npm version 128 | ``` 129 | 130 | Make sure you have your commit message starts with `chore(release): publish`, and CI will automatically publish the release. 131 | For more details please refer to [CI.yaml](.github/workflows/CI.yaml) 132 | -------------------------------------------------------------------------------- /node/binding.js: -------------------------------------------------------------------------------- 1 | const { existsSync, readFileSync } = require('fs') 2 | const { join } = require('path') 3 | 4 | const { platform, arch } = process 5 | 6 | let nativeBinding = null 7 | let localFileExisted = false 8 | let loadError = null 9 | 10 | function isMusl() { 11 | // For Node 10 12 | if (!process.report || typeof process.report.getReport !== 'function') { 13 | try { 14 | return readFileSync('/usr/bin/ldd', 'utf8').includes('musl') 15 | } catch (e) { 16 | return false 17 | } 18 | } else { 19 | const { glibcVersionRuntime } = process.report.getReport().header 20 | return !Boolean(glibcVersionRuntime) 21 | } 22 | } 23 | 24 | switch (platform) { 25 | case 'android': 26 | if (arch !== 'arm64') { 27 | throw new Error(`Unsupported architecture on Android ${arch}`) 28 | } 29 | localFileExisted = existsSync( 30 | join(__dirname, 'speedy-sourcemap.android-arm64.node'), 31 | ) 32 | try { 33 | if (localFileExisted) { 34 | nativeBinding = require('./speedy-sourcemap.android-arm64.node') 35 | } else { 36 | nativeBinding = require('@speedy-js/source-map-android-arm64') 37 | } 38 | } catch (e) { 39 | loadError = e 40 | } 41 | break 42 | case 'win32': 43 | switch (arch) { 44 | case 'x64': 45 | localFileExisted = existsSync( 46 | join(__dirname, 'speedy-sourcemap.win32-x64-msvc.node'), 47 | ) 48 | try { 49 | if (localFileExisted) { 50 | nativeBinding = require('./speedy-sourcemap.win32-x64-msvc.node') 51 | } else { 52 | nativeBinding = require('@speedy-js/source-map-win32-x64-msvc') 53 | } 54 | } catch (e) { 55 | loadError = e 56 | } 57 | break 58 | case 'ia32': 59 | localFileExisted = existsSync( 60 | join(__dirname, 'speedy-sourcemap.win32-ia32-msvc.node'), 61 | ) 62 | try { 63 | if (localFileExisted) { 64 | nativeBinding = require('./speedy-sourcemap.win32-ia32-msvc.node') 65 | } else { 66 | nativeBinding = require('@speedy-js/source-map-win32-ia32-msvc') 67 | } 68 | } catch (e) { 69 | loadError = e 70 | } 71 | break 72 | case 'arm64': 73 | localFileExisted = existsSync( 74 | join(__dirname, 'speedy-sourcemap.win32-arm64-msvc.node'), 75 | ) 76 | try { 77 | if (localFileExisted) { 78 | nativeBinding = require('./speedy-sourcemap.win32-arm64-msvc.node') 79 | } else { 80 | nativeBinding = require('@speedy-js/source-map-win32-arm64-msvc') 81 | } 82 | } catch (e) { 83 | loadError = e 84 | } 85 | break 86 | default: 87 | throw new Error(`Unsupported architecture on Windows: ${arch}`) 88 | } 89 | break 90 | case 'darwin': 91 | switch (arch) { 92 | case 'x64': 93 | localFileExisted = existsSync( 94 | join(__dirname, 'speedy-sourcemap.darwin-x64.node'), 95 | ) 96 | try { 97 | if (localFileExisted) { 98 | nativeBinding = require('./speedy-sourcemap.darwin-x64.node') 99 | } else { 100 | nativeBinding = require('@speedy-js/source-map-darwin-x64') 101 | } 102 | } catch (e) { 103 | loadError = e 104 | } 105 | break 106 | case 'arm64': 107 | localFileExisted = existsSync( 108 | join(__dirname, 'speedy-sourcemap.darwin-arm64.node'), 109 | ) 110 | try { 111 | if (localFileExisted) { 112 | nativeBinding = require('./speedy-sourcemap.darwin-arm64.node') 113 | } else { 114 | nativeBinding = require('@speedy-js/source-map-darwin-arm64') 115 | } 116 | } catch (e) { 117 | loadError = e 118 | } 119 | break 120 | default: 121 | throw new Error(`Unsupported architecture on macOS: ${arch}`) 122 | } 123 | break 124 | case 'freebsd': 125 | if (arch !== 'x64') { 126 | throw new Error(`Unsupported architecture on FreeBSD: ${arch}`) 127 | } 128 | localFileExisted = existsSync( 129 | join(__dirname, 'speedy-sourcemap.freebsd-x64.node'), 130 | ) 131 | try { 132 | if (localFileExisted) { 133 | nativeBinding = require('./speedy-sourcemap.freebsd-x64.node') 134 | } else { 135 | nativeBinding = require('@speedy-js/source-map-freebsd-x64') 136 | } 137 | } catch (e) { 138 | loadError = e 139 | } 140 | break 141 | case 'linux': 142 | switch (arch) { 143 | case 'x64': 144 | if (isMusl()) { 145 | localFileExisted = existsSync( 146 | join(__dirname, 'speedy-sourcemap.linux-x64-musl.node'), 147 | ) 148 | try { 149 | if (localFileExisted) { 150 | nativeBinding = require('./speedy-sourcemap.linux-x64-musl.node') 151 | } else { 152 | nativeBinding = require('@speedy-js/source-map-linux-x64-musl') 153 | } 154 | } catch (e) { 155 | loadError = e 156 | } 157 | } else { 158 | localFileExisted = existsSync( 159 | join(__dirname, 'speedy-sourcemap.linux-x64-gnu.node'), 160 | ) 161 | try { 162 | if (localFileExisted) { 163 | nativeBinding = require('./speedy-sourcemap.linux-x64-gnu.node') 164 | } else { 165 | nativeBinding = require('@speedy-js/source-map-linux-x64-gnu') 166 | } 167 | } catch (e) { 168 | loadError = e 169 | } 170 | } 171 | break 172 | case 'arm64': 173 | if (isMusl()) { 174 | localFileExisted = existsSync( 175 | join(__dirname, 'speedy-sourcemap.linux-arm64-musl.node'), 176 | ) 177 | try { 178 | if (localFileExisted) { 179 | nativeBinding = require('./speedy-sourcemap.linux-arm64-musl.node') 180 | } else { 181 | nativeBinding = require('@speedy-js/source-map-linux-arm64-musl') 182 | } 183 | } catch (e) { 184 | loadError = e 185 | } 186 | } else { 187 | localFileExisted = existsSync( 188 | join(__dirname, 'speedy-sourcemap.linux-arm64-gnu.node'), 189 | ) 190 | try { 191 | if (localFileExisted) { 192 | nativeBinding = require('./speedy-sourcemap.linux-arm64-gnu.node') 193 | } else { 194 | nativeBinding = require('@speedy-js/source-map-linux-arm64-gnu') 195 | } 196 | } catch (e) { 197 | loadError = e 198 | } 199 | } 200 | break 201 | case 'arm': 202 | localFileExisted = existsSync( 203 | join(__dirname, 'speedy-sourcemap.linux-arm-gnueabihf.node'), 204 | ) 205 | try { 206 | if (localFileExisted) { 207 | nativeBinding = require('./speedy-sourcemap.linux-arm-gnueabihf.node') 208 | } else { 209 | nativeBinding = require('@speedy-js/source-map-linux-arm-gnueabihf') 210 | } 211 | } catch (e) { 212 | loadError = e 213 | } 214 | break 215 | default: 216 | throw new Error(`Unsupported architecture on Linux: ${arch}`) 217 | } 218 | break 219 | default: 220 | throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`) 221 | } 222 | 223 | if (!nativeBinding) { 224 | if (loadError) { 225 | throw loadError 226 | } 227 | throw new Error(`Failed to load native binding`) 228 | } 229 | 230 | const { add } = nativeBinding 231 | 232 | module.exports.add = add 233 | -------------------------------------------------------------------------------- /.github/workflows/CI.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | env: 4 | DEBUG: 'napi:*' 5 | APP_NAME: 'speedy-sourcemap' 6 | MACOSX_DEPLOYMENT_TARGET: '10.13' 7 | # https://github.com/SchrodingerZhu/snmalloc-rs 8 | CACHE_FRIENDLY_OFFSET: 64 9 | 10 | 'on': 11 | push: 12 | branches: 13 | - main 14 | tags-ignore: 15 | - '**' 16 | paths-ignore: 17 | - '**/*.md' 18 | - LICENSE 19 | - '**/*.gitignore' 20 | - .editorconfig 21 | - docs/** 22 | pull_request: null 23 | 24 | jobs: 25 | build: 26 | if: "!contains(github.event.head_commit.message, 'skip ci')" 27 | 28 | strategy: 29 | fail-fast: false 30 | matrix: 31 | settings: 32 | - host: macos-latest 33 | target: 'x86_64-apple-darwin' 34 | build: | 35 | pnpm build --dir node 36 | strip -x node/*.node 37 | - host: windows-latest 38 | build: pnpm build --dir node 39 | target: 'x86_64-pc-windows-msvc' 40 | - host: windows-latest 41 | build: | 42 | export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=32; 43 | export CARGO_PROFILE_RELEASE_LTO=false 44 | pnpm build --dir node -- --target i686-pc-windows-msvc 45 | pnpm test:node 46 | target: 'i686-pc-windows-msvc' 47 | setup: | 48 | choco install nodejs-lts --x86 -y --force 49 | echo "C:\\Program Files (x86)\\nodejs" >> $GITHUB_PATH 50 | - host: ubuntu-latest 51 | target: 'x86_64-unknown-linux-gnu' 52 | docker: | 53 | docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian 54 | docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian builder 55 | build: | 56 | docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "npm install -g pnpm && pnpm install && pnpm build --dir node && strip node/speedy-sourcemap.linux-x64-gnu.node" 57 | - host: ubuntu-latest 58 | target: 'x86_64-unknown-linux-musl' 59 | docker: | 60 | docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine 61 | docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine builder 62 | build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "apk add --update cmake && pnpm install && pnpm build --dir node && strip node/speedy-sourcemap.linux-x64-musl.node" 63 | - host: macos-latest 64 | target: 'aarch64-apple-darwin' 65 | build: | 66 | sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*; 67 | export CC=$(xcrun -f clang); 68 | export CXX=$(xcrun -f clang++); 69 | SYSROOT=$(xcrun --sdk macosx --show-sdk-path); 70 | export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT"; 71 | pnpm build --dir node -- --target=aarch64-apple-darwin 72 | strip -x node/*.node 73 | - host: ubuntu-latest 74 | target: 'aarch64-unknown-linux-gnu' 75 | setup: | 76 | sudo apt-get update 77 | sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y 78 | build: | 79 | pnpm build --dir node -- --target=aarch64-unknown-linux-gnu 80 | aarch64-linux-gnu-strip node/speedy-sourcemap.linux-arm64-gnu.node 81 | - host: ubuntu-latest 82 | target: 'armv7-unknown-linux-gnueabihf' 83 | setup: | 84 | sudo apt-get update 85 | sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y 86 | build: | 87 | pnpm build --dir node -- --target=armv7-unknown-linux-gnueabihf 88 | arm-linux-gnueabihf-strip node/speedy-sourcemap.linux-arm-gnueabihf.node 89 | - host: ubuntu-latest 90 | target: 'aarch64-linux-android' 91 | build: | 92 | export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" 93 | export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" 94 | pnpm build --dir node -- --target aarch64-linux-android 95 | ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip node/*.node 96 | - host: ubuntu-latest 97 | target: 'armv7-linux-androideabi' 98 | build: | 99 | export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" 100 | export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" 101 | export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++" 102 | export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" 103 | pnpm build --dir node -- --target armv7-linux-androideabi 104 | ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip node/*.node 105 | - host: ubuntu-latest 106 | target: 'aarch64-unknown-linux-musl' 107 | docker: | 108 | docker pull ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine 109 | docker tag ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine builder 110 | build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/speedy-sourcemap -w /speedy-sourcemap builder sh -c "rustup target add aarch64-unknown-linux-musl && pnpm build --dir node -- --target=aarch64-unknown-linux-musl && /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip node/speedy-sourcemap.linux-arm64-musl.node" 111 | - host: windows-latest 112 | target: 'aarch64-pc-windows-msvc' 113 | build: pnpm build --dir node -- --target aarch64-pc-windows-msvc 114 | 115 | name: stable - ${{ matrix.settings.target }} - node@14 116 | runs-on: ${{ matrix.settings.host }} 117 | 118 | steps: 119 | - uses: actions/checkout@v2 120 | 121 | - name: Setup node 122 | uses: actions/setup-node@v2 123 | with: 124 | node-version: 14 125 | check-latest: true 126 | 127 | - name: Install pnpm 128 | run: npm install -g pnpm 129 | 130 | - name: Install 131 | uses: actions-rs/toolchain@v1 132 | with: 133 | profile: minimal 134 | override: true 135 | target: ${{ matrix.settings.target }} 136 | 137 | - name: Cache cargo 138 | uses: Swatinem/rust-cache@v1 139 | with: 140 | key: ${{ matrix.settings.target }}-node@14-cargo-cache 141 | 142 | - name: Cache NPM dependencies 143 | uses: actions/cache@v2 144 | with: 145 | path: ~/.pnpm-store 146 | key: npm-cache-${{ matrix.settings.target }}-node@14-${{ hashFiles('pnpm-lock.yaml') }} 147 | 148 | - name: Pull latest image 149 | run: ${{ matrix.settings.docker }} 150 | env: 151 | DOCKER_REGISTRY_URL: ghcr.io 152 | DOCKER_USERNAME: ${{ github.actor }} 153 | DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }} 154 | if: ${{ matrix.settings.docker }} 155 | 156 | - name: Setup toolchain 157 | run: ${{ matrix.settings.setup }} 158 | if: ${{ matrix.settings.setup }} 159 | shell: bash 160 | 161 | - name: 'Install dependencies' 162 | run: pnpm install --frozen-lockfile 163 | 164 | - name: 'Build' 165 | run: ${{ matrix.settings.build }} 166 | shell: bash 167 | 168 | - name: Upload artifact 169 | uses: actions/upload-artifact@v2 170 | with: 171 | name: bindings-${{ matrix.settings.target }} 172 | path: node/${{ env.APP_NAME }}.*.node 173 | 174 | test-macOS-windows-binding: 175 | name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} 176 | needs: 177 | - build 178 | strategy: 179 | fail-fast: false 180 | matrix: 181 | settings: 182 | - host: macos-latest 183 | target: 'x86_64-apple-darwin' 184 | - host: windows-latest 185 | target: 'x86_64-pc-windows-msvc' 186 | node: ['12', '14', '16'] 187 | runs-on: ${{ matrix.settings.host }} 188 | 189 | steps: 190 | - uses: actions/checkout@v2 191 | 192 | - name: Setup node 193 | uses: actions/setup-node@v2 194 | with: 195 | node-version: ${{ matrix.node }} 196 | check-latest: true 197 | 198 | - name: Install pnpm 199 | run: npm install -g pnpm 200 | 201 | - name: Cache NPM dependencies 202 | uses: actions/cache@v2 203 | with: 204 | path: ~/.pnpm-store 205 | key: npm-cache-test-${{ matrix.settings.target }}-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }} 206 | 207 | - name: 'Install dependencies' 208 | run: pnpm install --frozen-lockfile 209 | 210 | - name: Download artifacts 211 | uses: actions/download-artifact@v2 212 | with: 213 | name: bindings-${{ matrix.settings.target }} 214 | path: node 215 | 216 | - name: List packages 217 | run: ls -R . 218 | shell: bash 219 | 220 | - name: Test bindings 221 | run: pnpm test:node 222 | 223 | test-linux-x64-gnu-binding: 224 | name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} 225 | needs: 226 | - build 227 | strategy: 228 | fail-fast: false 229 | matrix: 230 | node: ['12', '14', '16'] 231 | runs-on: ubuntu-latest 232 | 233 | steps: 234 | - uses: actions/checkout@v2 235 | 236 | - name: Setup node 237 | uses: actions/setup-node@v2 238 | with: 239 | node-version: ${{ matrix.node }} 240 | check-latest: true 241 | 242 | - name: Download artifacts 243 | uses: actions/download-artifact@v2 244 | with: 245 | name: bindings-x86_64-unknown-linux-gnu 246 | path: node 247 | 248 | - name: List packages 249 | run: ls -R . 250 | shell: bash 251 | 252 | - name: Test bindings 253 | run: docker run --rm -v $(pwd):/${{ env.APP_NAME }} -w /${{ env.APP_NAME }} node:${{ matrix.node }}-slim sh -c "npm install -g pnpm && pnpm install && pnpm test:node" 254 | 255 | test-linux-x64-musl-binding: 256 | name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} 257 | needs: 258 | - build 259 | strategy: 260 | fail-fast: false 261 | matrix: 262 | node: ['12', '14', '16'] 263 | runs-on: ubuntu-latest 264 | 265 | steps: 266 | - uses: actions/checkout@v2 267 | 268 | - name: Setup node 269 | uses: actions/setup-node@v2 270 | with: 271 | node-version: ${{ matrix.node }} 272 | check-latest: true 273 | 274 | - name: Download artifacts 275 | uses: actions/download-artifact@v2 276 | with: 277 | name: bindings-x86_64-unknown-linux-musl 278 | path: node 279 | 280 | - name: List packages 281 | run: ls -R . 282 | shell: bash 283 | 284 | - name: Test bindings 285 | run: docker run --rm -v $(pwd):/${{ env.APP_NAME }} -w /${{ env.APP_NAME }} node:${{ matrix.node }}-alpine sh -c "npm install -g pnpm && pnpm install && pnpm test:node" 286 | 287 | test-linux-aarch64-gnu-binding: 288 | name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} 289 | needs: 290 | - build 291 | strategy: 292 | fail-fast: false 293 | matrix: 294 | node: ['12', '14', '16'] 295 | runs-on: ubuntu-latest 296 | 297 | steps: 298 | - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset 299 | 300 | - uses: actions/checkout@v2 301 | 302 | - name: Download artifacts 303 | uses: actions/download-artifact@v2 304 | with: 305 | name: bindings-aarch64-unknown-linux-gnu 306 | path: node 307 | 308 | - name: List packages 309 | run: ls -R . 310 | shell: bash 311 | 312 | - name: Setup and run tests 313 | uses: addnab/docker-run-action@v3 314 | with: 315 | image: ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }} 316 | options: -v ${{ github.workspace }}:/build -w /build 317 | run: | 318 | set -e 319 | npm install -g pnpm 320 | pnpm install --frozen-lockfile 321 | pnpm test:node 322 | ls -la 323 | 324 | test-linux-aarch64-musl-binding: 325 | name: Test bindings on aarch64-unknown-linux-musl - node@lts 326 | needs: 327 | - build 328 | 329 | runs-on: ubuntu-latest 330 | 331 | steps: 332 | - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset 333 | 334 | - uses: actions/checkout@v2 335 | 336 | - name: Download artifacts 337 | uses: actions/download-artifact@v2 338 | with: 339 | name: bindings-aarch64-unknown-linux-musl 340 | path: node 341 | 342 | - name: List packages 343 | run: ls -R . 344 | shell: bash 345 | 346 | - name: Setup and run tests 347 | uses: docker://multiarch/alpine:aarch64-latest-stable 348 | with: 349 | args: > 350 | sh -c " 351 | apk add nodejs npm && \ 352 | npm install -g pnpm && \ 353 | pnpm install --frozen-lockfile && \ 354 | pnpm test:node 355 | " 356 | 357 | test-linux-arm-gnueabihf-binding: 358 | name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} 359 | needs: 360 | - build 361 | strategy: 362 | fail-fast: false 363 | matrix: 364 | node: ['12', '14', '16'] 365 | runs-on: ubuntu-latest 366 | 367 | steps: 368 | - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset 369 | 370 | - uses: actions/checkout@v2 371 | 372 | - name: Download artifacts 373 | uses: actions/download-artifact@v2 374 | with: 375 | name: bindings-armv7-unknown-linux-gnueabihf 376 | path: node 377 | 378 | - name: List packages 379 | run: ls -R . 380 | shell: bash 381 | 382 | - name: Setup and run tests 383 | uses: addnab/docker-run-action@v3 384 | with: 385 | image: ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }} 386 | options: -v ${{ github.workspace }}:/build -w /build 387 | run: | 388 | set -e 389 | npm install -g pnpm 390 | pnpm install --frozen-lockfile 391 | pnpm test:node 392 | ls -la 393 | 394 | test-wasm: 395 | name: Test wasm on Linux-x64-gnu - node@${{ matrix.node }} 396 | strategy: 397 | fail-fast: false 398 | matrix: 399 | node: ['12', '14', '16'] 400 | runs-on: ubuntu-latest 401 | 402 | steps: 403 | - uses: actions/checkout@v2 404 | 405 | - name: Setup node 406 | uses: actions/setup-node@v2 407 | with: 408 | node-version: ${{ matrix.node }} 409 | check-latest: true 410 | 411 | - name: Install 412 | uses: actions-rs/toolchain@v1 413 | with: 414 | profile: minimal 415 | override: true 416 | 417 | - name: Cache cargo 418 | uses: Swatinem/rust-cache@v1 419 | with: 420 | key: ${{ matrix.settings.target }}-node@14-cargo-cache 421 | 422 | - name: 'Install wasm-pack' 423 | uses: jetli/wasm-pack-action@v0.3.0 424 | with: 425 | version: 'latest' 426 | 427 | - name: Install pnpm 428 | run: npm install -g pnpm 429 | 430 | - name: Install dependencies 431 | run: pnpm install --frozen-lockfile --registry https://registry.npm.taobao.org 432 | 433 | - name: List packages 434 | run: ls -R . 435 | shell: bash 436 | 437 | - name: Build and test wasm 438 | run: pnpm build --dir wasm && pnpm test:wasm 439 | 440 | publish: 441 | name: Publish 442 | runs-on: ubuntu-latest 443 | needs: 444 | - test-linux-x64-gnu-binding 445 | - test-linux-x64-musl-binding 446 | - test-linux-aarch64-gnu-binding 447 | - test-linux-arm-gnueabihf-binding 448 | - test-macOS-windows-binding 449 | - test-linux-aarch64-musl-binding 450 | 451 | steps: 452 | - uses: actions/checkout@v2 453 | 454 | - name: Setup node 455 | uses: actions/setup-node@v2 456 | with: 457 | node-version: 14 458 | check-latest: true 459 | 460 | - name: Install pnpm 461 | run: npm install -g pnpm 462 | 463 | - name: Cache NPM dependencies 464 | uses: actions/cache@v2 465 | with: 466 | path: ~/.pnpm-store 467 | key: npm-cache-ubuntu-latest-${{ hashFiles('pnpm-lock.yaml') }} 468 | 469 | - name: 'Install dependencies' 470 | run: pnpm install --frozen-lockfile 471 | 472 | - name: Download all artifacts 473 | uses: actions/download-artifact@v2 474 | with: 475 | path: artifacts 476 | 477 | - name: Move artifacts 478 | run: pnpm artifacts 479 | 480 | - name: List packages 481 | run: ls -R ./npm 482 | shell: bash 483 | 484 | - name: Publish 485 | if: "startsWith(github.event.head_commit.message, 'chore(release): publish')" 486 | run: | 487 | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc 488 | pnpm publish 489 | env: 490 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 491 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 492 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | importers: 4 | 5 | .: 6 | specifiers: 7 | '@napi-rs/cli': ^2.0.0 8 | '@swc-node/register': ^1.4.0 9 | '@types/mocha': ^9.0.0 10 | '@types/node': ^16.11.12 11 | chalk: ^4.1.2 12 | esbuild: ^0.14.2 13 | husky: ^7.0.4 14 | lint-staged: ^12.0.2 15 | mocha: ^9.1.3 16 | npm-run-all: ^4.1.5 17 | prettier: ^2.5.1 18 | typescript: ^4.4.4 19 | devDependencies: 20 | '@napi-rs/cli': 2.2.1 21 | '@swc-node/register': 1.4.2 22 | '@types/mocha': 9.0.0 23 | '@types/node': 16.11.17 24 | chalk: 4.1.2 25 | esbuild: 0.14.10 26 | husky: 7.0.4 27 | lint-staged: 12.1.5 28 | mocha: 9.1.3 29 | npm-run-all: 4.1.5 30 | prettier: 2.5.1 31 | typescript: 4.5.4 32 | 33 | benchmark: 34 | specifiers: 35 | '@types/benchmark': ^2.1.1 36 | benchmark: ^2.1.4 37 | dependencies: 38 | benchmark: 2.1.4 39 | devDependencies: 40 | '@types/benchmark': 2.1.1 41 | 42 | node: 43 | specifiers: {} 44 | 45 | packages: 46 | 47 | /@napi-rs/cli/2.2.1: 48 | resolution: {integrity: sha512-WExRk0aHesXcUPpTC104sn7M7rKJFfjngw532tdGyNU3xYfLU64x8aJEr1RFyLoM5wBpBPHufsa3ate/BxqJtA==} 49 | engines: {node: '>= 10'} 50 | hasBin: true 51 | dev: true 52 | 53 | /@napi-rs/triples/1.1.0: 54 | resolution: {integrity: sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==} 55 | dev: true 56 | 57 | /@node-rs/helper/1.3.0: 58 | resolution: {integrity: sha512-KPS0EBA1bXtf96IL7wr5bFHxhL2KCZ6kI/hkyLG7nzEq2cDq8pJhOhcJDOLXIPh5J2LEJ5eXyjDTWDFg5eRypw==} 59 | dependencies: 60 | '@napi-rs/triples': 1.1.0 61 | dev: true 62 | 63 | /@swc-node/core/1.8.2: 64 | resolution: {integrity: sha512-IoJ7tGHQ6JOMSmFe4VhP64uLmFKMNasS0QEgUrLFQ0h/dTvpQMynnoGBEJoPL6LfsebZ/q4uKqbpWrth6/yrAA==} 65 | engines: {node: '>= 10'} 66 | dependencies: 67 | '@swc/core': 1.2.126 68 | dev: true 69 | 70 | /@swc-node/register/1.4.2: 71 | resolution: {integrity: sha512-wLZz0J7BTO//1Eq7e4eBQjKF380Hr2eVemz849msQSKcVM1D7UJUt/dP2TinEVGx++/BXJ/0q37i6n9Iw0EM0w==} 72 | dependencies: 73 | '@swc-node/core': 1.8.2 74 | '@swc-node/sourcemap-support': 0.1.11 75 | chalk: 4.1.2 76 | debug: 4.3.3 77 | pirates: 4.0.4 78 | tslib: 2.3.1 79 | typescript: 4.5.4 80 | transitivePeerDependencies: 81 | - supports-color 82 | dev: true 83 | 84 | /@swc-node/sourcemap-support/0.1.11: 85 | resolution: {integrity: sha512-b+Mn3oQl+7nUSt7hPzIbY9B30YhcFo1PT4kd9P4QmD6raycmIealOAhAdZID/JevphzsOXHQB4OqJm7Yi5tMcA==} 86 | dependencies: 87 | source-map-support: 0.5.21 88 | dev: true 89 | 90 | /@swc/core-android-arm-eabi/1.2.126: 91 | resolution: {integrity: sha512-DQDB/NlaqCY3N73DBrObIMNWEJ7sxih0vnkzkMsLUdCDeMBO5bKCUfLwzbLg8JWPCCRcq+eL+Ll+6SeXwZm/kw==} 92 | engines: {node: '>=10'} 93 | cpu: [arm] 94 | os: [android] 95 | requiresBuild: true 96 | dev: true 97 | optional: true 98 | 99 | /@swc/core-android-arm64/1.2.126: 100 | resolution: {integrity: sha512-ILYqZyMzEQE7gw7GFU8NCZ+oDoE6KvnT0jCe0NqCsqPx8ovTElWiQo9qr1w2pkN0UnyQFtqlSRtaiqQfEdVbcg==} 101 | engines: {node: '>=10'} 102 | cpu: [arm64] 103 | os: [android] 104 | requiresBuild: true 105 | dev: true 106 | optional: true 107 | 108 | /@swc/core-darwin-arm64/1.2.126: 109 | resolution: {integrity: sha512-Plkg8nWc9IvBexESec08osYFMBz6rf9S2lZ0kxWEXvFggHr8pdZteOvDYkxO6OaesID4Ek1FEMJpgQB8a2RlkA==} 110 | engines: {node: '>=10'} 111 | cpu: [arm64] 112 | os: [darwin] 113 | requiresBuild: true 114 | dev: true 115 | optional: true 116 | 117 | /@swc/core-darwin-x64/1.2.126: 118 | resolution: {integrity: sha512-t7xH+SyN8xo4fy7KtATJOsOZwH7csh1vB5XoAfHHX61DXH4niNLeuA8WXuqzCNAdRbK+gbTzgJV+f3ULDiGDPg==} 119 | engines: {node: '>=10'} 120 | cpu: [x64] 121 | os: [darwin] 122 | requiresBuild: true 123 | dev: true 124 | optional: true 125 | 126 | /@swc/core-freebsd-x64/1.2.126: 127 | resolution: {integrity: sha512-us+Fendr4sIH1koLQ5wzAGysjLHV/ZTKqLrinY6XTleyrzXUPE7xPoX9eRpUcEbtER/6G557peW8c0eVDrWOYA==} 128 | engines: {node: '>=10'} 129 | cpu: [x64] 130 | os: [freebsd] 131 | requiresBuild: true 132 | dev: true 133 | optional: true 134 | 135 | /@swc/core-linux-arm-gnueabihf/1.2.126: 136 | resolution: {integrity: sha512-wx9+7mpkAkaSgpVIOhXZfx0rCscr0rQuOwLXdbWtvsPRyxPRRVlX2Ic4dhiGJUIi2ecizDhty+8/YNj1dC063Q==} 137 | engines: {node: '>=10'} 138 | cpu: [arm] 139 | os: [linux] 140 | requiresBuild: true 141 | dev: true 142 | optional: true 143 | 144 | /@swc/core-linux-arm64-gnu/1.2.126: 145 | resolution: {integrity: sha512-rhW5pn+FVNrIDQExv4VjRGGDu+lQRu5I4d7S8dsA5wnX7NBBvvIP3Go2CZ9/hzrxwfDNrfhrIlXNSvlC4+e30A==} 146 | engines: {node: '>=10'} 147 | cpu: [arm64] 148 | os: [linux] 149 | requiresBuild: true 150 | dev: true 151 | optional: true 152 | 153 | /@swc/core-linux-arm64-musl/1.2.126: 154 | resolution: {integrity: sha512-QQMFQgvzB3zuamWE63Bwi+/vp1iXzFsJj0VZYTu+K1mTZNeFHv7wEOANraf0v/+7PpYgcpWyND0marIazz3Vzw==} 155 | engines: {node: '>=10'} 156 | cpu: [arm64] 157 | os: [linux] 158 | requiresBuild: true 159 | dev: true 160 | optional: true 161 | 162 | /@swc/core-linux-x64-gnu/1.2.126: 163 | resolution: {integrity: sha512-Ill/37sHQk/Szo2wYs1Oy+XHkQ2Um/XtKwJ6jYtKTwT/OyoHRJ6wlyFXfsqX1n+LKpFbvuss+LWze/yN6rWvEQ==} 164 | engines: {node: '>=10'} 165 | cpu: [x64] 166 | os: [linux] 167 | requiresBuild: true 168 | dev: true 169 | optional: true 170 | 171 | /@swc/core-linux-x64-musl/1.2.126: 172 | resolution: {integrity: sha512-NGgJcS3nDv8iifuHwzdPk23BuYPDG4kl9v1etoSH1PbIu6c0UVMz5AAzVulng1zw5+EXXzKmQxPbkH1WA20hsQ==} 173 | engines: {node: '>=10'} 174 | cpu: [x64] 175 | os: [linux] 176 | requiresBuild: true 177 | dev: true 178 | optional: true 179 | 180 | /@swc/core-win32-arm64-msvc/1.2.126: 181 | resolution: {integrity: sha512-zyIzcg6IGVojZxUNhohKrOA1qqCCwe7mKjIqffqmdFFlA2hZL441U2IQWoE12KhI4BvM6W9fpYGViIju57E/0A==} 182 | engines: {node: '>=10'} 183 | cpu: [arm64] 184 | os: [win32] 185 | requiresBuild: true 186 | dev: true 187 | optional: true 188 | 189 | /@swc/core-win32-ia32-msvc/1.2.126: 190 | resolution: {integrity: sha512-nIwiKf8R3E55JLwhzdFfK/OgxDAqM6zSF3DusZkQ2agn/UlQ44OvMgfuR8Kp7mUZXqtZ84oVQzq+anksPOoNww==} 191 | engines: {node: '>=10'} 192 | cpu: [ia32] 193 | os: [win32] 194 | requiresBuild: true 195 | dev: true 196 | optional: true 197 | 198 | /@swc/core-win32-x64-msvc/1.2.126: 199 | resolution: {integrity: sha512-V1oIOelVUMZRq5ZY9p3jj+XqLYCvE+R/GnWq21hLamXbfhWbDi3v+Jmd14iIfQqCm73Qi8nM0hTtOdO7ENbnQQ==} 200 | engines: {node: '>=10'} 201 | cpu: [x64] 202 | os: [win32] 203 | requiresBuild: true 204 | dev: true 205 | optional: true 206 | 207 | /@swc/core/1.2.126: 208 | resolution: {integrity: sha512-x6X5X7eXP4Nxb3sRfZwglPcmkepHatihEhLViPhCLuZYA073eFeS9SCCkPLhVQ+80xuT9Wy+jI+aNvkFk6WYgA==} 209 | engines: {node: '>=10'} 210 | dependencies: 211 | '@node-rs/helper': 1.3.0 212 | optionalDependencies: 213 | '@swc/core-android-arm-eabi': 1.2.126 214 | '@swc/core-android-arm64': 1.2.126 215 | '@swc/core-darwin-arm64': 1.2.126 216 | '@swc/core-darwin-x64': 1.2.126 217 | '@swc/core-freebsd-x64': 1.2.126 218 | '@swc/core-linux-arm-gnueabihf': 1.2.126 219 | '@swc/core-linux-arm64-gnu': 1.2.126 220 | '@swc/core-linux-arm64-musl': 1.2.126 221 | '@swc/core-linux-x64-gnu': 1.2.126 222 | '@swc/core-linux-x64-musl': 1.2.126 223 | '@swc/core-win32-arm64-msvc': 1.2.126 224 | '@swc/core-win32-ia32-msvc': 1.2.126 225 | '@swc/core-win32-x64-msvc': 1.2.126 226 | dev: true 227 | 228 | /@types/benchmark/2.1.1: 229 | resolution: {integrity: sha512-XmdNOarpSSxnb3DE2rRFOFsEyoqXLUL+7H8nSGS25vs+JS0018bd+cW5Ma9vdlkPmoTHSQ6e8EUFMFMxeE4l+g==} 230 | dev: true 231 | 232 | /@types/mocha/9.0.0: 233 | resolution: {integrity: sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==} 234 | dev: true 235 | 236 | /@types/node/16.11.17: 237 | resolution: {integrity: sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==} 238 | dev: true 239 | 240 | /@ungap/promise-all-settled/1.1.2: 241 | resolution: {integrity: sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=} 242 | dev: true 243 | 244 | /aggregate-error/3.1.0: 245 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 246 | engines: {node: '>=8'} 247 | dependencies: 248 | clean-stack: 2.2.0 249 | indent-string: 4.0.0 250 | dev: true 251 | 252 | /ansi-colors/4.1.1: 253 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} 254 | engines: {node: '>=6'} 255 | dev: true 256 | 257 | /ansi-escapes/4.3.2: 258 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 259 | engines: {node: '>=8'} 260 | dependencies: 261 | type-fest: 0.21.3 262 | dev: true 263 | 264 | /ansi-regex/5.0.1: 265 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 266 | engines: {node: '>=8'} 267 | dev: true 268 | 269 | /ansi-regex/6.0.1: 270 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 271 | engines: {node: '>=12'} 272 | dev: true 273 | 274 | /ansi-styles/3.2.1: 275 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 276 | engines: {node: '>=4'} 277 | dependencies: 278 | color-convert: 1.9.3 279 | dev: true 280 | 281 | /ansi-styles/4.3.0: 282 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 283 | engines: {node: '>=8'} 284 | dependencies: 285 | color-convert: 2.0.1 286 | dev: true 287 | 288 | /ansi-styles/6.1.0: 289 | resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} 290 | engines: {node: '>=12'} 291 | dev: true 292 | 293 | /anymatch/3.1.2: 294 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 295 | engines: {node: '>= 8'} 296 | dependencies: 297 | normalize-path: 3.0.0 298 | picomatch: 2.3.1 299 | dev: true 300 | 301 | /argparse/2.0.1: 302 | resolution: {integrity: sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=} 303 | dev: true 304 | 305 | /astral-regex/2.0.0: 306 | resolution: {integrity: sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=} 307 | engines: {node: '>=8'} 308 | dev: true 309 | 310 | /balanced-match/1.0.2: 311 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 312 | dev: true 313 | 314 | /benchmark/2.1.4: 315 | resolution: {integrity: sha1-CfPeMckWQl1JjMLuVloOvzwqVik=} 316 | dependencies: 317 | lodash: 4.17.21 318 | platform: 1.3.6 319 | dev: false 320 | 321 | /binary-extensions/2.2.0: 322 | resolution: {integrity: sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=} 323 | engines: {node: '>=8'} 324 | dev: true 325 | 326 | /brace-expansion/1.1.11: 327 | resolution: {integrity: sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=} 328 | dependencies: 329 | balanced-match: 1.0.2 330 | concat-map: 0.0.1 331 | dev: true 332 | 333 | /braces/3.0.2: 334 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 335 | engines: {node: '>=8'} 336 | dependencies: 337 | fill-range: 7.0.1 338 | dev: true 339 | 340 | /browser-stdout/1.3.1: 341 | resolution: {integrity: sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=} 342 | dev: true 343 | 344 | /buffer-from/1.1.2: 345 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 346 | dev: true 347 | 348 | /call-bind/1.0.2: 349 | resolution: {integrity: sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=} 350 | dependencies: 351 | function-bind: 1.1.1 352 | get-intrinsic: 1.1.1 353 | dev: true 354 | 355 | /camelcase/6.3.0: 356 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 357 | engines: {node: '>=10'} 358 | dev: true 359 | 360 | /chalk/2.4.2: 361 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 362 | engines: {node: '>=4'} 363 | dependencies: 364 | ansi-styles: 3.2.1 365 | escape-string-regexp: 1.0.5 366 | supports-color: 5.5.0 367 | dev: true 368 | 369 | /chalk/4.1.2: 370 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 371 | engines: {node: '>=10'} 372 | dependencies: 373 | ansi-styles: 4.3.0 374 | supports-color: 7.2.0 375 | dev: true 376 | 377 | /chokidar/3.5.2: 378 | resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} 379 | engines: {node: '>= 8.10.0'} 380 | dependencies: 381 | anymatch: 3.1.2 382 | braces: 3.0.2 383 | glob-parent: 5.1.2 384 | is-binary-path: 2.1.0 385 | is-glob: 4.0.3 386 | normalize-path: 3.0.0 387 | readdirp: 3.6.0 388 | optionalDependencies: 389 | fsevents: 2.3.2 390 | dev: true 391 | 392 | /clean-stack/2.2.0: 393 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 394 | engines: {node: '>=6'} 395 | dev: true 396 | 397 | /cli-cursor/3.1.0: 398 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 399 | engines: {node: '>=8'} 400 | dependencies: 401 | restore-cursor: 3.1.0 402 | dev: true 403 | 404 | /cli-truncate/2.1.0: 405 | resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} 406 | engines: {node: '>=8'} 407 | dependencies: 408 | slice-ansi: 3.0.0 409 | string-width: 4.2.3 410 | dev: true 411 | 412 | /cli-truncate/3.1.0: 413 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 414 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 415 | dependencies: 416 | slice-ansi: 5.0.0 417 | string-width: 5.0.1 418 | dev: true 419 | 420 | /cliui/7.0.4: 421 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 422 | dependencies: 423 | string-width: 4.2.3 424 | strip-ansi: 6.0.1 425 | wrap-ansi: 7.0.0 426 | dev: true 427 | 428 | /color-convert/1.9.3: 429 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 430 | dependencies: 431 | color-name: 1.1.3 432 | dev: true 433 | 434 | /color-convert/2.0.1: 435 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 436 | engines: {node: '>=7.0.0'} 437 | dependencies: 438 | color-name: 1.1.4 439 | dev: true 440 | 441 | /color-name/1.1.3: 442 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 443 | dev: true 444 | 445 | /color-name/1.1.4: 446 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 447 | dev: true 448 | 449 | /colorette/2.0.16: 450 | resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} 451 | dev: true 452 | 453 | /commander/8.3.0: 454 | resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} 455 | engines: {node: '>= 12'} 456 | dev: true 457 | 458 | /concat-map/0.0.1: 459 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 460 | dev: true 461 | 462 | /cross-spawn/6.0.5: 463 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 464 | engines: {node: '>=4.8'} 465 | dependencies: 466 | nice-try: 1.0.5 467 | path-key: 2.0.1 468 | semver: 5.7.1 469 | shebang-command: 1.2.0 470 | which: 1.3.1 471 | dev: true 472 | 473 | /cross-spawn/7.0.3: 474 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 475 | engines: {node: '>= 8'} 476 | dependencies: 477 | path-key: 3.1.1 478 | shebang-command: 2.0.0 479 | which: 2.0.2 480 | dev: true 481 | 482 | /debug/4.3.2_supports-color@8.1.1: 483 | resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} 484 | engines: {node: '>=6.0'} 485 | peerDependencies: 486 | supports-color: '*' 487 | peerDependenciesMeta: 488 | supports-color: 489 | optional: true 490 | dependencies: 491 | ms: 2.1.2 492 | supports-color: 8.1.1 493 | dev: true 494 | 495 | /debug/4.3.3: 496 | resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} 497 | engines: {node: '>=6.0'} 498 | peerDependencies: 499 | supports-color: '*' 500 | peerDependenciesMeta: 501 | supports-color: 502 | optional: true 503 | dependencies: 504 | ms: 2.1.2 505 | dev: true 506 | 507 | /debug/4.3.3_supports-color@9.2.1: 508 | resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} 509 | engines: {node: '>=6.0'} 510 | peerDependencies: 511 | supports-color: '*' 512 | peerDependenciesMeta: 513 | supports-color: 514 | optional: true 515 | dependencies: 516 | ms: 2.1.2 517 | supports-color: 9.2.1 518 | dev: true 519 | 520 | /decamelize/4.0.0: 521 | resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} 522 | engines: {node: '>=10'} 523 | dev: true 524 | 525 | /define-properties/1.1.3: 526 | resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} 527 | engines: {node: '>= 0.4'} 528 | dependencies: 529 | object-keys: 1.1.1 530 | dev: true 531 | 532 | /diff/5.0.0: 533 | resolution: {integrity: sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=} 534 | engines: {node: '>=0.3.1'} 535 | dev: true 536 | 537 | /emoji-regex/8.0.0: 538 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 539 | dev: true 540 | 541 | /emoji-regex/9.2.2: 542 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 543 | dev: true 544 | 545 | /error-ex/1.3.2: 546 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 547 | dependencies: 548 | is-arrayish: 0.2.1 549 | dev: true 550 | 551 | /es-abstract/1.19.1: 552 | resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} 553 | engines: {node: '>= 0.4'} 554 | dependencies: 555 | call-bind: 1.0.2 556 | es-to-primitive: 1.2.1 557 | function-bind: 1.1.1 558 | get-intrinsic: 1.1.1 559 | get-symbol-description: 1.0.0 560 | has: 1.0.3 561 | has-symbols: 1.0.2 562 | internal-slot: 1.0.3 563 | is-callable: 1.2.4 564 | is-negative-zero: 2.0.2 565 | is-regex: 1.1.4 566 | is-shared-array-buffer: 1.0.1 567 | is-string: 1.0.7 568 | is-weakref: 1.0.2 569 | object-inspect: 1.12.0 570 | object-keys: 1.1.1 571 | object.assign: 4.1.2 572 | string.prototype.trimend: 1.0.4 573 | string.prototype.trimstart: 1.0.4 574 | unbox-primitive: 1.0.1 575 | dev: true 576 | 577 | /es-to-primitive/1.2.1: 578 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 579 | engines: {node: '>= 0.4'} 580 | dependencies: 581 | is-callable: 1.2.4 582 | is-date-object: 1.0.5 583 | is-symbol: 1.0.4 584 | dev: true 585 | 586 | /esbuild-darwin-64/0.14.10: 587 | resolution: {integrity: sha512-DJwzFVB95ZV7C3PQbf052WqaUuuMFXJeZJ0LKdnP1w+QOU0rlbKfX0tzuhoS//rOXUj1TFIwRuRsd0FX6skR7A==} 588 | cpu: [x64] 589 | os: [darwin] 590 | requiresBuild: true 591 | dev: true 592 | optional: true 593 | 594 | /esbuild/0.14.10: 595 | resolution: {integrity: sha512-ibZb+NwFqBwHHJlpnFMtg4aNmVK+LUtYMFC9CuKs6lDCBEvCHpqCFZFEirpqt1jOugwKGx8gALNGvX56lQyfew==} 596 | hasBin: true 597 | requiresBuild: true 598 | optionalDependencies: 599 | esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.14.10 600 | esbuild-darwin-64: 0.14.10 601 | esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.14.10 602 | esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.14.10 603 | esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.14.10 604 | esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.14.10 605 | esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.14.10 606 | esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.14.10 607 | esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.14.10 608 | esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.14.10 609 | esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.14.10 610 | esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.14.10 611 | esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.14.10 612 | esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.14.10 613 | esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.14.10 614 | esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.14.10 615 | esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.14.10 616 | esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.10 617 | dev: true 618 | 619 | /escalade/3.1.1: 620 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 621 | engines: {node: '>=6'} 622 | dev: true 623 | 624 | /escape-string-regexp/1.0.5: 625 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 626 | engines: {node: '>=0.8.0'} 627 | dev: true 628 | 629 | /escape-string-regexp/4.0.0: 630 | resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=} 631 | engines: {node: '>=10'} 632 | dev: true 633 | 634 | /execa/5.1.1: 635 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 636 | engines: {node: '>=10'} 637 | dependencies: 638 | cross-spawn: 7.0.3 639 | get-stream: 6.0.1 640 | human-signals: 2.1.0 641 | is-stream: 2.0.1 642 | merge-stream: 2.0.0 643 | npm-run-path: 4.0.1 644 | onetime: 5.1.2 645 | signal-exit: 3.0.6 646 | strip-final-newline: 2.0.0 647 | dev: true 648 | 649 | /fill-range/7.0.1: 650 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 651 | engines: {node: '>=8'} 652 | dependencies: 653 | to-regex-range: 5.0.1 654 | dev: true 655 | 656 | /find-up/5.0.0: 657 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 658 | engines: {node: '>=10'} 659 | dependencies: 660 | locate-path: 6.0.0 661 | path-exists: 4.0.0 662 | dev: true 663 | 664 | /flat/5.0.2: 665 | resolution: {integrity: sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=} 666 | hasBin: true 667 | dev: true 668 | 669 | /fs.realpath/1.0.0: 670 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 671 | dev: true 672 | 673 | /fsevents/2.3.2: 674 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 675 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 676 | os: [darwin] 677 | requiresBuild: true 678 | dev: true 679 | optional: true 680 | 681 | /function-bind/1.1.1: 682 | resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=} 683 | dev: true 684 | 685 | /get-caller-file/2.0.5: 686 | resolution: {integrity: sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=} 687 | engines: {node: 6.* || 8.* || >= 10.*} 688 | dev: true 689 | 690 | /get-intrinsic/1.1.1: 691 | resolution: {integrity: sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=} 692 | dependencies: 693 | function-bind: 1.1.1 694 | has: 1.0.3 695 | has-symbols: 1.0.2 696 | dev: true 697 | 698 | /get-stream/6.0.1: 699 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 700 | engines: {node: '>=10'} 701 | dev: true 702 | 703 | /get-symbol-description/1.0.0: 704 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 705 | engines: {node: '>= 0.4'} 706 | dependencies: 707 | call-bind: 1.0.2 708 | get-intrinsic: 1.1.1 709 | dev: true 710 | 711 | /glob-parent/5.1.2: 712 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 713 | engines: {node: '>= 6'} 714 | dependencies: 715 | is-glob: 4.0.3 716 | dev: true 717 | 718 | /glob/7.1.7: 719 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 720 | dependencies: 721 | fs.realpath: 1.0.0 722 | inflight: 1.0.6 723 | inherits: 2.0.4 724 | minimatch: 3.0.4 725 | once: 1.4.0 726 | path-is-absolute: 1.0.1 727 | dev: true 728 | 729 | /graceful-fs/4.2.8: 730 | resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} 731 | dev: true 732 | 733 | /growl/1.10.5: 734 | resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} 735 | engines: {node: '>=4.x'} 736 | dev: true 737 | 738 | /has-bigints/1.0.1: 739 | resolution: {integrity: sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=} 740 | dev: true 741 | 742 | /has-flag/3.0.0: 743 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 744 | engines: {node: '>=4'} 745 | dev: true 746 | 747 | /has-flag/4.0.0: 748 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 749 | engines: {node: '>=8'} 750 | dev: true 751 | 752 | /has-symbols/1.0.2: 753 | resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=} 754 | engines: {node: '>= 0.4'} 755 | dev: true 756 | 757 | /has-tostringtag/1.0.0: 758 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 759 | engines: {node: '>= 0.4'} 760 | dependencies: 761 | has-symbols: 1.0.2 762 | dev: true 763 | 764 | /has/1.0.3: 765 | resolution: {integrity: sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=} 766 | engines: {node: '>= 0.4.0'} 767 | dependencies: 768 | function-bind: 1.1.1 769 | dev: true 770 | 771 | /he/1.2.0: 772 | resolution: {integrity: sha1-hK5l+n6vsWX922FWauFLrwVmTw8=} 773 | hasBin: true 774 | dev: true 775 | 776 | /hosted-git-info/2.8.9: 777 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 778 | dev: true 779 | 780 | /human-signals/2.1.0: 781 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 782 | engines: {node: '>=10.17.0'} 783 | dev: true 784 | 785 | /husky/7.0.4: 786 | resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} 787 | engines: {node: '>=12'} 788 | hasBin: true 789 | dev: true 790 | 791 | /indent-string/4.0.0: 792 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 793 | engines: {node: '>=8'} 794 | dev: true 795 | 796 | /inflight/1.0.6: 797 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 798 | dependencies: 799 | once: 1.4.0 800 | wrappy: 1.0.2 801 | dev: true 802 | 803 | /inherits/2.0.4: 804 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 805 | dev: true 806 | 807 | /internal-slot/1.0.3: 808 | resolution: {integrity: sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=} 809 | engines: {node: '>= 0.4'} 810 | dependencies: 811 | get-intrinsic: 1.1.1 812 | has: 1.0.3 813 | side-channel: 1.0.4 814 | dev: true 815 | 816 | /is-arrayish/0.2.1: 817 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 818 | dev: true 819 | 820 | /is-bigint/1.0.4: 821 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 822 | dependencies: 823 | has-bigints: 1.0.1 824 | dev: true 825 | 826 | /is-binary-path/2.1.0: 827 | resolution: {integrity: sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=} 828 | engines: {node: '>=8'} 829 | dependencies: 830 | binary-extensions: 2.2.0 831 | dev: true 832 | 833 | /is-boolean-object/1.1.2: 834 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 835 | engines: {node: '>= 0.4'} 836 | dependencies: 837 | call-bind: 1.0.2 838 | has-tostringtag: 1.0.0 839 | dev: true 840 | 841 | /is-callable/1.2.4: 842 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 843 | engines: {node: '>= 0.4'} 844 | dev: true 845 | 846 | /is-core-module/2.8.0: 847 | resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} 848 | dependencies: 849 | has: 1.0.3 850 | dev: true 851 | 852 | /is-date-object/1.0.5: 853 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 854 | engines: {node: '>= 0.4'} 855 | dependencies: 856 | has-tostringtag: 1.0.0 857 | dev: true 858 | 859 | /is-extglob/2.1.1: 860 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 861 | engines: {node: '>=0.10.0'} 862 | dev: true 863 | 864 | /is-fullwidth-code-point/3.0.0: 865 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 866 | engines: {node: '>=8'} 867 | dev: true 868 | 869 | /is-fullwidth-code-point/4.0.0: 870 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 871 | engines: {node: '>=12'} 872 | dev: true 873 | 874 | /is-glob/4.0.3: 875 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 876 | engines: {node: '>=0.10.0'} 877 | dependencies: 878 | is-extglob: 2.1.1 879 | dev: true 880 | 881 | /is-negative-zero/2.0.2: 882 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 883 | engines: {node: '>= 0.4'} 884 | dev: true 885 | 886 | /is-number-object/1.0.6: 887 | resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} 888 | engines: {node: '>= 0.4'} 889 | dependencies: 890 | has-tostringtag: 1.0.0 891 | dev: true 892 | 893 | /is-number/7.0.0: 894 | resolution: {integrity: sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=} 895 | engines: {node: '>=0.12.0'} 896 | dev: true 897 | 898 | /is-plain-obj/2.1.0: 899 | resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} 900 | engines: {node: '>=8'} 901 | dev: true 902 | 903 | /is-regex/1.1.4: 904 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 905 | engines: {node: '>= 0.4'} 906 | dependencies: 907 | call-bind: 1.0.2 908 | has-tostringtag: 1.0.0 909 | dev: true 910 | 911 | /is-shared-array-buffer/1.0.1: 912 | resolution: {integrity: sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=} 913 | dev: true 914 | 915 | /is-stream/2.0.1: 916 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 917 | engines: {node: '>=8'} 918 | dev: true 919 | 920 | /is-string/1.0.7: 921 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 922 | engines: {node: '>= 0.4'} 923 | dependencies: 924 | has-tostringtag: 1.0.0 925 | dev: true 926 | 927 | /is-symbol/1.0.4: 928 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 929 | engines: {node: '>= 0.4'} 930 | dependencies: 931 | has-symbols: 1.0.2 932 | dev: true 933 | 934 | /is-unicode-supported/0.1.0: 935 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 936 | engines: {node: '>=10'} 937 | dev: true 938 | 939 | /is-weakref/1.0.2: 940 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 941 | dependencies: 942 | call-bind: 1.0.2 943 | dev: true 944 | 945 | /isexe/2.0.0: 946 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 947 | dev: true 948 | 949 | /js-yaml/4.1.0: 950 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 951 | hasBin: true 952 | dependencies: 953 | argparse: 2.0.1 954 | dev: true 955 | 956 | /json-parse-better-errors/1.0.2: 957 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 958 | dev: true 959 | 960 | /lilconfig/2.0.4: 961 | resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} 962 | engines: {node: '>=10'} 963 | dev: true 964 | 965 | /lint-staged/12.1.5: 966 | resolution: {integrity: sha512-WyKb+0sNKDTd1LwwAfTBPp0XmdaKkAOEbg4oHE4Kq2+oQVchg/VAcjVQtSqZih1izNsTURjc2EkhG/syRQUXdA==} 967 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 968 | hasBin: true 969 | dependencies: 970 | cli-truncate: 3.1.0 971 | colorette: 2.0.16 972 | commander: 8.3.0 973 | debug: 4.3.3_supports-color@9.2.1 974 | execa: 5.1.1 975 | lilconfig: 2.0.4 976 | listr2: 3.14.0 977 | micromatch: 4.0.4 978 | normalize-path: 3.0.0 979 | object-inspect: 1.12.0 980 | string-argv: 0.3.1 981 | supports-color: 9.2.1 982 | yaml: 1.10.2 983 | transitivePeerDependencies: 984 | - enquirer 985 | dev: true 986 | 987 | /listr2/3.14.0: 988 | resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} 989 | engines: {node: '>=10.0.0'} 990 | peerDependencies: 991 | enquirer: '>= 2.3.0 < 3' 992 | peerDependenciesMeta: 993 | enquirer: 994 | optional: true 995 | dependencies: 996 | cli-truncate: 2.1.0 997 | colorette: 2.0.16 998 | log-update: 4.0.0 999 | p-map: 4.0.0 1000 | rfdc: 1.3.0 1001 | rxjs: 7.5.1 1002 | through: 2.3.8 1003 | wrap-ansi: 7.0.0 1004 | dev: true 1005 | 1006 | /load-json-file/4.0.0: 1007 | resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} 1008 | engines: {node: '>=4'} 1009 | dependencies: 1010 | graceful-fs: 4.2.8 1011 | parse-json: 4.0.0 1012 | pify: 3.0.0 1013 | strip-bom: 3.0.0 1014 | dev: true 1015 | 1016 | /locate-path/6.0.0: 1017 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1018 | engines: {node: '>=10'} 1019 | dependencies: 1020 | p-locate: 5.0.0 1021 | dev: true 1022 | 1023 | /lodash/4.17.21: 1024 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1025 | dev: false 1026 | 1027 | /log-symbols/4.1.0: 1028 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1029 | engines: {node: '>=10'} 1030 | dependencies: 1031 | chalk: 4.1.2 1032 | is-unicode-supported: 0.1.0 1033 | dev: true 1034 | 1035 | /log-update/4.0.0: 1036 | resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} 1037 | engines: {node: '>=10'} 1038 | dependencies: 1039 | ansi-escapes: 4.3.2 1040 | cli-cursor: 3.1.0 1041 | slice-ansi: 4.0.0 1042 | wrap-ansi: 6.2.0 1043 | dev: true 1044 | 1045 | /memorystream/0.3.1: 1046 | resolution: {integrity: sha1-htcJCzDORV1j+64S3aUaR93K+bI=} 1047 | engines: {node: '>= 0.10.0'} 1048 | dev: true 1049 | 1050 | /merge-stream/2.0.0: 1051 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1052 | dev: true 1053 | 1054 | /micromatch/4.0.4: 1055 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 1056 | engines: {node: '>=8.6'} 1057 | dependencies: 1058 | braces: 3.0.2 1059 | picomatch: 2.3.1 1060 | dev: true 1061 | 1062 | /mimic-fn/2.1.0: 1063 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1064 | engines: {node: '>=6'} 1065 | dev: true 1066 | 1067 | /minimatch/3.0.4: 1068 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 1069 | dependencies: 1070 | brace-expansion: 1.1.11 1071 | dev: true 1072 | 1073 | /mocha/9.1.3: 1074 | resolution: {integrity: sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==} 1075 | engines: {node: '>= 12.0.0'} 1076 | hasBin: true 1077 | dependencies: 1078 | '@ungap/promise-all-settled': 1.1.2 1079 | ansi-colors: 4.1.1 1080 | browser-stdout: 1.3.1 1081 | chokidar: 3.5.2 1082 | debug: 4.3.2_supports-color@8.1.1 1083 | diff: 5.0.0 1084 | escape-string-regexp: 4.0.0 1085 | find-up: 5.0.0 1086 | glob: 7.1.7 1087 | growl: 1.10.5 1088 | he: 1.2.0 1089 | js-yaml: 4.1.0 1090 | log-symbols: 4.1.0 1091 | minimatch: 3.0.4 1092 | ms: 2.1.3 1093 | nanoid: 3.1.25 1094 | serialize-javascript: 6.0.0 1095 | strip-json-comments: 3.1.1 1096 | supports-color: 8.1.1 1097 | which: 2.0.2 1098 | workerpool: 6.1.5 1099 | yargs: 16.2.0 1100 | yargs-parser: 20.2.4 1101 | yargs-unparser: 2.0.0 1102 | dev: true 1103 | 1104 | /ms/2.1.2: 1105 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1106 | dev: true 1107 | 1108 | /ms/2.1.3: 1109 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1110 | dev: true 1111 | 1112 | /nanoid/3.1.25: 1113 | resolution: {integrity: sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==} 1114 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1115 | hasBin: true 1116 | dev: true 1117 | 1118 | /nice-try/1.0.5: 1119 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1120 | dev: true 1121 | 1122 | /normalize-package-data/2.5.0: 1123 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1124 | dependencies: 1125 | hosted-git-info: 2.8.9 1126 | resolve: 1.21.0 1127 | semver: 5.7.1 1128 | validate-npm-package-license: 3.0.4 1129 | dev: true 1130 | 1131 | /normalize-path/3.0.0: 1132 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1133 | engines: {node: '>=0.10.0'} 1134 | dev: true 1135 | 1136 | /npm-run-all/4.1.5: 1137 | resolution: {integrity: sha1-BEdiAqFe4OLiFAgIYb/xKlHZj7o=} 1138 | engines: {node: '>= 4'} 1139 | hasBin: true 1140 | dependencies: 1141 | ansi-styles: 3.2.1 1142 | chalk: 2.4.2 1143 | cross-spawn: 6.0.5 1144 | memorystream: 0.3.1 1145 | minimatch: 3.0.4 1146 | pidtree: 0.3.1 1147 | read-pkg: 3.0.0 1148 | shell-quote: 1.7.3 1149 | string.prototype.padend: 3.1.3 1150 | dev: true 1151 | 1152 | /npm-run-path/4.0.1: 1153 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1154 | engines: {node: '>=8'} 1155 | dependencies: 1156 | path-key: 3.1.1 1157 | dev: true 1158 | 1159 | /object-inspect/1.12.0: 1160 | resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} 1161 | dev: true 1162 | 1163 | /object-keys/1.1.1: 1164 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1165 | engines: {node: '>= 0.4'} 1166 | dev: true 1167 | 1168 | /object.assign/4.1.2: 1169 | resolution: {integrity: sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=} 1170 | engines: {node: '>= 0.4'} 1171 | dependencies: 1172 | call-bind: 1.0.2 1173 | define-properties: 1.1.3 1174 | has-symbols: 1.0.2 1175 | object-keys: 1.1.1 1176 | dev: true 1177 | 1178 | /once/1.4.0: 1179 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 1180 | dependencies: 1181 | wrappy: 1.0.2 1182 | dev: true 1183 | 1184 | /onetime/5.1.2: 1185 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1186 | engines: {node: '>=6'} 1187 | dependencies: 1188 | mimic-fn: 2.1.0 1189 | dev: true 1190 | 1191 | /p-limit/3.1.0: 1192 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1193 | engines: {node: '>=10'} 1194 | dependencies: 1195 | yocto-queue: 0.1.0 1196 | dev: true 1197 | 1198 | /p-locate/5.0.0: 1199 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1200 | engines: {node: '>=10'} 1201 | dependencies: 1202 | p-limit: 3.1.0 1203 | dev: true 1204 | 1205 | /p-map/4.0.0: 1206 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 1207 | engines: {node: '>=10'} 1208 | dependencies: 1209 | aggregate-error: 3.1.0 1210 | dev: true 1211 | 1212 | /parse-json/4.0.0: 1213 | resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} 1214 | engines: {node: '>=4'} 1215 | dependencies: 1216 | error-ex: 1.3.2 1217 | json-parse-better-errors: 1.0.2 1218 | dev: true 1219 | 1220 | /path-exists/4.0.0: 1221 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1222 | engines: {node: '>=8'} 1223 | dev: true 1224 | 1225 | /path-is-absolute/1.0.1: 1226 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 1227 | engines: {node: '>=0.10.0'} 1228 | dev: true 1229 | 1230 | /path-key/2.0.1: 1231 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} 1232 | engines: {node: '>=4'} 1233 | dev: true 1234 | 1235 | /path-key/3.1.1: 1236 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1237 | engines: {node: '>=8'} 1238 | dev: true 1239 | 1240 | /path-parse/1.0.7: 1241 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1242 | dev: true 1243 | 1244 | /path-type/3.0.0: 1245 | resolution: {integrity: sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=} 1246 | engines: {node: '>=4'} 1247 | dependencies: 1248 | pify: 3.0.0 1249 | dev: true 1250 | 1251 | /picomatch/2.3.1: 1252 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1253 | engines: {node: '>=8.6'} 1254 | dev: true 1255 | 1256 | /pidtree/0.3.1: 1257 | resolution: {integrity: sha1-7wmsLMBTPfHzJQzPLE02aw0SEUo=} 1258 | engines: {node: '>=0.10'} 1259 | hasBin: true 1260 | dev: true 1261 | 1262 | /pify/3.0.0: 1263 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} 1264 | engines: {node: '>=4'} 1265 | dev: true 1266 | 1267 | /pirates/4.0.4: 1268 | resolution: {integrity: sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==} 1269 | engines: {node: '>= 6'} 1270 | dev: true 1271 | 1272 | /platform/1.3.6: 1273 | resolution: {integrity: sha1-SLTOmDFksgnC1FoQetsx9HOm56c=} 1274 | dev: false 1275 | 1276 | /prettier/2.5.1: 1277 | resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} 1278 | engines: {node: '>=10.13.0'} 1279 | hasBin: true 1280 | dev: true 1281 | 1282 | /randombytes/2.1.0: 1283 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1284 | dependencies: 1285 | safe-buffer: 5.2.1 1286 | dev: true 1287 | 1288 | /read-pkg/3.0.0: 1289 | resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} 1290 | engines: {node: '>=4'} 1291 | dependencies: 1292 | load-json-file: 4.0.0 1293 | normalize-package-data: 2.5.0 1294 | path-type: 3.0.0 1295 | dev: true 1296 | 1297 | /readdirp/3.6.0: 1298 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1299 | engines: {node: '>=8.10.0'} 1300 | dependencies: 1301 | picomatch: 2.3.1 1302 | dev: true 1303 | 1304 | /require-directory/2.1.1: 1305 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} 1306 | engines: {node: '>=0.10.0'} 1307 | dev: true 1308 | 1309 | /resolve/1.21.0: 1310 | resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} 1311 | hasBin: true 1312 | dependencies: 1313 | is-core-module: 2.8.0 1314 | path-parse: 1.0.7 1315 | supports-preserve-symlinks-flag: 1.0.0 1316 | dev: true 1317 | 1318 | /restore-cursor/3.1.0: 1319 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 1320 | engines: {node: '>=8'} 1321 | dependencies: 1322 | onetime: 5.1.2 1323 | signal-exit: 3.0.6 1324 | dev: true 1325 | 1326 | /rfdc/1.3.0: 1327 | resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} 1328 | dev: true 1329 | 1330 | /rxjs/7.5.1: 1331 | resolution: {integrity: sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==} 1332 | dependencies: 1333 | tslib: 2.3.1 1334 | dev: true 1335 | 1336 | /safe-buffer/5.2.1: 1337 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1338 | dev: true 1339 | 1340 | /semver/5.7.1: 1341 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 1342 | hasBin: true 1343 | dev: true 1344 | 1345 | /serialize-javascript/6.0.0: 1346 | resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} 1347 | dependencies: 1348 | randombytes: 2.1.0 1349 | dev: true 1350 | 1351 | /shebang-command/1.2.0: 1352 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} 1353 | engines: {node: '>=0.10.0'} 1354 | dependencies: 1355 | shebang-regex: 1.0.0 1356 | dev: true 1357 | 1358 | /shebang-command/2.0.0: 1359 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1360 | engines: {node: '>=8'} 1361 | dependencies: 1362 | shebang-regex: 3.0.0 1363 | dev: true 1364 | 1365 | /shebang-regex/1.0.0: 1366 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} 1367 | engines: {node: '>=0.10.0'} 1368 | dev: true 1369 | 1370 | /shebang-regex/3.0.0: 1371 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1372 | engines: {node: '>=8'} 1373 | dev: true 1374 | 1375 | /shell-quote/1.7.3: 1376 | resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} 1377 | dev: true 1378 | 1379 | /side-channel/1.0.4: 1380 | resolution: {integrity: sha1-785cj9wQTudRslxY1CkAEfpeos8=} 1381 | dependencies: 1382 | call-bind: 1.0.2 1383 | get-intrinsic: 1.1.1 1384 | object-inspect: 1.12.0 1385 | dev: true 1386 | 1387 | /signal-exit/3.0.6: 1388 | resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} 1389 | dev: true 1390 | 1391 | /slice-ansi/3.0.0: 1392 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} 1393 | engines: {node: '>=8'} 1394 | dependencies: 1395 | ansi-styles: 4.3.0 1396 | astral-regex: 2.0.0 1397 | is-fullwidth-code-point: 3.0.0 1398 | dev: true 1399 | 1400 | /slice-ansi/4.0.0: 1401 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 1402 | engines: {node: '>=10'} 1403 | dependencies: 1404 | ansi-styles: 4.3.0 1405 | astral-regex: 2.0.0 1406 | is-fullwidth-code-point: 3.0.0 1407 | dev: true 1408 | 1409 | /slice-ansi/5.0.0: 1410 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 1411 | engines: {node: '>=12'} 1412 | dependencies: 1413 | ansi-styles: 6.1.0 1414 | is-fullwidth-code-point: 4.0.0 1415 | dev: true 1416 | 1417 | /source-map-support/0.5.21: 1418 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1419 | dependencies: 1420 | buffer-from: 1.1.2 1421 | source-map: 0.6.1 1422 | dev: true 1423 | 1424 | /source-map/0.6.1: 1425 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1426 | engines: {node: '>=0.10.0'} 1427 | dev: true 1428 | 1429 | /spdx-correct/3.1.1: 1430 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 1431 | dependencies: 1432 | spdx-expression-parse: 3.0.1 1433 | spdx-license-ids: 3.0.11 1434 | dev: true 1435 | 1436 | /spdx-exceptions/2.3.0: 1437 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 1438 | dev: true 1439 | 1440 | /spdx-expression-parse/3.0.1: 1441 | resolution: {integrity: sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=} 1442 | dependencies: 1443 | spdx-exceptions: 2.3.0 1444 | spdx-license-ids: 3.0.11 1445 | dev: true 1446 | 1447 | /spdx-license-ids/3.0.11: 1448 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} 1449 | dev: true 1450 | 1451 | /string-argv/0.3.1: 1452 | resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} 1453 | engines: {node: '>=0.6.19'} 1454 | dev: true 1455 | 1456 | /string-width/4.2.3: 1457 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1458 | engines: {node: '>=8'} 1459 | dependencies: 1460 | emoji-regex: 8.0.0 1461 | is-fullwidth-code-point: 3.0.0 1462 | strip-ansi: 6.0.1 1463 | dev: true 1464 | 1465 | /string-width/5.0.1: 1466 | resolution: {integrity: sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==} 1467 | engines: {node: '>=12'} 1468 | dependencies: 1469 | emoji-regex: 9.2.2 1470 | is-fullwidth-code-point: 4.0.0 1471 | strip-ansi: 7.0.1 1472 | dev: true 1473 | 1474 | /string.prototype.padend/3.1.3: 1475 | resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} 1476 | engines: {node: '>= 0.4'} 1477 | dependencies: 1478 | call-bind: 1.0.2 1479 | define-properties: 1.1.3 1480 | es-abstract: 1.19.1 1481 | dev: true 1482 | 1483 | /string.prototype.trimend/1.0.4: 1484 | resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} 1485 | dependencies: 1486 | call-bind: 1.0.2 1487 | define-properties: 1.1.3 1488 | dev: true 1489 | 1490 | /string.prototype.trimstart/1.0.4: 1491 | resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} 1492 | dependencies: 1493 | call-bind: 1.0.2 1494 | define-properties: 1.1.3 1495 | dev: true 1496 | 1497 | /strip-ansi/6.0.1: 1498 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1499 | engines: {node: '>=8'} 1500 | dependencies: 1501 | ansi-regex: 5.0.1 1502 | dev: true 1503 | 1504 | /strip-ansi/7.0.1: 1505 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 1506 | engines: {node: '>=12'} 1507 | dependencies: 1508 | ansi-regex: 6.0.1 1509 | dev: true 1510 | 1511 | /strip-bom/3.0.0: 1512 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} 1513 | engines: {node: '>=4'} 1514 | dev: true 1515 | 1516 | /strip-final-newline/2.0.0: 1517 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1518 | engines: {node: '>=6'} 1519 | dev: true 1520 | 1521 | /strip-json-comments/3.1.1: 1522 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1523 | engines: {node: '>=8'} 1524 | dev: true 1525 | 1526 | /supports-color/5.5.0: 1527 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1528 | engines: {node: '>=4'} 1529 | dependencies: 1530 | has-flag: 3.0.0 1531 | dev: true 1532 | 1533 | /supports-color/7.2.0: 1534 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1535 | engines: {node: '>=8'} 1536 | dependencies: 1537 | has-flag: 4.0.0 1538 | dev: true 1539 | 1540 | /supports-color/8.1.1: 1541 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1542 | engines: {node: '>=10'} 1543 | dependencies: 1544 | has-flag: 4.0.0 1545 | dev: true 1546 | 1547 | /supports-color/9.2.1: 1548 | resolution: {integrity: sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==} 1549 | engines: {node: '>=12'} 1550 | dev: true 1551 | 1552 | /supports-preserve-symlinks-flag/1.0.0: 1553 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1554 | engines: {node: '>= 0.4'} 1555 | dev: true 1556 | 1557 | /through/2.3.8: 1558 | resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} 1559 | dev: true 1560 | 1561 | /to-regex-range/5.0.1: 1562 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1563 | engines: {node: '>=8.0'} 1564 | dependencies: 1565 | is-number: 7.0.0 1566 | dev: true 1567 | 1568 | /tslib/2.3.1: 1569 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} 1570 | dev: true 1571 | 1572 | /type-fest/0.21.3: 1573 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 1574 | engines: {node: '>=10'} 1575 | dev: true 1576 | 1577 | /typescript/4.5.4: 1578 | resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==} 1579 | engines: {node: '>=4.2.0'} 1580 | hasBin: true 1581 | dev: true 1582 | 1583 | /unbox-primitive/1.0.1: 1584 | resolution: {integrity: sha1-CF4hViXsMWJXTciFmr7nilmxRHE=} 1585 | dependencies: 1586 | function-bind: 1.1.1 1587 | has-bigints: 1.0.1 1588 | has-symbols: 1.0.2 1589 | which-boxed-primitive: 1.0.2 1590 | dev: true 1591 | 1592 | /validate-npm-package-license/3.0.4: 1593 | resolution: {integrity: sha1-/JH2uce6FchX9MssXe/uw51PQQo=} 1594 | dependencies: 1595 | spdx-correct: 3.1.1 1596 | spdx-expression-parse: 3.0.1 1597 | dev: true 1598 | 1599 | /which-boxed-primitive/1.0.2: 1600 | resolution: {integrity: sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=} 1601 | dependencies: 1602 | is-bigint: 1.0.4 1603 | is-boolean-object: 1.1.2 1604 | is-number-object: 1.0.6 1605 | is-string: 1.0.7 1606 | is-symbol: 1.0.4 1607 | dev: true 1608 | 1609 | /which/1.3.1: 1610 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1611 | hasBin: true 1612 | dependencies: 1613 | isexe: 2.0.0 1614 | dev: true 1615 | 1616 | /which/2.0.2: 1617 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1618 | engines: {node: '>= 8'} 1619 | hasBin: true 1620 | dependencies: 1621 | isexe: 2.0.0 1622 | dev: true 1623 | 1624 | /workerpool/6.1.5: 1625 | resolution: {integrity: sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==} 1626 | dev: true 1627 | 1628 | /wrap-ansi/6.2.0: 1629 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 1630 | engines: {node: '>=8'} 1631 | dependencies: 1632 | ansi-styles: 4.3.0 1633 | string-width: 4.2.3 1634 | strip-ansi: 6.0.1 1635 | dev: true 1636 | 1637 | /wrap-ansi/7.0.0: 1638 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1639 | engines: {node: '>=10'} 1640 | dependencies: 1641 | ansi-styles: 4.3.0 1642 | string-width: 4.2.3 1643 | strip-ansi: 6.0.1 1644 | dev: true 1645 | 1646 | /wrappy/1.0.2: 1647 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 1648 | dev: true 1649 | 1650 | /y18n/5.0.8: 1651 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1652 | engines: {node: '>=10'} 1653 | dev: true 1654 | 1655 | /yaml/1.10.2: 1656 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1657 | engines: {node: '>= 6'} 1658 | dev: true 1659 | 1660 | /yargs-parser/20.2.4: 1661 | resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} 1662 | engines: {node: '>=10'} 1663 | dev: true 1664 | 1665 | /yargs-unparser/2.0.0: 1666 | resolution: {integrity: sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=} 1667 | engines: {node: '>=10'} 1668 | dependencies: 1669 | camelcase: 6.3.0 1670 | decamelize: 4.0.0 1671 | flat: 5.0.2 1672 | is-plain-obj: 2.1.0 1673 | dev: true 1674 | 1675 | /yargs/16.2.0: 1676 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 1677 | engines: {node: '>=10'} 1678 | dependencies: 1679 | cliui: 7.0.4 1680 | escalade: 3.1.1 1681 | get-caller-file: 2.0.5 1682 | require-directory: 2.1.1 1683 | string-width: 4.2.3 1684 | y18n: 5.0.8 1685 | yargs-parser: 20.2.4 1686 | dev: true 1687 | 1688 | /yocto-queue/0.1.0: 1689 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1690 | engines: {node: '>=10'} 1691 | dev: true 1692 | 1693 | registry.npmmirror.com/esbuild-android-arm64/0.14.10: 1694 | resolution: {integrity: sha512-vzkTafHKoiMX4uIN1kBnE/HXYLpNT95EgGanVk6DHGeYgDolU0NBxjO7yZpq4ZGFPOx8384eAdDrBYhO11TAlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.14.10.tgz} 1695 | name: esbuild-android-arm64 1696 | version: 0.14.10 1697 | cpu: [arm64] 1698 | os: [android] 1699 | requiresBuild: true 1700 | dev: true 1701 | optional: true 1702 | 1703 | registry.npmmirror.com/esbuild-darwin-arm64/0.14.10: 1704 | resolution: {integrity: sha512-RNaaoZDg3nsqs5z56vYCjk/VJ76npf752W0rOaCl5lO5TsgV9zecfdYgt7dtUrIx8b7APhVaNYud+tGsDOVC9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.14.10.tgz} 1705 | name: esbuild-darwin-arm64 1706 | version: 0.14.10 1707 | cpu: [arm64] 1708 | os: [darwin] 1709 | requiresBuild: true 1710 | dev: true 1711 | optional: true 1712 | 1713 | registry.npmmirror.com/esbuild-freebsd-64/0.14.10: 1714 | resolution: {integrity: sha512-10B3AzW894u6bGZZhWiJOHw1uEHb4AFbUuBdyml1Ht0vIqd+KqWW+iY/yMwQAzILr2WJZqEhbOXRkJtY8aRqOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.14.10.tgz} 1715 | name: esbuild-freebsd-64 1716 | version: 0.14.10 1717 | cpu: [x64] 1718 | os: [freebsd] 1719 | requiresBuild: true 1720 | dev: true 1721 | optional: true 1722 | 1723 | registry.npmmirror.com/esbuild-freebsd-arm64/0.14.10: 1724 | resolution: {integrity: sha512-mSQrKB7UaWvuryBTCo9leOfY2uEUSimAvcKIaUWbk5Hth9Sg+Try+qNA/NibPgs/vHkX0KFo/Rce6RPea+P15g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.14.10.tgz} 1725 | name: esbuild-freebsd-arm64 1726 | version: 0.14.10 1727 | cpu: [arm64] 1728 | os: [freebsd] 1729 | requiresBuild: true 1730 | dev: true 1731 | optional: true 1732 | 1733 | registry.npmmirror.com/esbuild-linux-32/0.14.10: 1734 | resolution: {integrity: sha512-lktF09JgJLZ63ANYHIPdYe339PDuVn19Q/FcGKkXWf+jSPkn5xkYzAabboNGZNUgNqSJ/vY7VrOn6UrBbJjgYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.14.10.tgz} 1735 | name: esbuild-linux-32 1736 | version: 0.14.10 1737 | cpu: [ia32] 1738 | os: [linux] 1739 | requiresBuild: true 1740 | dev: true 1741 | optional: true 1742 | 1743 | registry.npmmirror.com/esbuild-linux-64/0.14.10: 1744 | resolution: {integrity: sha512-K+gCQz2oLIIBI8ZM77e9sYD5/DwEpeYCrOQ2SYXx+R4OU2CT9QjJDi4/OpE7ko4AcYMlMW7qrOCuLSgAlEj4Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.14.10.tgz} 1745 | name: esbuild-linux-64 1746 | version: 0.14.10 1747 | cpu: [x64] 1748 | os: [linux] 1749 | requiresBuild: true 1750 | dev: true 1751 | optional: true 1752 | 1753 | registry.npmmirror.com/esbuild-linux-arm/0.14.10: 1754 | resolution: {integrity: sha512-BYa60dZ/KPmNKYxtHa3LSEdfKWHcm/RzP0MjB4AeBPhjS0D6/okhaBesZIY9kVIGDyeenKsJNOmnVt4+dhNnvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.14.10.tgz} 1755 | name: esbuild-linux-arm 1756 | version: 0.14.10 1757 | cpu: [arm] 1758 | os: [linux] 1759 | requiresBuild: true 1760 | dev: true 1761 | optional: true 1762 | 1763 | registry.npmmirror.com/esbuild-linux-arm64/0.14.10: 1764 | resolution: {integrity: sha512-+qocQuQvcp5wo/V+OLXxqHPc+gxHttJEvbU/xrCGE03vIMqraL4wMua8JQx0SWEnJCWP+Nhf//v8OSwz1Xr5kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.14.10.tgz} 1765 | name: esbuild-linux-arm64 1766 | version: 0.14.10 1767 | cpu: [arm64] 1768 | os: [linux] 1769 | requiresBuild: true 1770 | dev: true 1771 | optional: true 1772 | 1773 | registry.npmmirror.com/esbuild-linux-mips64le/0.14.10: 1774 | resolution: {integrity: sha512-nmUd2xoBXpGo4NJCEWoaBj+n4EtDoLEvEYc8Z3aSJrY0Oa6s04czD1flmhd0I/d6QEU8b7GQ9U0g/rtBfhtxBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.14.10.tgz} 1775 | name: esbuild-linux-mips64le 1776 | version: 0.14.10 1777 | cpu: [mips64el] 1778 | os: [linux] 1779 | requiresBuild: true 1780 | dev: true 1781 | optional: true 1782 | 1783 | registry.npmmirror.com/esbuild-linux-ppc64le/0.14.10: 1784 | resolution: {integrity: sha512-vsOWZjm0rZix7HSmqwPph9arRVCyPtUpcURdayQDuIhMG2/UxJxpbdRaa//w4zYqcJzAWwuyH2PAlyy0ZNuxqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.14.10.tgz} 1785 | name: esbuild-linux-ppc64le 1786 | version: 0.14.10 1787 | cpu: [ppc64] 1788 | os: [linux] 1789 | requiresBuild: true 1790 | dev: true 1791 | optional: true 1792 | 1793 | registry.npmmirror.com/esbuild-linux-s390x/0.14.10: 1794 | resolution: {integrity: sha512-knArKKZm0ypIYWOWyOT7+accVwbVV1LZnl2FWWy05u9Tyv5oqJ2F5+X2Vqe/gqd61enJXQWqoufXopvG3zULOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/download/esbuild-linux-s390x-0.14.10.tgz} 1795 | name: esbuild-linux-s390x 1796 | version: 0.14.10 1797 | cpu: [s390x] 1798 | os: [linux] 1799 | requiresBuild: true 1800 | dev: true 1801 | optional: true 1802 | 1803 | registry.npmmirror.com/esbuild-netbsd-64/0.14.10: 1804 | resolution: {integrity: sha512-6Gg8neVcLeyq0yt9bZpReb8ntZ8LBEjthxrcYWVrBElcltnDjIy1hrzsujt0+sC2rL+TlSsE9dzgyuvlDdPp2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.14.10.tgz} 1805 | name: esbuild-netbsd-64 1806 | version: 0.14.10 1807 | cpu: [x64] 1808 | os: [netbsd] 1809 | requiresBuild: true 1810 | dev: true 1811 | optional: true 1812 | 1813 | registry.npmmirror.com/esbuild-openbsd-64/0.14.10: 1814 | resolution: {integrity: sha512-9rkHZzp10zI90CfKbFrwmQjqZaeDmyQ6s9/hvCwRkbOCHuto6RvMYH9ghQpcr5cUxD5OQIA+sHXi0zokRNXjcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.14.10.tgz} 1815 | name: esbuild-openbsd-64 1816 | version: 0.14.10 1817 | cpu: [x64] 1818 | os: [openbsd] 1819 | requiresBuild: true 1820 | dev: true 1821 | optional: true 1822 | 1823 | registry.npmmirror.com/esbuild-sunos-64/0.14.10: 1824 | resolution: {integrity: sha512-mEU+pqkhkhbwpJj5DiN3vL0GUFR/yrL3qj8ER1amIVyRibKbj02VM1QaIuk1sy5DRVIKiFXXgCaHvH3RNWCHIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.14.10.tgz} 1825 | name: esbuild-sunos-64 1826 | version: 0.14.10 1827 | cpu: [x64] 1828 | os: [sunos] 1829 | requiresBuild: true 1830 | dev: true 1831 | optional: true 1832 | 1833 | registry.npmmirror.com/esbuild-windows-32/0.14.10: 1834 | resolution: {integrity: sha512-Z5DieUL1N6s78dOSdL95KWf8Y89RtPGxIoMF+LEy8ChDsX+pZpz6uAVCn+YaWpqQXO+2TnrcbgBIoprq2Mco1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.14.10.tgz} 1835 | name: esbuild-windows-32 1836 | version: 0.14.10 1837 | cpu: [ia32] 1838 | os: [win32] 1839 | requiresBuild: true 1840 | dev: true 1841 | optional: true 1842 | 1843 | registry.npmmirror.com/esbuild-windows-64/0.14.10: 1844 | resolution: {integrity: sha512-LE5Mm62y0Bilu7RDryBhHIX8rK3at5VwJ6IGM3BsASidCfOBTzqcs7Yy0/Vkq39VKeTmy9/66BAfVoZRNznoDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.14.10.tgz} 1845 | name: esbuild-windows-64 1846 | version: 0.14.10 1847 | cpu: [x64] 1848 | os: [win32] 1849 | requiresBuild: true 1850 | dev: true 1851 | optional: true 1852 | 1853 | registry.npmmirror.com/esbuild-windows-arm64/0.14.10: 1854 | resolution: {integrity: sha512-OJOyxDtabvcUYTc+O4dR0JMzLBz6G9+gXIHA7Oc5d5Fv1xiYa0nUeo8+W5s2e6ZkPRdIwOseYoL70rZz80S5BA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.14.10.tgz} 1855 | name: esbuild-windows-arm64 1856 | version: 0.14.10 1857 | cpu: [arm64] 1858 | os: [win32] 1859 | requiresBuild: true 1860 | dev: true 1861 | optional: true 1862 | --------------------------------------------------------------------------------