diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index bceae1d7..d277133a 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -93,7 +93,7 @@ jobs: pnpm build -- --target aarch64-linux-android ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip skia.android-arm64.node - name: stable - ${{ matrix.settings.target }} - node@14 + name: stable - ${{ matrix.settings.target }} - node@16 runs-on: ${{ matrix.settings.host }} steps: @@ -132,19 +132,19 @@ jobs: uses: actions/cache@v2 with: path: ~/.cargo/registry - key: ${{ matrix.settings.target }}-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: ${{ matrix.settings.target }}-cargo-registry - name: Cache cargo index uses: actions/cache@v2 with: path: ~/.cargo/git - key: ${{ matrix.settings.target }}-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: ${{ matrix.settings.target }}-cargo-index - name: Cache pnpm store uses: actions/cache@v2 with: path: ~/.pnpm-store - key: npm-cache-${{ matrix.settings.target }}-node@14-${{ hashFiles('pnpm-lock.yaml') }} + key: npm-cache-${{ matrix.settings.target }}-node@16-${{ hashFiles('pnpm-lock.yaml') }} - name: Setup pnpm run: | @@ -155,8 +155,6 @@ jobs: run: ${{ matrix.settings.docker }} env: DOCKER_REGISTRY_URL: ghcr.io - DOCKER_USERNAME: ${{ github.actor }} - DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }} if: ${{ matrix.settings.docker }} - name: Setup toolchain diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index f35d1f79..b4415953 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -23,7 +23,7 @@ jobs: - name: Setup node uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 check-latest: true - name: Install @@ -44,19 +44,19 @@ jobs: uses: actions/cache@v2 with: path: ~/.cargo/registry - key: bench-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: bench-cargo-registry - name: Cache cargo index uses: actions/cache@v2 with: path: ~/.cargo/git - key: bench-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: bench-cargo-index - name: Cache pnpm store uses: actions/cache@v2 with: path: ~/.pnpm-store - key: npm-cache-test-linux-x64-gnu-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }} + key: npm-cache-bench-linux-x64-gnu - name: Setup pnpm run: | diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index db1da6b1..e8e7dc8f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,7 +19,7 @@ jobs: - name: Setup node uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 check-latest: true - name: Install nasm @@ -41,19 +41,19 @@ jobs: uses: actions/cache@v2 with: path: ~/.cargo/registry - key: lint-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: lint-cargo-registry - name: Cache cargo index uses: actions/cache@v2 with: path: ~/.cargo/git - key: lint-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: lint-cargo-index - name: Cache pnpm store uses: actions/cache@v2 with: path: ~/.pnpm-store - key: npm-cache-test-linux-x64-gnu-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }} + key: npm-cache-lint-linux-x64-gnu - name: Setup pnpm run: | diff --git a/Cargo.toml b/Cargo.toml index d41d72a2..bbffc708 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] authors = ["LongYinan "] -edition = "2018" +edition = "2021" name = "canvas" version = "0.1.0" @@ -11,8 +11,8 @@ crate-type = ["cdylib"] anyhow = "1" base64 = "0.13" cssparser = "0.29" -napi = {version = "1", features = ["serde-json"]} -napi-derive = "1" +napi = {version = "2", default-features = false, features = ["napi3", "serde-json", "compat-mode"]} +napi-derive = {version = "2", default-features = false, features = ["compat-mode"]} nom = "7" once_cell = "1" ravif = "0.8" diff --git a/__test__/pathkit.spec.ts.snap b/__test__/pathkit.spec.ts.snap index 77d0f8c9..93ebc6ff 100644 Binary files a/__test__/pathkit.spec.ts.snap and b/__test__/pathkit.spec.ts.snap differ diff --git a/__test__/svg-canvas.spec.ts.snap b/__test__/svg-canvas.spec.ts.snap index 1e097bf4..52f43238 100644 Binary files a/__test__/svg-canvas.spec.ts.snap and b/__test__/svg-canvas.spec.ts.snap differ diff --git a/package.json b/package.json index f869fd95..2fbab32e 100644 --- a/package.json +++ b/package.json @@ -64,34 +64,34 @@ "@jimp/custom": "^0.16.1", "@jimp/jpeg": "^0.16.1", "@jimp/png": "^0.16.1", - "@napi-rs/cli": "^1.3.5", + "@napi-rs/cli": "^2.4.2", "@octokit/rest": "^18.12.0", - "@swc-node/register": "^1.4.0", + "@swc-node/register": "^1.4.2", "@types/lodash": "^4.14.178", - "@typescript-eslint/eslint-plugin": "^5.6.0", - "@typescript-eslint/parser": "^5.6.0", - "ava": "^3.15.0", + "@typescript-eslint/eslint-plugin": "^5.10.2", + "@typescript-eslint/parser": "^5.10.2", + "ava": "^4.0.1", "benny": "^3.7.1", - "canvas": "^2.8.0", + "canvas": "^2.9.0", "canvaskit-wasm": "^0.33.0", - "chalk": "4", - "conventional-changelog-cli": "^2.1.1", - "echarts": "^5.2.2", - "eslint": "^8.4.1", + "colorette": "^2.0.16", + "conventional-changelog-cli": "^2.2.2", + "echarts": "^5.3.0", + "eslint": "^8.8.0", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.25.4", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-sonarjs": "^0.11.0", "husky": "^7.0.4", - "lint-staged": "^12.1.2", + "lint-staged": "^12.3.3", "lodash": "^4.17.21", "npm-run-all": "^4.1.5", "pinst": "^2.1.6", "png.js": "^0.2.1", "prettier": "^2.5.1", "putasset": "^5.0.3", - "skia-canvas": "^0.9.27", - "typescript": "^4.5.3" + "skia-canvas": "^0.9.28", + "typescript": "^4.5.5" }, "lint-staged": { "*.@(js|ts|tsx|yml|yaml|md|json)": [ @@ -108,6 +108,8 @@ "extensions": [ "ts" ], + "workerThreads": false, + "cache": false, "timeout": "3m", "environmentVariables": { "SWC_NODE_PROJECT": "./tsconfig.json", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e3b40ce..bd7773c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,51 +5,51 @@ specifiers: '@jimp/custom': ^0.16.1 '@jimp/jpeg': ^0.16.1 '@jimp/png': ^0.16.1 - '@napi-rs/cli': ^1.3.5 + '@napi-rs/cli': ^2.4.2 '@octokit/rest': ^18.12.0 - '@swc-node/register': ^1.4.0 + '@swc-node/register': ^1.4.2 '@types/lodash': ^4.14.178 - '@typescript-eslint/eslint-plugin': ^5.6.0 - '@typescript-eslint/parser': ^5.6.0 - ava: ^3.15.0 + '@typescript-eslint/eslint-plugin': ^5.10.2 + '@typescript-eslint/parser': ^5.10.2 + ava: ^4.0.1 benny: ^3.7.1 - canvas: ^2.8.0 + canvas: ^2.9.0 canvaskit-wasm: ^0.33.0 - chalk: '4' - conventional-changelog-cli: ^2.1.1 - echarts: ^5.2.2 - eslint: ^8.4.1 + colorette: ^2.0.16 + conventional-changelog-cli: ^2.2.2 + echarts: ^5.3.0 + eslint: ^8.8.0 eslint-config-prettier: ^8.3.0 - eslint-plugin-import: ^2.25.3 + eslint-plugin-import: ^2.25.4 eslint-plugin-prettier: ^4.0.0 eslint-plugin-sonarjs: ^0.11.0 husky: ^7.0.4 - lint-staged: ^12.1.2 + lint-staged: ^12.3.3 lodash: ^4.17.21 npm-run-all: ^4.1.5 pinst: ^2.1.6 png.js: ^0.2.1 prettier: ^2.5.1 putasset: ^5.0.3 - skia-canvas: ^0.9.27 - typescript: ^4.5.3 + skia-canvas: ^0.9.28 + typescript: ^4.5.5 devDependencies: '@jimp/core': 0.16.1 '@jimp/custom': 0.16.1 '@jimp/jpeg': 0.16.1_@jimp+custom@0.16.1 '@jimp/png': 0.16.1_@jimp+custom@0.16.1 - '@napi-rs/cli': 1.3.5 + '@napi-rs/cli': 2.4.2 '@octokit/rest': 18.12.0 '@swc-node/register': 1.4.2 '@types/lodash': 4.14.178 '@typescript-eslint/eslint-plugin': 5.10.2_2595c2126aec4d4b6e944b931dabb4c2 '@typescript-eslint/parser': 5.10.2_eslint@8.8.0+typescript@4.5.5 - ava: 3.15.0 + ava: 4.0.1 benny: 3.7.1 canvas: 2.9.0 canvaskit-wasm: 0.33.0 - chalk: 4.1.2 + colorette: 2.0.16 conventional-changelog-cli: 2.2.2 echarts: 5.3.0 eslint: 8.8.0 @@ -58,7 +58,7 @@ devDependencies: eslint-plugin-prettier: 4.0.0_43197c8d12d1d439034cfcf65e1c48c2 eslint-plugin-sonarjs: 0.11.0_eslint@8.8.0 husky: 7.0.4 - lint-staged: 12.3.2 + lint-staged: 12.3.3 lodash: 4.17.21 npm-run-all: 4.1.5 pinst: 2.1.6 @@ -127,13 +127,6 @@ packages: regenerator-runtime: 0.13.9 dev: true - /@concordance/react/2.0.0: - resolution: {integrity: sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==} - engines: {node: '>=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0'} - dependencies: - arrify: 1.0.1 - dev: true - /@eslint/eslintrc/1.0.5: resolution: {integrity: sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -241,12 +234,10 @@ packages: - supports-color dev: true - /@napi-rs/cli/1.3.5: - resolution: {integrity: sha512-Z0KZIciemioYODTyO908v2AtL8Zg4sohQDD+dyHeHmOiOfaez/y/xQ8XnpOHc2W5fRidKUW+MVWyTtpLTbKsqw==} + /@napi-rs/cli/2.4.2: + resolution: {integrity: sha512-+yCOuPqernvD8BMphbadF87ElaJ0rjanOZrbnauaEdR07YyoalGw3FTk15HHyflIwQKlYd69gkG5EM4WFkICKw==} engines: {node: '>= 10'} hasBin: true - dependencies: - inquirer: 8.2.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -437,11 +428,6 @@ packages: '@octokit/openapi-types': 11.2.0 dev: true - /@sindresorhus/is/0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: true - /@swc-node/core/1.8.2: resolution: {integrity: sha512-IoJ7tGHQ6JOMSmFe4VhP64uLmFKMNasS0QEgUrLFQ0h/dTvpQMynnoGBEJoPL6LfsebZ/q4uKqbpWrth6/yrAA==} engines: {node: '>= 10'} @@ -605,13 +591,6 @@ packages: '@swc/core-win32-x64-msvc': 1.2.135 dev: true - /@szmarczak/http-timer/1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: true - /@types/json-schema/7.0.9: resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} dev: true @@ -814,6 +793,14 @@ packages: indent-string: 4.0.0 dev: true + /aggregate-error/4.0.0: + resolution: {integrity: sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.1.0 + indent-string: 5.0.0 + dev: true + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -823,12 +810,6 @@ packages: uri-js: 4.4.1 dev: true - /ansi-align/3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - dev: true - /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -860,11 +841,6 @@ packages: color-convert: 2.0.1 dev: true - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - /ansi-styles/6.1.0: resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} engines: {node: '>=12'} @@ -929,6 +905,11 @@ packages: engines: {node: '>=8'} dev: true + /array-union/3.0.1: + resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} + engines: {node: '>=12'} + dev: true + /array.prototype.flat/1.2.5: resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} engines: {node: '>= 0.4'} @@ -953,72 +934,71 @@ packages: engines: {node: '>=8'} dev: true + /arrify/3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + dev: true + /astral-regex/2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true - /ava/3.15.0: - resolution: {integrity: sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA==} - engines: {node: '>=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15'} + /ava/4.0.1: + resolution: {integrity: sha512-+12A/JDWyShBCZAKISEEPyM2dwkUrrAfPILqXi4LI4Aa58d92PzjY829hmuoSeACPNqrn2Wlbnja8c/n7bKV6Q==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17'} hasBin: true + peerDependencies: + '@ava/typescript': '*' + peerDependenciesMeta: + '@ava/typescript': + optional: true dependencies: - '@concordance/react': 2.0.0 acorn: 8.7.0 acorn-walk: 8.2.0 - ansi-styles: 5.2.0 + ansi-styles: 6.1.0 arrgv: 1.0.2 - arrify: 2.0.1 - callsites: 3.1.0 - chalk: 4.1.2 + arrify: 3.0.0 + callsites: 4.0.0 + cbor: 8.1.0 + chalk: 5.0.0 chokidar: 3.5.3 chunkd: 2.0.1 - ci-info: 2.0.0 + ci-info: 3.3.0 ci-parallel-vars: 1.0.1 clean-yaml-object: 0.1.0 - cli-cursor: 3.1.0 - cli-truncate: 2.1.0 + cli-truncate: 3.1.0 code-excerpt: 3.0.0 common-path-prefix: 3.0.0 concordance: 5.0.4 - convert-source-map: 1.8.0 currently-unhandled: 0.4.1 debug: 4.3.3 del: 6.0.0 - emittery: 0.8.1 - equal-length: 1.0.1 - figures: 3.2.0 - globby: 11.1.0 + emittery: 0.10.1 + figures: 4.0.0 + globby: 12.2.0 ignore-by-default: 2.0.0 - import-local: 3.1.0 - indent-string: 4.0.0 + indent-string: 5.0.0 is-error: 2.2.2 is-plain-object: 5.0.0 is-promise: 4.0.0 - lodash: 4.17.21 - matcher: 3.0.0 - md5-hex: 3.0.1 - mem: 8.1.1 + matcher: 5.0.0 + mem: 9.0.2 ms: 2.1.3 - ora: 5.4.1 - p-event: 4.2.0 - p-map: 4.0.0 + p-event: 5.0.1 + p-map: 5.3.0 picomatch: 2.3.1 - pkg-conf: 3.1.0 - plur: 4.0.0 + pkg-conf: 4.0.0 + plur: 5.1.0 pretty-ms: 7.0.1 - read-pkg: 5.2.0 resolve-cwd: 3.0.0 slash: 3.0.0 - source-map-support: 0.5.21 stack-utils: 2.0.5 - strip-ansi: 6.0.1 + strip-ansi: 7.0.1 supertap: 2.0.0 temp-dir: 2.0.0 - trim-off-newlines: 1.0.3 - update-notifier: 5.1.0 write-file-atomic: 3.0.3 - yargs: 16.2.0 + yargs: 17.3.1 transitivePeerDependencies: - supports-color dev: true @@ -1062,32 +1042,10 @@ packages: engines: {node: '>=8'} dev: true - /bl/4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - /blueimp-md5/2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} dev: true - /boxen/5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - dependencies: - ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 - dev: true - /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -1118,19 +1076,6 @@ packages: ieee754: 1.2.1 dev: true - /cacheable-request/6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.2 - get-stream: 5.2.0 - http-cache-semantics: 4.1.0 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: true - /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -1143,6 +1088,11 @@ packages: engines: {node: '>=6'} dev: true + /callsites/4.0.0: + resolution: {integrity: sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==} + engines: {node: '>=12.20'} + dev: true + /camelcase-keys/6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -1157,11 +1107,6 @@ packages: engines: {node: '>=6'} dev: true - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - /canvas/2.9.0: resolution: {integrity: sha512-0l93g7uxp7rMyr7H+XRQ28A3ud0dKIUTIEkUe1Dxh4rjUYN7B93+SjC3r1PDKA18xcQN87OFGgUnyw7LSgNLSQ==} engines: {node: '>=6'} @@ -1184,6 +1129,13 @@ packages: hasBin: true dev: true + /cbor/8.1.0: + resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} + engines: {node: '>=12.19'} + dependencies: + nofilter: 3.1.0 + dev: true + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1201,8 +1153,9 @@ packages: supports-color: 7.2.0 dev: true - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + /chalk/5.0.0: + resolution: {integrity: sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true /checkup/1.3.0: @@ -1234,8 +1187,8 @@ packages: resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} dev: true - /ci-info/2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + /ci-info/3.3.0: + resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} dev: true /ci-parallel-vars/1.0.1: @@ -1247,16 +1200,18 @@ packages: engines: {node: '>=6'} dev: true + /clean-stack/4.1.0: + resolution: {integrity: sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + /clean-yaml-object/0.1.0: resolution: {integrity: sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=} engines: {node: '>=0.10.0'} dev: true - /cli-boxes/2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: true - /cli-cursor/3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -1264,11 +1219,6 @@ packages: restore-cursor: 3.1.0 dev: true - /cli-spinners/2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - dev: true - /cli-truncate/2.1.0: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} @@ -1285,11 +1235,6 @@ packages: string-width: 5.1.0 dev: true - /cli-width/3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: true - /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -1298,17 +1243,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone-response/1.0.2: - resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} - dependencies: - mimic-response: 1.0.1 - dev: true - - /clone/1.0.4: - resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} - engines: {node: '>=0.8'} - dev: true - /code-excerpt/3.0.0: resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} engines: {node: '>=10'} @@ -1390,18 +1324,6 @@ packages: well-known-symbols: 2.0.0 dev: true - /configstore/5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} - dependencies: - dot-prop: 5.3.0 - graceful-fs: 4.2.9 - make-dir: 3.1.0 - unique-string: 2.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 - dev: true - /console-control-strings/1.1.0: resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=} dev: true @@ -1564,12 +1486,6 @@ packages: through2: 4.0.2 dev: true - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 - dev: true - /convert-to-spaces/1.0.2: resolution: {integrity: sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=} engines: {node: '>= 4'} @@ -1599,11 +1515,6 @@ packages: which: 2.0.2 dev: true - /crypto-random-string/2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true - /currently-unhandled/0.4.1: resolution: {integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o=} engines: {node: '>=0.10.0'} @@ -1677,13 +1588,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /decompress-response/3.3.0: - resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: true - /decompress-response/4.2.1: resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} engines: {node: '>=8'} @@ -1698,25 +1602,10 @@ packages: mimic-response: 3.1.0 dev: true - /deep-extend/0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: true - /deep-is/0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /defaults/1.0.3: - resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} - dependencies: - clone: 1.0.4 - dev: true - - /defer-to-connect/1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: true - /define-properties/1.1.3: resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} engines: {node: '>= 0.4'} @@ -1784,10 +1673,6 @@ packages: is-obj: 2.0.0 dev: true - /duplexer3/0.1.4: - resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} - dev: true - /eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -1799,9 +1684,9 @@ packages: zrender: 5.3.0 dev: true - /emittery/0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} - engines: {node: '>=10'} + /emittery/0.10.1: + resolution: {integrity: sha512-OBSS9uVXbpgqEGq2V5VnpfCu9vSnfiR9eYVJmxFYToNIcWRHkM4BAFbJe/PWjf/pQdEL7OPxd2jOW/bJiyX7gg==} + engines: {node: '>=12'} dev: true /emoji-regex/8.0.0: @@ -1818,11 +1703,6 @@ packages: once: 1.4.0 dev: true - /equal-length/1.0.1: - resolution: {integrity: sha1-IcoRLUirJLTh5//A5TOdMf38J0w=} - engines: {node: '>=4'} - dev: true - /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -1869,11 +1749,6 @@ packages: engines: {node: '>=6'} dev: true - /escape-goat/2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} - dev: true - /escape-string-regexp/1.0.5: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} @@ -1889,6 +1764,11 @@ packages: engines: {node: '>=10'} dev: true + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + /eslint-config-prettier/8.3.0_eslint@8.8.0: resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} hasBin: true @@ -2117,15 +1997,6 @@ packages: resolution: {integrity: sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=} dev: true - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -2159,11 +2030,12 @@ packages: reusify: 1.0.4 dev: true - /figures/3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + /figures/4.0.0: + resolution: {integrity: sha512-VnYcWq6H6F0qDN0QnorznBr0abEovifzUokmnezpKZBUbDmbLAt7LMryOp1TKFVxLxyNYkxEkCEADZR58U9oSw==} + engines: {node: '>=12'} dependencies: - escape-string-regexp: 1.0.5 + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.1.0 dev: true /file-entry-cache/6.0.1: @@ -2192,13 +2064,6 @@ packages: locate-path: 2.0.0 dev: true - /find-up/3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - dependencies: - locate-path: 3.0.0 - dev: true - /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2207,6 +2072,14 @@ packages: path-exists: 4.0.0 dev: true + /find-up/6.2.0: + resolution: {integrity: sha512-yWHzMzXCaFoABSnFTCPKNFlYoq4mSga9QLRRKOCLSJ33hSkzROB14ITbAWW0QDQDyuzsPQ33S1DsOWQb/oW1yA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.0.0 + path-exists: 5.0.0 + dev: true + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2305,13 +2178,6 @@ packages: pump: 3.0.0 dev: true - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: true - /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -2385,13 +2251,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /global-dirs/3.0.0: - resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} - engines: {node: '>=10'} - dependencies: - ini: 2.0.0 - dev: true - /global/4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} dependencies: @@ -2418,21 +2277,16 @@ packages: slash: 3.0.0 dev: true - /got/9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} + /globby/12.2.0: + resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.4 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 + array-union: 3.0.1 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 dev: true /graceful-fs/4.2.9: @@ -2487,11 +2341,6 @@ packages: resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=} dev: true - /has-yarn/2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - dev: true - /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -2510,10 +2359,6 @@ packages: lru-cache: 6.0.0 dev: true - /http-cache-semantics/4.1.0: - resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} - dev: true - /https-proxy-agent/5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} engines: {node: '>= 6'} @@ -2535,13 +2380,6 @@ packages: hasBin: true dev: true - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true @@ -2569,20 +2407,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-lazy/2.1.0: - resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} - engines: {node: '>=4'} - dev: true - - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - /imurmurhash/0.1.4: resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} engines: {node: '>=0.8.19'} @@ -2593,6 +2417,11 @@ packages: engines: {node: '>=8'} dev: true + /indent-string/5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + /inflight/1.0.6: resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} dependencies: @@ -2608,31 +2437,6 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /ini/2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: true - - /inquirer/8.2.0: - resolution: {integrity: sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==} - engines: {node: '>=8.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.5.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - dev: true - /internal-slot/1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} @@ -2677,13 +2481,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-ci/2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - dependencies: - ci-info: 2.0.0 - dev: true - /is-core-module/2.8.1: resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} dependencies: @@ -2727,29 +2524,11 @@ packages: is-extglob: 2.1.1 dev: true - /is-installed-globally/0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - dependencies: - global-dirs: 3.0.0 - is-path-inside: 3.0.3 - dev: true - - /is-interactive/1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - /is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true - /is-npm/5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - dev: true - /is-number-object/1.0.6: resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} engines: {node: '>= 0.4'} @@ -2838,9 +2617,9 @@ packages: resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} dev: true - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + /is-unicode-supported/1.1.0: + resolution: {integrity: sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==} + engines: {node: '>=12'} dev: true /is-weakref/1.0.2: @@ -2849,10 +2628,6 @@ packages: call-bind: 1.0.2 dev: true - /is-yarn-global/0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: true - /isarray/1.0.0: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} dev: true @@ -2893,10 +2668,6 @@ packages: argparse: 2.0.1 dev: true - /json-buffer/3.0.0: - resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} - dev: true - /json-parse-better-errors/1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -2947,12 +2718,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /keyv/3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: true - /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -2963,13 +2728,6 @@ packages: engines: {node: '>=6'} dev: true - /latest-version/5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} - dependencies: - package-json: 6.5.0 - dev: true - /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2987,8 +2745,8 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged/12.3.2: - resolution: {integrity: sha512-gtw4Cbj01SuVSfAOXC6ivd/7VKHTj51yj5xV8TgktFmYNMsZzXuSd5/brqJEA93v63wL7R6iDlunMANOechC0A==} + /lint-staged/12.3.3: + resolution: {integrity: sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dependencies: @@ -3051,15 +2809,9 @@ packages: strip-bom: 3.0.0 dev: true - /load-json-file/5.3.0: - resolution: {integrity: sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==} - engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.9 - parse-json: 4.0.0 - pify: 4.0.1 - strip-bom: 3.0.0 - type-fest: 0.3.1 + /load-json-file/7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /locate-path/2.0.0: @@ -3070,14 +2822,6 @@ packages: path-exists: 3.0.0 dev: true - /locate-path/3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - dev: true - /locate-path/5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3085,6 +2829,13 @@ packages: p-locate: 4.1.0 dev: true + /locate-path/7.0.0: + resolution: {integrity: sha512-+cg2yXqDUKfo4hsFxwa3G1cBJeA+gs1vD8FyV9/odWoUlQe/4syxHQ5DPtKjtfm6gnKbZzjCqzX03kXosvZB1w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + /lodash.get/4.4.2: resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} dev: true @@ -3101,14 +2852,6 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - /log-update/4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} @@ -3119,16 +2862,6 @@ packages: wrap-ansi: 6.2.0 dev: true - /lowercase-keys/1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: true - - /lowercase-keys/2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: true - /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -3165,11 +2898,11 @@ packages: engines: {node: '>=8'} dev: true - /matcher/3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} - engines: {node: '>=10'} + /matcher/5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - escape-string-regexp: 4.0.0 + escape-string-regexp: 5.0.0 dev: true /md5-hex/3.0.1: @@ -3179,12 +2912,12 @@ packages: blueimp-md5: 2.19.0 dev: true - /mem/8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} + /mem/9.0.2: + resolution: {integrity: sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==} + engines: {node: '>=12.20'} dependencies: map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 + mimic-fn: 4.0.0 dev: true /memorystream/0.3.1: @@ -3249,14 +2982,9 @@ packages: engines: {node: '>=6'} dev: true - /mimic-fn/3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: true - - /mimic-response/1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} dev: true /mimic-response/2.1.0: @@ -3344,10 +3072,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /mute-stream/0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true - /nan/2.15.0: resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==} dev: true @@ -3376,6 +3100,11 @@ packages: whatwg-url: 5.0.0 dev: true + /nofilter/3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + dev: true + /nopt/5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -3408,11 +3137,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /normalize-url/4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: true - /npm-run-all/4.1.5: resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} engines: {node: '>= 4'} @@ -3510,21 +3234,6 @@ packages: word-wrap: 1.2.3 dev: true - /ora/5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - /os-name/3.1.0: resolution: {integrity: sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==} engines: {node: '>=6'} @@ -3533,26 +3242,16 @@ packages: windows-release: 3.3.3 dev: true - /os-tmpdir/1.0.2: - resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} - engines: {node: '>=0.10.0'} - dev: true - - /p-cancelable/1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: true - /p-defer/1.0.0: resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=} engines: {node: '>=4'} dev: true - /p-event/4.2.0: - resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} - engines: {node: '>=8'} + /p-event/5.0.1: + resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - p-timeout: 3.2.0 + p-timeout: 5.0.2 dev: true /p-finally/1.0.0: @@ -3574,6 +3273,13 @@ packages: p-try: 2.2.0 dev: true + /p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate/2.0.0: resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} engines: {node: '>=4'} @@ -3581,13 +3287,6 @@ packages: p-limit: 1.3.0 dev: true - /p-locate/3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - dependencies: - p-limit: 2.3.0 - dev: true - /p-locate/4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -3595,6 +3294,13 @@ packages: p-limit: 2.3.0 dev: true + /p-locate/6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + /p-map/4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -3602,11 +3308,16 @@ packages: aggregate-error: 3.1.0 dev: true - /p-timeout/3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} + /p-map/5.3.0: + resolution: {integrity: sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==} + engines: {node: '>=12'} dependencies: - p-finally: 1.0.0 + aggregate-error: 4.0.0 + dev: true + + /p-timeout/5.0.2: + resolution: {integrity: sha512-sEmji9Yaq+Tw+STwsGAE56hf7gMy9p0tQfJojIAamB7WHJYJKf1qlsg9jqBWG8q9VCxKPhZaP/AcXwEoBcYQhQ==} + engines: {node: '>=12'} dev: true /p-try/1.0.0: @@ -3619,16 +3330,6 @@ packages: engines: {node: '>=6'} dev: true - /package-json/6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.1 - registry-url: 5.1.0 - semver: 6.3.0 - dev: true - /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -3696,6 +3397,11 @@ packages: engines: {node: '>=8'} dev: true + /path-exists/5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /path-is-absolute/1.0.1: resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} engines: {node: '>=0.10.0'} @@ -3752,11 +3458,6 @@ packages: engines: {node: '>=4'} dev: true - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true - /pinst/2.1.6: resolution: {integrity: sha512-B4dYmf6nEXg1NpDSB+orYWvKa5Kfmz5KzWC29U59dpVM4S/+xp0ak/JMEsw04UQTNNKps7klu0BUalr343Gt9g==} engines: {node: '>=10.0.0'} @@ -3777,28 +3478,21 @@ packages: pngjs: 3.4.0 dev: true - /pkg-conf/3.1.0: - resolution: {integrity: sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==} - engines: {node: '>=6'} - dependencies: - find-up: 3.0.0 - load-json-file: 5.3.0 - dev: true - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + /pkg-conf/4.0.0: + resolution: {integrity: sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - find-up: 4.1.0 + find-up: 6.2.0 + load-json-file: 7.0.1 dev: true /platform/1.3.6: resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} dev: true - /plur/4.0.0: - resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} - engines: {node: '>=10'} + /plur/5.1.0: + resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: irregular-plurals: 3.3.0 dev: true @@ -3817,11 +3511,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prepend-http/2.0.0: - resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} - engines: {node: '>=4'} - dev: true - /prettier-linter-helpers/1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} @@ -3863,13 +3552,6 @@ packages: engines: {node: '>=6'} dev: true - /pupa/2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - dependencies: - escape-goat: 2.1.1 - dev: true - /putasset/5.0.3: resolution: {integrity: sha512-LGRp0SLOC4PDP/BawMaG3/hw6iKgQPRXcBF7WIzx2XTYwHVk2sS3gpvZqz6bf9GhKMal2phs+DF7J6eIAXEL4w==} engines: {node: '>=10'} @@ -3900,16 +3582,6 @@ packages: engines: {node: '>=8'} dev: true - /rc/1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.5 - strip-json-comments: 2.0.1 - dev: true - /read-pkg-up/3.0.0: resolution: {integrity: sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=} engines: {node: '>=4'} @@ -3999,20 +3671,6 @@ packages: engines: {node: '>=8'} dev: true - /registry-auth-token/4.2.1: - resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} - engines: {node: '>=6.0.0'} - dependencies: - rc: 1.2.8 - dev: true - - /registry-url/5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - dependencies: - rc: 1.2.8 - dev: true - /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} @@ -4044,12 +3702,6 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /responselike/1.0.2: - resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} - dependencies: - lowercase-keys: 1.0.1 - dev: true - /restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -4074,11 +3726,6 @@ packages: glob: 7.2.0 dev: true - /run-async/2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -4099,21 +3746,10 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: true - /semver-diff/3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: true - /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -4223,6 +3859,11 @@ packages: engines: {node: '>=8'} dev: true + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + /slice-ansi/3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} @@ -4406,11 +4047,6 @@ packages: min-indent: 1.0.1 dev: true - /strip-json-comments/2.0.1: - resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} - engines: {node: '>=0.10.0'} - dev: true - /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4511,18 +4147,6 @@ packages: resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} dev: true - /tmp/0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - - /to-readable-stream/1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: true - /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -4539,11 +4163,6 @@ packages: engines: {node: '>=8'} dev: true - /trim-off-newlines/1.0.3: - resolution: {integrity: sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==} - engines: {node: '>=0.10.0'} - dev: true - /try-catch/3.0.0: resolution: {integrity: sha512-3uAqUnoemzca1ENvZ72EVimR+E8lqBbzwZ9v4CEbLjkaV3Q+FtdmPUt7jRtoSoTiYjyIMxEkf6YgUpe/voJ1ng==} engines: {node: '>=6'} @@ -4612,11 +4231,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest/0.3.1: - resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==} - engines: {node: '>=6'} - dev: true - /type-fest/0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -4656,13 +4270,6 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /unique-string/2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: true - /universal-user-agent/5.0.0: resolution: {integrity: sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==} dependencies: @@ -4678,39 +4285,12 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /update-notifier/5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} - dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 - is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - latest-version: 5.1.0 - pupa: 2.1.1 - semver: 7.3.5 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 - dev: true - /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 dev: true - /url-parse-lax/3.0.0: - resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: true - /util-deprecate/1.0.2: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} dev: true @@ -4732,12 +4312,6 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /wcwidth/1.0.1: - resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} - dependencies: - defaults: 1.0.3 - dev: true - /webidl-conversions/3.0.1: resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} dev: true @@ -4785,13 +4359,6 @@ packages: string-width: 4.2.3 dev: true - /widest-line/3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - dependencies: - string-width: 4.2.3 - dev: true - /windows-release/3.3.3: resolution: {integrity: sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==} engines: {node: '>=6'} @@ -4839,11 +4406,6 @@ packages: typedarray-to-buffer: 3.1.5 dev: true - /xdg-basedir/4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - dev: true - /xhr/2.6.0: resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} dependencies: @@ -4902,6 +4464,11 @@ packages: engines: {node: '>=10'} dev: true + /yargs-parser/21.0.0: + resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==} + engines: {node: '>=12'} + dev: true + /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} @@ -4915,6 +4482,24 @@ packages: yargs-parser: 20.2.9 dev: true + /yargs/17.3.1: + resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==} + engines: {node: '>=12'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.0.0 + dev: true + + /yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + /zrender/5.3.0: resolution: {integrity: sha512-Ln2QB5uqI1ftNYMtCRxd+XDq6MOttLgam2tmhKAVA+j0ko47UT+VNlDvKTkqe4K2sJhBvB0EhYNLebqlCTjatQ==} dependencies: diff --git a/rust-toolchain b/rust-toolchain index d56abbb0..be30c5d6 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2021-12-05 \ No newline at end of file +nightly-2022-02-06 diff --git a/scripts/__test__/utils.spec.ts.snap b/scripts/__test__/utils.spec.ts.snap index 7e18de93..28b043a8 100644 Binary files a/scripts/__test__/utils.spec.ts.snap and b/scripts/__test__/utils.spec.ts.snap differ diff --git a/scripts/release-skia-binary.js b/scripts/release-skia-binary.js index c3bd22ae..4b7437a9 100644 --- a/scripts/release-skia-binary.js +++ b/scripts/release-skia-binary.js @@ -4,7 +4,7 @@ const { platform } = require('os') const { parse, join } = require('path') const { Octokit } = require('@octokit/rest') -const chalk = require('chalk') +const { green } = require('colorette') const { libPath, TAG, OWNER, REPO } = require('./utils') @@ -29,7 +29,7 @@ async function upload() { const putasset = require('putasset') let assets = [] try { - console.info(chalk.green(`Fetching release by tag: [${TAG}]`)) + console.info(green(`Fetching release by tag: [${TAG}]`)) assets = ( await CLIENT.repos.getReleaseByTag({ repo: REPO, @@ -39,7 +39,7 @@ async function upload() { ).data.assets } catch (e) { if (e.status === 404) { - console.info(chalk.green(`No release tag, creating release tag ${TAG}`)) + console.info(green(`No release tag, creating release tag ${TAG}`)) await CLIENT.repos.createRelease({ repo: REPO, owner: OWNER, @@ -52,13 +52,13 @@ async function upload() { } for (const lib of LIB) { const { copy, binary } = libPath(lib, PLATFORM_NAME, TARGET_TRIPLE) - console.info(chalk.green(`Copy [${binary}] to [${copy}]`)) + console.info(green(`Copy [${binary}] to [${copy}]`)) await fs.copyFile(binary, copy) - console.info(chalk.green(`Uploading [${copy}] to github release: [${TAG}]`)) + console.info(green(`Uploading [${copy}] to github release: [${TAG}]`)) const asset = assets.find(({ name }) => name === parse(copy).base) if (asset) { - console.info(chalk.green(`[${copy}] existed, delete it...`)) + console.info(green(`[${copy}] existed, delete it...`)) await CLIENT.repos.deleteReleaseAsset({ owner: OWNER, repo: REPO, @@ -79,14 +79,14 @@ async function upload() { if (PLATFORM_NAME === 'win32') { const icudtl = assets.find(({ name }) => name === ICU_DAT) if (icudtl) { - console.info(chalk.green(`[${ICU_DAT}] existed, delete it...`)) + console.info(green(`[${ICU_DAT}] existed, delete it...`)) await CLIENT.repos.deleteReleaseAsset({ owner: OWNER, repo: REPO, asset_id: icudtl.id, }) } - console.info(chalk.green(`Uploading [${ICU_DAT}] to github release: [${TAG}]`)) + console.info(green(`Uploading [${ICU_DAT}] to github release: [${TAG}]`)) await putasset(process.env.GITHUB_TOKEN, { owner: OWNER, repo: REPO, diff --git a/src/ctx.rs b/src/ctx.rs index 602fb005..6d6d097f 100644 --- a/src/ctx.rs +++ b/src/ctx.rs @@ -60,181 +60,181 @@ impl Context { context_2d_constructor, &vec![ // properties - Property::new(env, "miterLimit")? + Property::new("miterLimit")? .with_getter(get_miter_limit) .with_setter(set_miter_limit), - Property::new(env, "globalAlpha")? + Property::new("globalAlpha")? .with_getter(get_global_alpha) .with_setter(set_global_alpha), - Property::new(env, "globalCompositeOperation")? + Property::new("globalCompositeOperation")? .with_getter(get_global_composite_operation) .with_setter(set_global_composite_operation), - Property::new(env, "imageSmoothingEnabled")? + Property::new("imageSmoothingEnabled")? .with_getter(get_image_smoothing_enabled) .with_setter(set_image_smoothing_enabled), - Property::new(env, "imageSmoothingQuality")? + Property::new("imageSmoothingQuality")? .with_getter(get_image_smoothing_quality) .with_setter(set_image_smoothing_quality), - Property::new(env, "lineCap")? + Property::new("lineCap")? .with_setter(set_line_cap) .with_getter(get_line_cap), - Property::new(env, "lineDashOffset")? + Property::new("lineDashOffset")? .with_setter(set_line_dash_offset) .with_getter(get_line_dash_offset), - Property::new(env, "lineJoin")? + Property::new("lineJoin")? .with_setter(set_line_join) .with_getter(get_line_join), - Property::new(env, "lineWidth")? + Property::new("lineWidth")? .with_setter(set_line_width) .with_getter(get_line_width), - Property::new(env, "fillStyle")? + Property::new("fillStyle")? .with_setter(set_fill_style) .with_getter(get_fill_style), - Property::new(env, "filter")? + Property::new("filter")? .with_setter(set_filter) .with_getter(get_filter), - Property::new(env, "font")? + Property::new("font")? .with_setter(set_font) .with_getter(get_font), - Property::new(env, "direction")? + Property::new("direction")? .with_setter(set_text_direction) .with_getter(get_text_direction), - Property::new(env, "strokeStyle")? + Property::new("strokeStyle")? .with_setter(set_stroke_style) .with_getter(get_stroke_style), - Property::new(env, "shadowBlur")? + Property::new("shadowBlur")? .with_setter(set_shadow_blur) .with_getter(get_shadow_blur), - Property::new(env, "shadowColor")? + Property::new("shadowColor")? .with_setter(set_shadow_color) .with_getter(get_shadow_color), - Property::new(env, "shadowOffsetX")? + Property::new("shadowOffsetX")? .with_setter(set_shadow_offset_x) .with_getter(get_shadow_offset_x), - Property::new(env, "shadowOffsetY")? + Property::new("shadowOffsetY")? .with_setter(set_shadow_offset_y) .with_getter(get_shadow_offset_y), - Property::new(env, "textAlign")? + Property::new("textAlign")? .with_setter(set_text_align) .with_getter(get_text_align), - Property::new(env, "textBaseline")? + Property::new("textBaseline")? .with_setter(set_text_baseline) .with_getter(get_text_baseline), // methods - Property::new(env, "arc")? + Property::new("arc")? .with_method(arc) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "arcTo")? + Property::new("arcTo")? .with_method(arc_to) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "beginPath")? + Property::new("beginPath")? .with_method(begin_path) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "bezierCurveTo")? + Property::new("bezierCurveTo")? .with_method(bezier_curve_to) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "clearRect")? + Property::new("clearRect")? .with_method(clear_rect) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "clip")? + Property::new("clip")? .with_method(clip) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "closePath")? + Property::new("closePath")? .with_method(close_path) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "createLinearGradient")? + Property::new("createLinearGradient")? .with_method(create_linear_gradient) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "createRadialGradient")? + Property::new("createRadialGradient")? .with_method(create_radial_gradient) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "createConicGradient")? + Property::new("createConicGradient")? .with_method(create_conic_gradient) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "drawImage")? + Property::new("drawImage")? .with_method(draw_image) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "getContextAttributes")? + Property::new("getContextAttributes")? .with_method(get_context_attributes) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "isPointInPath")? + Property::new("isPointInPath")? .with_method(is_point_in_path) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "isPointInStroke")?.with_method(is_point_in_stroke), - Property::new(env, "ellipse")? + Property::new("isPointInStroke")?.with_method(is_point_in_stroke), + Property::new("ellipse")? .with_method(ellipse) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "lineTo")? + Property::new("lineTo")? .with_method(line_to) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "measureText")? + Property::new("measureText")? .with_method(measure_text) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "moveTo")? + Property::new("moveTo")? .with_method(move_to) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "fill")? + Property::new("fill")? .with_method(fill) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "fillRect")? + Property::new("fillRect")? .with_method(fill_rect) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "fillText")? + Property::new("fillText")? .with_method(fill_text) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "_getImageData")? + Property::new("_getImageData")? .with_method(get_image_data) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "getLineDash")? + Property::new("getLineDash")? .with_method(get_line_dash) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "putImageData")? + Property::new("putImageData")? .with_method(put_image_data) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "quadraticCurveTo")? + Property::new("quadraticCurveTo")? .with_method(quadratic_curve_to) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "rect")? + Property::new("rect")? .with_method(rect) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "resetTransform")? + Property::new("resetTransform")? .with_method(reset_transform) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "restore")? + Property::new("restore")? .with_method(restore) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "rotate")? + Property::new("rotate")? .with_method(rotate) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "save")? + Property::new("save")? .with_method(save) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "scale")? + Property::new("scale")? .with_method(scale) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "setLineDash")? + Property::new("setLineDash")? .with_method(set_line_dash) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "stroke")? + Property::new("stroke")? .with_method(stroke) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "strokeRect")? + Property::new("strokeRect")? .with_method(stroke_rect) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "strokeText")? + Property::new("strokeText")? .with_method(stroke_text) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "translate")? + Property::new("translate")? .with_method(translate) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "transform")? + Property::new("transform")? .with_method(transform) .with_property_attributes(PropertyAttributes::Writable), // getter setter method - Property::new(env, "getTransform")? + Property::new("getTransform")? .with_method(get_current_transform) .with_property_attributes(PropertyAttributes::Writable), - Property::new(env, "setTransform")? + Property::new("setTransform")? .with_method(set_current_transform) .with_property_attributes(PropertyAttributes::Writable), ], @@ -2294,7 +2294,7 @@ impl Task for ContextData { } } - fn resolve(self, env: Env, output_data: Self::Output) -> Result { + fn resolve(&mut self, env: Env, output_data: Self::Output) -> Result { match output_data { ContextOutputData::Skia(output) => unsafe { env diff --git a/src/global_fonts.rs b/src/global_fonts.rs index 26596dd9..4f2f00e8 100644 --- a/src/global_fonts.rs +++ b/src/global_fonts.rs @@ -128,14 +128,14 @@ impl FontCollection { "GlobalFonts", global_fonts_constructor, &[ - Property::new(env, "_register")?.with_method(register), - Property::new(env, "_registerFromPath")?.with_method(register_from_path), - Property::new(env, "_families")? + Property::new("_register")?.with_method(register), + Property::new("_registerFromPath")?.with_method(register_from_path), + Property::new("_families")? .with_getter(get_families) .with_property_attributes(PropertyAttributes::Enumerable), - Property::new(env, "_loadFontsFromDir")?.with_method(load_fonts), - Property::new(env, "loadSystemFonts")?.with_method(load_system_fonts), - Property::new(env, "setAlias")?.with_method(set_alias), + Property::new("_loadFontsFromDir")?.with_method(load_fonts), + Property::new("loadSystemFonts")?.with_method(load_system_fonts), + Property::new("setAlias")?.with_method(set_alias), ], ) } diff --git a/src/gradient.rs b/src/gradient.rs index c5cea2c0..10a6b012 100644 --- a/src/gradient.rs +++ b/src/gradient.rs @@ -21,10 +21,10 @@ impl CanvasGradient { let gradient_class = env.define_class( "Gradient", gradient_constructor, - &[Property::new(env, "addColorStop")?.with_method(add_color_stop)], + &[Property::new("addColorStop")?.with_method(add_color_stop)], )?; let arguments: Vec = vec![]; - let mut instance = gradient_class.new(&arguments)?; + let mut instance = gradient_class.new_instance(&arguments)?; env.wrap(&mut instance, Pattern::Gradient(self))?; Ok(instance) } diff --git a/src/image.rs b/src/image.rs index eb4b7334..d1d13674 100644 --- a/src/image.rs +++ b/src/image.rs @@ -62,13 +62,6 @@ fn image_data_constructor(ctx: CallContext) -> Result { } ValueType::Object => { let image_data_ab = unsafe { first_arg.cast::() }.into_value()?; - if image_data_ab.typedarray_type != TypedArrayType::Uint8Clamped { - return Err(Error::new( - Status::InvalidArg, - "ImageData constructor: Argument 1 does not implement interface Uint8ClampedArray." - .to_owned(), - )); - } let arraybuffer: &[u8] = image_data_ab.as_ref(); let arraybuffer_length = arraybuffer.len(); let js_width = ctx.get::(1)?; @@ -125,14 +118,14 @@ fn image_data_constructor(ctx: CallContext) -> Result { let mut this = ctx.this_unchecked::(); ctx.env.wrap(&mut this, image_data)?; this.define_properties(&[ - Property::new(ctx.env, "data")? - .with_value(typed_array) + Property::new("data")? + .with_value(&typed_array) .with_property_attributes(PropertyAttributes::Enumerable), - Property::new(ctx.env, "width")? - .with_value(js_width) + Property::new("width")? + .with_value(&js_width) .with_property_attributes(PropertyAttributes::Enumerable), - Property::new(ctx.env, "height")? - .with_value(js_height) + Property::new("height")? + .with_value(&js_height) .with_property_attributes(PropertyAttributes::Enumerable), ])?; ctx.env.get_undefined() @@ -173,25 +166,25 @@ impl Image { "Image", image_constructor, &vec![ - Property::new(env, "width")? + Property::new("width")? .with_getter(get_width) .with_setter(set_width), - Property::new(env, "height")? + Property::new("height")? .with_getter(get_height) .with_setter(set_height), - Property::new(env, "naturalWidth")? + Property::new("naturalWidth")? .with_getter(get_natural_width) .with_property_attributes(PropertyAttributes::Enumerable), - Property::new(env, "naturalHeight")? + Property::new("naturalHeight")? .with_getter(get_natural_height) .with_property_attributes(PropertyAttributes::Enumerable), - Property::new(env, "complete")? + Property::new("complete")? .with_getter(get_complete) .with_property_attributes(PropertyAttributes::Enumerable), - Property::new(env, "alt")? + Property::new("alt")? .with_setter(set_alt) .with_getter(get_alt), - Property::new(env, "src")? + Property::new("src")? .with_setter(set_src) .with_getter(get_src), ], @@ -338,7 +331,7 @@ fn set_src(ctx: CallContext) -> Result { let src_data = src_arg.into_value()?; let image = ctx.env.unwrap::(&this)?.get_image().unwrap(); - let length = (&src_data).len(); + let length = src_data.len(); let data_ref: &[u8] = &src_data; let mut is_svg = false; for i in 3..length { diff --git a/src/lib.rs b/src/lib.rs index 77192978..1b521ea8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -59,25 +59,25 @@ fn init(mut exports: JsObject, env: Env) -> Result<()> { "CanvasElement", canvas_element_constructor, &[ - Property::new(&env, "encode")? + Property::new("encode")? .with_method(encode) .with_property_attributes(PropertyAttributes::Writable), - Property::new(&env, "encodeSync")? + Property::new("encodeSync")? .with_method(encode_sync) .with_property_attributes(PropertyAttributes::Writable), - Property::new(&env, "toBuffer")? + Property::new("toBuffer")? .with_method(to_buffer) .with_property_attributes(PropertyAttributes::Writable), - Property::new(&env, "savePNG")? + Property::new("savePNG")? .with_method(save_png) .with_property_attributes(PropertyAttributes::Writable), - Property::new(&env, "data")? + Property::new("data")? .with_method(data) .with_property_attributes(PropertyAttributes::Writable), - Property::new(&env, "toDataURL")? + Property::new("toDataURL")? .with_method(to_data_url) .with_property_attributes(PropertyAttributes::Writable), - Property::new(&env, "toDataURLAsync")? + Property::new("toDataURLAsync")? .with_method(to_data_url_async) .with_property_attributes(PropertyAttributes::Writable), ], @@ -86,7 +86,7 @@ fn init(mut exports: JsObject, env: Env) -> Result<()> { let svg_canvas_element = env.define_class( "SVGCanvas", canvas_element_constructor, - &[Property::new(&env, "getContent")?.with_method(get_content)], + &[Property::new("getContent")?.with_method(get_content)], )?; let canvas_rendering_context2d = ctx::Context::create_js_class(&env)?; @@ -100,7 +100,7 @@ fn init(mut exports: JsObject, env: Env) -> Result<()> { let canvas_pattern = env.define_class( "CanvasPattern", image_pattern::canvas_pattern_constructor, - &[Property::new(&env, "setTransform")?.with_method(image_pattern::set_transform)], + &[Property::new("setTransform")?.with_method(image_pattern::set_transform)], )?; let global_fonts = sk::FontCollection::create_js_class(&env)?; @@ -481,7 +481,7 @@ impl Task for AsyncDataUrl { Ok(output) } - fn resolve(self, env: Env, output: Self::Output) -> Result { + fn resolve(&mut self, env: Env, output: Self::Output) -> Result { env.create_string_from_std(output) } } diff --git a/src/path.rs b/src/path.rs index 90b2672c..8598659d 100644 --- a/src/path.rs +++ b/src/path.rs @@ -9,30 +9,30 @@ impl Path { path_constructor, &vec![ // Standard Path2d methods - Property::new(env, "addPath")?.with_method(add_path), - Property::new(env, "closePath")?.with_method(close_path), - Property::new(env, "moveTo")?.with_method(move_to), - Property::new(env, "lineTo")?.with_method(line_to), - Property::new(env, "bezierCurveTo")?.with_method(bezier_curve_to), - Property::new(env, "quadraticCurveTo")?.with_method(quadratic_curve_to), - Property::new(env, "arc")?.with_method(arc), - Property::new(env, "arcTo")?.with_method(arc_to), - Property::new(env, "ellipse")?.with_method(ellipse), - Property::new(env, "rect")?.with_method(rect), + Property::new("addPath")?.with_method(add_path), + Property::new("closePath")?.with_method(close_path), + Property::new("moveTo")?.with_method(move_to), + Property::new("lineTo")?.with_method(line_to), + Property::new("bezierCurveTo")?.with_method(bezier_curve_to), + Property::new("quadraticCurveTo")?.with_method(quadratic_curve_to), + Property::new("arc")?.with_method(arc), + Property::new("arcTo")?.with_method(arc_to), + Property::new("ellipse")?.with_method(ellipse), + Property::new("rect")?.with_method(rect), // extra methods in PathKit - Property::new(env, "op")?.with_method(op), - Property::new(env, "simplify")?.with_method(simplify), - Property::new(env, "setFillType")?.with_method(set_fill_type), - Property::new(env, "getFillType")?.with_method(get_fill_type), - Property::new(env, "asWinding")?.with_method(as_winding), - Property::new(env, "toSVGString")?.with_method(to_svg_string), - Property::new(env, "getBounds")?.with_method(get_bounds), - Property::new(env, "computeTightBounds")?.with_method(compute_tight_bounds), - Property::new(env, "transform")?.with_method(transform), - Property::new(env, "trim")?.with_method(trim), - Property::new(env, "dash")?.with_method(dash), - Property::new(env, "equals")?.with_method(equals), - Property::new(env, "_stroke")?.with_method(stroke), + Property::new("op")?.with_method(op), + Property::new("simplify")?.with_method(simplify), + Property::new("setFillType")?.with_method(set_fill_type), + Property::new("getFillType")?.with_method(get_fill_type), + Property::new("asWinding")?.with_method(as_winding), + Property::new("toSVGString")?.with_method(to_svg_string), + Property::new("getBounds")?.with_method(get_bounds), + Property::new("computeTightBounds")?.with_method(compute_tight_bounds), + Property::new("transform")?.with_method(transform), + Property::new("trim")?.with_method(trim), + Property::new("dash")?.with_method(dash), + Property::new("equals")?.with_method(equals), + Property::new("_stroke")?.with_method(stroke), ], ) }