diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..869ecae --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +build/** +dist/** +coverage/** +*.d.ts diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 86% rename from .eslintrc.js rename to .eslintrc.cjs index e150299..9ff0818 100644 --- a/.eslintrc.js +++ b/.eslintrc.cjs @@ -1,5 +1,6 @@ module.exports = { - plugins: ['svelte3', 'typescript'], + plugins: ['svelte3', '@typescript-eslint'], + parser: '@typescript-eslint/parser', rules: { 'no-console': 0, 'no-undefined': 1, diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..f72654d --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,32 @@ +name: GitHub Pages + +on: + push: + branches: + - main + pull_request: + +jobs: + deploy: + runs-on: ubuntu-22.04 + permissions: + contents: write + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + steps: + - uses: actions/checkout@v3 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18.x.x + + - run: yarn + - run: yarn typedoc src/index.ts + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs + diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index 60fff66..05232fc 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -18,6 +18,7 @@ jobs: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - run: yarn - run: yarn build + - run: yarn tsc - uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 544c46d..dd36331 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,7 +13,7 @@ jobs: - name: Unit tests uses: actions/setup-node@v3 with: - node-version: 16.x.x + node-version: 18.x.x - run: yarn - run: yarn test - name: cypress @@ -38,9 +38,19 @@ jobs: - name: Lints uses: actions/setup-node@v3 with: - node-version: 16.x.x + node-version: 18.x.x - run: yarn - run: yarn lint + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Type Check + uses: actions/setup-node@v3 + with: + node-version: 18.x.x + - run: yarn + - run: yarn typecheck build: runs-on: ubuntu-latest steps: @@ -48,7 +58,7 @@ jobs: - name: Lints uses: actions/setup-node@v3 with: - node-version: 16.x.x + node-version: 18.x.x - run: yarn - run: yarn build diff --git a/.gitignore b/.gitignore index 457ce2f..09e5d41 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ cypress/videos dist build public +docs .idea test-report.xml diff --git a/.npmignore b/.npmignore index c078043..8304055 100644 --- a/.npmignore +++ b/.npmignore @@ -11,6 +11,7 @@ test-report.xml # misc folders coverage dist +docs public recipes cypress diff --git a/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip b/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip new file mode 100644 index 0000000..4e48357 Binary files /dev/null and b/.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip differ diff --git a/.yarn/cache/@eslint-community-regexpp-npm-4.10.0-6bfb984c81-2a6e345429.zip b/.yarn/cache/@eslint-community-regexpp-npm-4.10.0-6bfb984c81-2a6e345429.zip new file mode 100644 index 0000000..7ef5a48 Binary files /dev/null and b/.yarn/cache/@eslint-community-regexpp-npm-4.10.0-6bfb984c81-2a6e345429.zip differ diff --git a/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.1-aa2de3f210-f5b441fe79.zip b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.1-aa2de3f210-f5b441fe79.zip new file mode 100644 index 0000000..0cb5724 Binary files /dev/null and b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.1-aa2de3f210-f5b441fe79.zip differ diff --git a/.yarn/cache/@jridgewell-source-map-npm-0.3.5-9f964eaf44-1ad4dec0bd.zip b/.yarn/cache/@jridgewell-source-map-npm-0.3.5-9f964eaf44-1ad4dec0bd.zip new file mode 100644 index 0000000..7a792bd Binary files /dev/null and b/.yarn/cache/@jridgewell-source-map-npm-0.3.5-9f964eaf44-1ad4dec0bd.zip differ diff --git a/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip b/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip new file mode 100644 index 0000000..402f52b Binary files /dev/null and b/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip differ diff --git a/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.20-d90f282910-cd1a735313.zip b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.20-d90f282910-cd1a735313.zip new file mode 100644 index 0000000..d54c0b7 Binary files /dev/null and b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.20-d90f282910-cd1a735313.zip differ diff --git a/.yarn/cache/@types-estree-npm-0.0.51-bc20719267-e56a3bcf75.zip b/.yarn/cache/@types-estree-npm-0.0.51-bc20719267-e56a3bcf75.zip deleted file mode 100644 index d142551..0000000 Binary files a/.yarn/cache/@types-estree-npm-0.0.51-bc20719267-e56a3bcf75.zip and /dev/null differ diff --git a/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-dd8b5bed28.zip b/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-dd8b5bed28.zip new file mode 100644 index 0000000..ebfecb5 Binary files /dev/null and b/.yarn/cache/@types-estree-npm-1.0.5-5b7faed3b4-dd8b5bed28.zip differ diff --git a/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-97ed0cb44d.zip b/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-97ed0cb44d.zip new file mode 100644 index 0000000..dbab109 Binary files /dev/null and b/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-97ed0cb44d.zip differ diff --git a/.yarn/cache/@types-minimatch-npm-5.1.2-aab9c394d3-0391a28286.zip b/.yarn/cache/@types-minimatch-npm-5.1.2-aab9c394d3-0391a28286.zip new file mode 100644 index 0000000..2d74cce Binary files /dev/null and b/.yarn/cache/@types-minimatch-npm-5.1.2-aab9c394d3-0391a28286.zip differ diff --git a/.yarn/cache/@types-semver-npm-7.5.5-a3c0668cf4-533e6c93d1.zip b/.yarn/cache/@types-semver-npm-7.5.5-a3c0668cf4-533e6c93d1.zip new file mode 100644 index 0000000..e90e394 Binary files /dev/null and b/.yarn/cache/@types-semver-npm-7.5.5-a3c0668cf4-533e6c93d1.zip differ diff --git a/.yarn/cache/@typescript-eslint-eslint-plugin-npm-6.12.0-3763f39b5f-a791ebe432.zip b/.yarn/cache/@typescript-eslint-eslint-plugin-npm-6.12.0-3763f39b5f-a791ebe432.zip new file mode 100644 index 0000000..8744aa8 Binary files /dev/null and b/.yarn/cache/@typescript-eslint-eslint-plugin-npm-6.12.0-3763f39b5f-a791ebe432.zip differ diff --git a/.yarn/cache/@typescript-eslint-parser-npm-6.12.0-6a2a318453-92923b7ee6.zip b/.yarn/cache/@typescript-eslint-parser-npm-6.12.0-6a2a318453-92923b7ee6.zip new file mode 100644 index 0000000..796bcc5 Binary files /dev/null and b/.yarn/cache/@typescript-eslint-parser-npm-6.12.0-6a2a318453-92923b7ee6.zip differ diff --git a/.yarn/cache/@typescript-eslint-scope-manager-npm-6.12.0-7e7e615f88-4cc4eb1bcd.zip b/.yarn/cache/@typescript-eslint-scope-manager-npm-6.12.0-7e7e615f88-4cc4eb1bcd.zip new file mode 100644 index 0000000..1988f70 Binary files /dev/null and b/.yarn/cache/@typescript-eslint-scope-manager-npm-6.12.0-7e7e615f88-4cc4eb1bcd.zip differ diff --git a/.yarn/cache/@typescript-eslint-type-utils-npm-6.12.0-4c75f6f9b3-c345c45f12.zip b/.yarn/cache/@typescript-eslint-type-utils-npm-6.12.0-4c75f6f9b3-c345c45f12.zip new file mode 100644 index 0000000..7a46d1d Binary files /dev/null and b/.yarn/cache/@typescript-eslint-type-utils-npm-6.12.0-4c75f6f9b3-c345c45f12.zip differ diff --git a/.yarn/cache/@typescript-eslint-types-npm-6.12.0-6bf09d8529-d3b40f9d40.zip b/.yarn/cache/@typescript-eslint-types-npm-6.12.0-6bf09d8529-d3b40f9d40.zip new file mode 100644 index 0000000..d24cbd2 Binary files /dev/null and b/.yarn/cache/@typescript-eslint-types-npm-6.12.0-6bf09d8529-d3b40f9d40.zip differ diff --git a/.yarn/cache/@typescript-eslint-typescript-estree-npm-6.12.0-3319916b2a-943f7ff2e1.zip b/.yarn/cache/@typescript-eslint-typescript-estree-npm-6.12.0-3319916b2a-943f7ff2e1.zip new file mode 100644 index 0000000..532dcad Binary files /dev/null and b/.yarn/cache/@typescript-eslint-typescript-estree-npm-6.12.0-3319916b2a-943f7ff2e1.zip differ diff --git a/.yarn/cache/@typescript-eslint-utils-npm-6.12.0-c65b198111-dad05bd0e4.zip b/.yarn/cache/@typescript-eslint-utils-npm-6.12.0-c65b198111-dad05bd0e4.zip new file mode 100644 index 0000000..119b563 Binary files /dev/null and b/.yarn/cache/@typescript-eslint-utils-npm-6.12.0-c65b198111-dad05bd0e4.zip differ diff --git a/.yarn/cache/@typescript-eslint-visitor-keys-npm-6.12.0-8da01c78d3-3d8dc74ae7.zip b/.yarn/cache/@typescript-eslint-visitor-keys-npm-6.12.0-8da01c78d3-3d8dc74ae7.zip new file mode 100644 index 0000000..49596fa Binary files /dev/null and b/.yarn/cache/@typescript-eslint-visitor-keys-npm-6.12.0-8da01c78d3-3d8dc74ae7.zip differ diff --git a/.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-1eee1534ad.zip b/.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-1eee1534ad.zip deleted file mode 100644 index 42dd17d..0000000 Binary files a/.yarn/cache/@webassemblyjs-ast-npm-1.11.1-623d3d973e-1eee1534ad.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-ast-npm-1.11.6-d3fd2bb49a-38ef1b526c.zip b/.yarn/cache/@webassemblyjs-ast-npm-1.11.6-d3fd2bb49a-38ef1b526c.zip new file mode 100644 index 0000000..f701414 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-ast-npm-1.11.6-d3fd2bb49a-38ef1b526c.zip differ diff --git a/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip b/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip deleted file mode 100644 index 9b03be9..0000000 Binary files a/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.1-f8af5c0037-b8efc6fa08.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip b/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip new file mode 100644 index 0000000..fd95d64 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip b/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip deleted file mode 100644 index 28665e7..0000000 Binary files a/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.1-b839d59053-0792813f0e.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip b/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip new file mode 100644 index 0000000..d0697f2 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip b/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip deleted file mode 100644 index c4c06dd..0000000 Binary files a/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.1-6afb1ef4aa-a337ee44b4.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.6-69996544b0-b14d0573bf.zip b/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.6-69996544b0-b14d0573bf.zip new file mode 100644 index 0000000..36784bf Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-buffer-npm-1.11.6-69996544b0-b14d0573bf.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-44d2905dac.zip b/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-44d2905dac.zip deleted file mode 100644 index e62e0cc..0000000 Binary files a/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.1-a41f7439eb-44d2905dac.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-f4b562fa21.zip b/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-f4b562fa21.zip new file mode 100644 index 0000000..7f537b9 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-f4b562fa21.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-eac4001131.zip b/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-eac4001131.zip deleted file mode 100644 index eae9fa0..0000000 Binary files a/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.1-84f0ee4c30-eac4001131.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-3535ef4f1f.zip b/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-3535ef4f1f.zip new file mode 100644 index 0000000..36e239b Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-3535ef4f1f.zip differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-617696cfe8.zip b/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-617696cfe8.zip deleted file mode 100644 index 77694dc..0000000 Binary files a/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.1-e4e8450b9d-617696cfe8.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.6-344f8ff2af-b2cf751bf4.zip b/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.6-344f8ff2af-b2cf751bf4.zip new file mode 100644 index 0000000..8cc903b Binary files /dev/null and b/.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.11.6-344f8ff2af-b2cf751bf4.zip differ diff --git a/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip b/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip deleted file mode 100644 index fd9e4c5..0000000 Binary files a/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.1-897eb85879-23a0ac02a5.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip b/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip new file mode 100644 index 0000000..bd1b9c0 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip differ diff --git a/.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-33ccc4ade2.zip b/.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-33ccc4ade2.zip deleted file mode 100644 index e696baf..0000000 Binary files a/.yarn/cache/@webassemblyjs-leb128-npm-1.11.1-fd9f27673d-33ccc4ade2.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-7ea942dc97.zip b/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-7ea942dc97.zip new file mode 100644 index 0000000..b1d4ee5 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-7ea942dc97.zip differ diff --git a/.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-972c5cfc76.zip b/.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-972c5cfc76.zip deleted file mode 100644 index 0559d78..0000000 Binary files a/.yarn/cache/@webassemblyjs-utf8-npm-1.11.1-583036e767-972c5cfc76.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-807fe5b5ce.zip b/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-807fe5b5ce.zip new file mode 100644 index 0000000..56e7179 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-807fe5b5ce.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6d7d9efaec.zip b/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6d7d9efaec.zip deleted file mode 100644 index 14dae41..0000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.1-34565c1e92-6d7d9efaec.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.6-8d2703f828-29ce758704.zip b/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.6-8d2703f828-29ce758704.zip new file mode 100644 index 0000000..513d7dc Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-edit-npm-1.11.6-8d2703f828-29ce758704.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-1f6921e640.zip b/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-1f6921e640.zip deleted file mode 100644 index 419b6a3..0000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.1-a6d0b4d37d-1f6921e640.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.6-0ca036cab0-a645a2eecb.zip b/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.6-0ca036cab0-a645a2eecb.zip new file mode 100644 index 0000000..fe0c96c Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-gen-npm-1.11.6-0ca036cab0-a645a2eecb.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-21586883a2.zip b/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-21586883a2.zip deleted file mode 100644 index 96100b1..0000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.1-0bb73c20b9-21586883a2.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.6-8be3443975-b4557f1954.zip b/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.6-8be3443975-b4557f1954.zip new file mode 100644 index 0000000..d5d400a Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-opt-npm-1.11.6-8be3443975-b4557f1954.zip differ diff --git a/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-1521644065.zip b/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-1521644065.zip deleted file mode 100644 index 7003b8a..0000000 Binary files a/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.1-cd49c51fdc-1521644065.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.6-88e2433c21-8200a8d77c.zip b/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.6-88e2433c21-8200a8d77c.zip new file mode 100644 index 0000000..3e6429c Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wasm-parser-npm-1.11.6-88e2433c21-8200a8d77c.zip differ diff --git a/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-f15ae4c244.zip b/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-f15ae4c244.zip deleted file mode 100644 index 366b7cb..0000000 Binary files a/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.1-f1213430d6-f15ae4c244.zip and /dev/null differ diff --git a/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.6-3191861e3f-d2fa6a4c42.zip b/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.6-3191861e3f-d2fa6a4c42.zip new file mode 100644 index 0000000..d33e0e1 Binary files /dev/null and b/.yarn/cache/@webassemblyjs-wast-printer-npm-1.11.6-3191861e3f-d2fa6a4c42.zip differ diff --git a/.yarn/cache/@webpack-cli-configtest-npm-1.2.0-728a6bf8bd-a2726cd9ec.zip b/.yarn/cache/@webpack-cli-configtest-npm-1.2.0-728a6bf8bd-a2726cd9ec.zip deleted file mode 100644 index ab6e74d..0000000 Binary files a/.yarn/cache/@webpack-cli-configtest-npm-1.2.0-728a6bf8bd-a2726cd9ec.zip and /dev/null differ diff --git a/.yarn/cache/@webpack-cli-configtest-npm-2.1.1-2aa637b6bc-9f9f9145c2.zip b/.yarn/cache/@webpack-cli-configtest-npm-2.1.1-2aa637b6bc-9f9f9145c2.zip new file mode 100644 index 0000000..4437561 Binary files /dev/null and b/.yarn/cache/@webpack-cli-configtest-npm-2.1.1-2aa637b6bc-9f9f9145c2.zip differ diff --git a/.yarn/cache/@webpack-cli-info-npm-1.5.0-9d9627ae19-7f56fe037c.zip b/.yarn/cache/@webpack-cli-info-npm-1.5.0-9d9627ae19-7f56fe037c.zip deleted file mode 100644 index 64c90ae..0000000 Binary files a/.yarn/cache/@webpack-cli-info-npm-1.5.0-9d9627ae19-7f56fe037c.zip and /dev/null differ diff --git a/.yarn/cache/@webpack-cli-info-npm-2.0.2-494be2e91a-8f9a178afc.zip b/.yarn/cache/@webpack-cli-info-npm-2.0.2-494be2e91a-8f9a178afc.zip new file mode 100644 index 0000000..7021baa Binary files /dev/null and b/.yarn/cache/@webpack-cli-info-npm-2.0.2-494be2e91a-8f9a178afc.zip differ diff --git a/.yarn/cache/@webpack-cli-serve-npm-1.7.0-2869abfdb4-d475e8effa.zip b/.yarn/cache/@webpack-cli-serve-npm-1.7.0-2869abfdb4-d475e8effa.zip deleted file mode 100644 index a341014..0000000 Binary files a/.yarn/cache/@webpack-cli-serve-npm-1.7.0-2869abfdb4-d475e8effa.zip and /dev/null differ diff --git a/.yarn/cache/@webpack-cli-serve-npm-2.0.5-5a220c2601-75f0e54681.zip b/.yarn/cache/@webpack-cli-serve-npm-2.0.5-5a220c2601-75f0e54681.zip new file mode 100644 index 0000000..0ea63bf Binary files /dev/null and b/.yarn/cache/@webpack-cli-serve-npm-2.0.5-5a220c2601-75f0e54681.zip differ diff --git a/.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-5c4cf7c850.zip b/.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-5c4cf7c850.zip deleted file mode 100644 index 3322c65..0000000 Binary files a/.yarn/cache/acorn-import-assertions-npm-1.8.0-e9a9d57e27-5c4cf7c850.zip and /dev/null differ diff --git a/.yarn/cache/acorn-import-assertions-npm-1.9.0-22f56507c7-944fb2659d.zip b/.yarn/cache/acorn-import-assertions-npm-1.9.0-22f56507c7-944fb2659d.zip new file mode 100644 index 0000000..1e2cd1f Binary files /dev/null and b/.yarn/cache/acorn-import-assertions-npm-1.9.0-22f56507c7-944fb2659d.zip differ diff --git a/.yarn/cache/acorn-npm-8.11.2-a470f49bb6-8184504086.zip b/.yarn/cache/acorn-npm-8.11.2-a470f49bb6-8184504086.zip new file mode 100644 index 0000000..88d69d2 Binary files /dev/null and b/.yarn/cache/acorn-npm-8.11.2-a470f49bb6-8184504086.zip differ diff --git a/.yarn/cache/ansi-sequence-parser-npm-1.1.1-4cfd5b85e2-ead5b15c59.zip b/.yarn/cache/ansi-sequence-parser-npm-1.1.1-4cfd5b85e2-ead5b15c59.zip new file mode 100644 index 0000000..470c265 Binary files /dev/null and b/.yarn/cache/ansi-sequence-parser-npm-1.1.1-4cfd5b85e2-ead5b15c59.zip differ diff --git a/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip b/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip new file mode 100644 index 0000000..b51da2e Binary files /dev/null and b/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip differ diff --git a/.yarn/cache/commander-npm-10.0.1-f17613b72b-436901d64a.zip b/.yarn/cache/commander-npm-10.0.1-f17613b72b-436901d64a.zip new file mode 100644 index 0000000..6e5dd26 Binary files /dev/null and b/.yarn/cache/commander-npm-10.0.1-f17613b72b-436901d64a.zip differ diff --git a/.yarn/cache/commander-npm-7.2.0-19178180f8-53501cbeee.zip b/.yarn/cache/commander-npm-7.2.0-19178180f8-53501cbeee.zip deleted file mode 100644 index 1c86bf7..0000000 Binary files a/.yarn/cache/commander-npm-7.2.0-19178180f8-53501cbeee.zip and /dev/null differ diff --git a/.yarn/cache/data-uri-to-buffer-npm-4.0.1-5c66a78beb-0d0790b67f.zip b/.yarn/cache/data-uri-to-buffer-npm-4.0.1-5c66a78beb-0d0790b67f.zip new file mode 100644 index 0000000..dc18c88 Binary files /dev/null and b/.yarn/cache/data-uri-to-buffer-npm-4.0.1-5c66a78beb-0d0790b67f.zip differ diff --git a/.yarn/cache/enhanced-resolve-npm-5.12.0-c291ce4ee3-bf3f787fac.zip b/.yarn/cache/enhanced-resolve-npm-5.12.0-c291ce4ee3-bf3f787fac.zip deleted file mode 100644 index 2c4f4e4..0000000 Binary files a/.yarn/cache/enhanced-resolve-npm-5.12.0-c291ce4ee3-bf3f787fac.zip and /dev/null differ diff --git a/.yarn/cache/enhanced-resolve-npm-5.15.0-16eb7ddef9-fbd8cdc926.zip b/.yarn/cache/enhanced-resolve-npm-5.15.0-16eb7ddef9-fbd8cdc926.zip new file mode 100644 index 0000000..115d5cf Binary files /dev/null and b/.yarn/cache/enhanced-resolve-npm-5.15.0-16eb7ddef9-fbd8cdc926.zip differ diff --git a/.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-84bbab23c3.zip b/.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-84bbab23c3.zip deleted file mode 100644 index d7a4a2e..0000000 Binary files a/.yarn/cache/es-module-lexer-npm-0.9.3-ff6236dadb-84bbab23c3.zip and /dev/null differ diff --git a/.yarn/cache/es-module-lexer-npm-1.4.1-82f233cba4-a11b5a256d.zip b/.yarn/cache/es-module-lexer-npm-1.4.1-82f233cba4-a11b5a256d.zip new file mode 100644 index 0000000..e06ff08 Binary files /dev/null and b/.yarn/cache/es-module-lexer-npm-1.4.1-82f233cba4-a11b5a256d.zip differ diff --git a/.yarn/cache/esbuild-linux-64-npm-0.15.18-b7675c5a72-8.zip b/.yarn/cache/esbuild-linux-64-npm-0.15.18-b7675c5a72-8.zip new file mode 100644 index 0000000..86ff108 Binary files /dev/null and b/.yarn/cache/esbuild-linux-64-npm-0.15.18-b7675c5a72-8.zip differ diff --git a/.yarn/cache/esbuild-npm-0.15.18-61e07796c8-ec12682b2c.zip b/.yarn/cache/esbuild-npm-0.15.18-61e07796c8-ec12682b2c.zip new file mode 100644 index 0000000..ab60939 Binary files /dev/null and b/.yarn/cache/esbuild-npm-0.15.18-61e07796c8-ec12682b2c.zip differ diff --git a/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip b/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip new file mode 100644 index 0000000..7c61b81 Binary files /dev/null and b/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip differ diff --git a/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-900e4979f4.zip b/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-900e4979f4.zip new file mode 100644 index 0000000..409893e Binary files /dev/null and b/.yarn/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-900e4979f4.zip differ diff --git a/.yarn/cache/fetch-blob-npm-3.2.0-28e01becfc-f19bc28a2a.zip b/.yarn/cache/fetch-blob-npm-3.2.0-28e01becfc-f19bc28a2a.zip new file mode 100644 index 0000000..e90e7e2 Binary files /dev/null and b/.yarn/cache/fetch-blob-npm-3.2.0-28e01becfc-f19bc28a2a.zip differ diff --git a/.yarn/cache/formdata-polyfill-npm-4.0.10-e03013c013-82a34df292.zip b/.yarn/cache/formdata-polyfill-npm-4.0.10-e03013c013-82a34df292.zip new file mode 100644 index 0000000..118da5c Binary files /dev/null and b/.yarn/cache/formdata-polyfill-npm-4.0.10-e03013c013-82a34df292.zip differ diff --git a/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip b/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip new file mode 100644 index 0000000..55fbdad Binary files /dev/null and b/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip differ diff --git a/.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip b/.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip new file mode 100644 index 0000000..8cd2b28 Binary files /dev/null and b/.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip differ diff --git a/.yarn/cache/graphemer-npm-1.4.0-0627732d35-bab8f0be9b.zip b/.yarn/cache/graphemer-npm-1.4.0-0627732d35-bab8f0be9b.zip new file mode 100644 index 0000000..e04f8d3 Binary files /dev/null and b/.yarn/cache/graphemer-npm-1.4.0-0627732d35-bab8f0be9b.zip differ diff --git a/.yarn/cache/hasown-npm-2.0.0-78b794ceef-6151c75ca1.zip b/.yarn/cache/hasown-npm-2.0.0-78b794ceef-6151c75ca1.zip new file mode 100644 index 0000000..5454406 Binary files /dev/null and b/.yarn/cache/hasown-npm-2.0.0-78b794ceef-6151c75ca1.zip differ diff --git a/.yarn/cache/ignore-npm-5.3.0-fb0f5fa062-2736da6621.zip b/.yarn/cache/ignore-npm-5.3.0-fb0f5fa062-2736da6621.zip new file mode 100644 index 0000000..87f79cf Binary files /dev/null and b/.yarn/cache/ignore-npm-5.3.0-fb0f5fa062-2736da6621.zip differ diff --git a/.yarn/cache/interpret-npm-2.2.0-3603a544e1-f51efef7cb.zip b/.yarn/cache/interpret-npm-2.2.0-3603a544e1-f51efef7cb.zip deleted file mode 100644 index 20392ae..0000000 Binary files a/.yarn/cache/interpret-npm-2.2.0-3603a544e1-f51efef7cb.zip and /dev/null differ diff --git a/.yarn/cache/interpret-npm-3.1.1-715bac2bd7-35cebcf48c.zip b/.yarn/cache/interpret-npm-3.1.1-715bac2bd7-35cebcf48c.zip new file mode 100644 index 0000000..32d7c40 Binary files /dev/null and b/.yarn/cache/interpret-npm-3.1.1-715bac2bd7-35cebcf48c.zip differ diff --git a/.yarn/cache/is-core-module-npm-2.13.1-36e17434f9-256559ee8a.zip b/.yarn/cache/is-core-module-npm-2.13.1-36e17434f9-256559ee8a.zip new file mode 100644 index 0000000..897f505 Binary files /dev/null and b/.yarn/cache/is-core-module-npm-2.13.1-36e17434f9-256559ee8a.zip differ diff --git a/.yarn/cache/jsonc-parser-npm-3.2.0-1896ece3b7-946dd9a5f3.zip b/.yarn/cache/jsonc-parser-npm-3.2.0-1896ece3b7-946dd9a5f3.zip new file mode 100644 index 0000000..82b3a9d Binary files /dev/null and b/.yarn/cache/jsonc-parser-npm-3.2.0-1896ece3b7-946dd9a5f3.zip differ diff --git a/.yarn/cache/lunr-npm-2.3.9-fa3aa9c2d6-176719e24f.zip b/.yarn/cache/lunr-npm-2.3.9-fa3aa9c2d6-176719e24f.zip new file mode 100644 index 0000000..6c28307 Binary files /dev/null and b/.yarn/cache/lunr-npm-2.3.9-fa3aa9c2d6-176719e24f.zip differ diff --git a/.yarn/cache/marked-npm-4.3.0-e7ef9e874f-0db6817893.zip b/.yarn/cache/marked-npm-4.3.0-e7ef9e874f-0db6817893.zip new file mode 100644 index 0000000..3c26c0a Binary files /dev/null and b/.yarn/cache/marked-npm-4.3.0-e7ef9e874f-0db6817893.zip differ diff --git a/.yarn/cache/minimatch-npm-9.0.3-69d7d6fad5-253487976b.zip b/.yarn/cache/minimatch-npm-9.0.3-69d7d6fad5-253487976b.zip new file mode 100644 index 0000000..265822f Binary files /dev/null and b/.yarn/cache/minimatch-npm-9.0.3-69d7d6fad5-253487976b.zip differ diff --git a/.yarn/cache/module-from-string-npm-3.3.0-e77596b937-643be8c299.zip b/.yarn/cache/module-from-string-npm-3.3.0-e77596b937-643be8c299.zip new file mode 100644 index 0000000..f9687a6 Binary files /dev/null and b/.yarn/cache/module-from-string-npm-3.3.0-e77596b937-643be8c299.zip differ diff --git a/.yarn/cache/node-domexception-npm-1.0.0-e1e813b76f-ee1d37dd2a.zip b/.yarn/cache/node-domexception-npm-1.0.0-e1e813b76f-ee1d37dd2a.zip new file mode 100644 index 0000000..d58ba92 Binary files /dev/null and b/.yarn/cache/node-domexception-npm-1.0.0-e1e813b76f-ee1d37dd2a.zip differ diff --git a/.yarn/cache/node-fetch-npm-3.1.1-5268eea12d-2e03f9a309.zip b/.yarn/cache/node-fetch-npm-3.1.1-5268eea12d-2e03f9a309.zip new file mode 100644 index 0000000..91df953 Binary files /dev/null and b/.yarn/cache/node-fetch-npm-3.1.1-5268eea12d-2e03f9a309.zip differ diff --git a/.yarn/cache/rechoir-npm-0.7.1-0c7e5c1201-2a04aab4e2.zip b/.yarn/cache/rechoir-npm-0.7.1-0c7e5c1201-2a04aab4e2.zip deleted file mode 100644 index 24cb0af..0000000 Binary files a/.yarn/cache/rechoir-npm-0.7.1-0c7e5c1201-2a04aab4e2.zip and /dev/null differ diff --git a/.yarn/cache/rechoir-npm-0.8.0-fb660b3bc8-ad3caed8af.zip b/.yarn/cache/rechoir-npm-0.8.0-fb660b3bc8-ad3caed8af.zip new file mode 100644 index 0000000..3663e60 Binary files /dev/null and b/.yarn/cache/rechoir-npm-0.8.0-fb660b3bc8-ad3caed8af.zip differ diff --git a/.yarn/cache/resolve-npm-1.22.8-098f379dfe-f8a26958aa.zip b/.yarn/cache/resolve-npm-1.22.8-098f379dfe-f8a26958aa.zip new file mode 100644 index 0000000..87b2b21 Binary files /dev/null and b/.yarn/cache/resolve-npm-1.22.8-098f379dfe-f8a26958aa.zip differ diff --git a/.yarn/cache/resolve-patch-f6b5304cab-5479b7d431.zip b/.yarn/cache/resolve-patch-f6b5304cab-5479b7d431.zip new file mode 100644 index 0000000..84c63ab Binary files /dev/null and b/.yarn/cache/resolve-patch-f6b5304cab-5479b7d431.zip differ diff --git a/.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-ea56971926.zip b/.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-ea56971926.zip new file mode 100644 index 0000000..90039d1 Binary files /dev/null and b/.yarn/cache/schema-utils-npm-3.3.0-f2b36937f1-ea56971926.zip differ diff --git a/.yarn/cache/serialize-javascript-npm-6.0.1-fac87289ed-3c4f4cb61d.zip b/.yarn/cache/serialize-javascript-npm-6.0.1-fac87289ed-3c4f4cb61d.zip new file mode 100644 index 0000000..9e95026 Binary files /dev/null and b/.yarn/cache/serialize-javascript-npm-6.0.1-fac87289ed-3c4f4cb61d.zip differ diff --git a/.yarn/cache/shiki-npm-0.14.5-517816014d-41d847817c.zip b/.yarn/cache/shiki-npm-0.14.5-517816014d-41d847817c.zip new file mode 100644 index 0000000..6071307 Binary files /dev/null and b/.yarn/cache/shiki-npm-0.14.5-517816014d-41d847817c.zip differ diff --git a/.yarn/cache/terser-npm-5.24.0-0761eb3a43-d88f774b6f.zip b/.yarn/cache/terser-npm-5.24.0-0761eb3a43-d88f774b6f.zip new file mode 100644 index 0000000..80c689e Binary files /dev/null and b/.yarn/cache/terser-npm-5.24.0-0761eb3a43-d88f774b6f.zip differ diff --git a/.yarn/cache/terser-webpack-plugin-npm-5.3.6-27ed5132ff-8f3448d7fd.zip b/.yarn/cache/terser-webpack-plugin-npm-5.3.6-27ed5132ff-8f3448d7fd.zip deleted file mode 100644 index 78440e2..0000000 Binary files a/.yarn/cache/terser-webpack-plugin-npm-5.3.6-27ed5132ff-8f3448d7fd.zip and /dev/null differ diff --git a/.yarn/cache/terser-webpack-plugin-npm-5.3.9-7ba1eb45f4-41705713d6.zip b/.yarn/cache/terser-webpack-plugin-npm-5.3.9-7ba1eb45f4-41705713d6.zip new file mode 100644 index 0000000..6633cec Binary files /dev/null and b/.yarn/cache/terser-webpack-plugin-npm-5.3.9-7ba1eb45f4-41705713d6.zip differ diff --git a/.yarn/cache/ts-api-utils-npm-1.0.3-992f360d9b-441cc4489d.zip b/.yarn/cache/ts-api-utils-npm-1.0.3-992f360d9b-441cc4489d.zip new file mode 100644 index 0000000..8a44e1f Binary files /dev/null and b/.yarn/cache/ts-api-utils-npm-1.0.3-992f360d9b-441cc4489d.zip differ diff --git a/.yarn/cache/typedoc-npm-0.25.3-11902e45cc-060a8f798b.zip b/.yarn/cache/typedoc-npm-0.25.3-11902e45cc-060a8f798b.zip new file mode 100644 index 0000000..c42e764 Binary files /dev/null and b/.yarn/cache/typedoc-npm-0.25.3-11902e45cc-060a8f798b.zip differ diff --git a/.yarn/cache/vscode-oniguruma-npm-1.7.0-07cc55fbcc-53519d91d9.zip b/.yarn/cache/vscode-oniguruma-npm-1.7.0-07cc55fbcc-53519d91d9.zip new file mode 100644 index 0000000..e13937b Binary files /dev/null and b/.yarn/cache/vscode-oniguruma-npm-1.7.0-07cc55fbcc-53519d91d9.zip differ diff --git a/.yarn/cache/vscode-textmate-npm-8.0.0-2deb0cc7cf-127780dfea.zip b/.yarn/cache/vscode-textmate-npm-8.0.0-2deb0cc7cf-127780dfea.zip new file mode 100644 index 0000000..90c4ffb Binary files /dev/null and b/.yarn/cache/vscode-textmate-npm-8.0.0-2deb0cc7cf-127780dfea.zip differ diff --git a/.yarn/cache/web-streams-polyfill-npm-3.2.1-835bd3857e-b119c78574.zip b/.yarn/cache/web-streams-polyfill-npm-3.2.1-835bd3857e-b119c78574.zip new file mode 100644 index 0000000..8476915 Binary files /dev/null and b/.yarn/cache/web-streams-polyfill-npm-3.2.1-835bd3857e-b119c78574.zip differ diff --git a/.yarn/cache/webpack-cli-npm-4.10.0-09cee8c457-2ff5355ac3.zip b/.yarn/cache/webpack-cli-npm-4.10.0-09cee8c457-2ff5355ac3.zip deleted file mode 100644 index 8919e5b..0000000 Binary files a/.yarn/cache/webpack-cli-npm-4.10.0-09cee8c457-2ff5355ac3.zip and /dev/null differ diff --git a/.yarn/cache/webpack-cli-npm-5.1.4-7be5b53b38-3a4ad0d034.zip b/.yarn/cache/webpack-cli-npm-5.1.4-7be5b53b38-3a4ad0d034.zip new file mode 100644 index 0000000..3310295 Binary files /dev/null and b/.yarn/cache/webpack-cli-npm-5.1.4-7be5b53b38-3a4ad0d034.zip differ diff --git a/.yarn/cache/webpack-npm-5.75.0-ebca50e2e7-2bcc5f3c19.zip b/.yarn/cache/webpack-npm-5.75.0-ebca50e2e7-2bcc5f3c19.zip deleted file mode 100644 index ec1021a..0000000 Binary files a/.yarn/cache/webpack-npm-5.75.0-ebca50e2e7-2bcc5f3c19.zip and /dev/null differ diff --git a/.yarn/cache/webpack-npm-5.89.0-3800e9efd0-43fe0dbc30.zip b/.yarn/cache/webpack-npm-5.89.0-3800e9efd0-43fe0dbc30.zip new file mode 100644 index 0000000..95d9ac9 Binary files /dev/null and b/.yarn/cache/webpack-npm-5.89.0-3800e9efd0-43fe0dbc30.zip differ diff --git a/CHANGELOG.md b/CHANGELOG.md index cc66f68..18a9320 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.2.0 - JSDoc type coverage, docs site + +- chore: cover codebase with JSDoc types +- chore: add typecheck CI step +- feat: support ESM/CommonJS `jambox.config.js` in config files +- feat: build & publish TS types +- fix: wait for full reset when cwd is changed via api + ## 0.1.3 - Match paths containing dots, serialize browser config values - fix: match pathnames with dot('.') literals in them diff --git a/babel.config.js b/babel.config.js index 9ca63c0..6723c60 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { plugins: [], presets: [ [ diff --git a/cypress-node-events.js b/cypress-node-events.js index 57e9b64..c338cbe 100644 --- a/cypress-node-events.js +++ b/cypress-node-events.js @@ -1,7 +1,7 @@ -const fetch = require('node-fetch'); -const waitOn = require('wait-on'); +import fetch from 'node-fetch'; +import waitOn from 'wait-on'; -function nodeEvents(on) { +export default function nodeEvents(on) { on('task', { jambox: { // Configure Jambox with a dynamic config during a test @@ -31,5 +31,3 @@ function nodeEvents(on) { }, }); } - -module.exports = nodeEvents; diff --git a/cypress.config.js b/cypress.config.js index 9481060..8433f1d 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -1,8 +1,10 @@ -const fetch = require('node-fetch'); -const { defineConfig } = require('cypress'); -const webpackConfig = require('./webpack.config.js'); +// @ts-check +import fetch from 'node-fetch'; +import { defineConfig } from 'cypress'; +import webpackConfig from './webpack.config.js'; +import nodeEvents from './cypress-node-events.js'; -module.exports = defineConfig({ +const config = defineConfig({ viewportHeight: 720, viewportWidth: 1280, chromeWebSecurity: false, @@ -15,7 +17,7 @@ module.exports = defineConfig({ webpackConfig, }, setupNodeEvents(on, config) { - require('./cypress-node-events')(on); + nodeEvents(on); // Shutdown the server after `yarn cypress run --component completes // This ensures that c8 outputs the lcov.info file properly @@ -26,3 +28,5 @@ module.exports = defineConfig({ }, }, }); + +export default config; diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 66ea16e..8b1a393 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -1,25 +1 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// -// -// -- This is a parent command -- -// Cypress.Commands.add('login', (email, password) => { ... }) -// -// -// -- This is a child command -- -// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file +// empty diff --git a/cypress/support/component.js b/cypress/support/component.js index 7996af1..ddb0daa 100644 --- a/cypress/support/component.js +++ b/cypress/support/component.js @@ -1,28 +1,4 @@ -// *********************************************************** -// This example support/component.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** +import './commands.js'; +import { mount } from 'cypress/svelte'; -// Import commands.js using ES2015 syntax: -// import './commands'; - -// Alternatively you can use CommonJS syntax: -// require('./commands') - -// import { mount } from 'cypress/svelte/dist/cypress-svelte.esm-bundler.js'; -require('./commands'); -const { mount } = require('cypress/svelte'); Cypress.Commands.add('mount', mount); - -// Example use: -// cy.mount(MyComponent) diff --git a/e2e-backend.mjs b/e2e-backend.mjs index 83a5bb8..6c6a44b 100755 --- a/e2e-backend.mjs +++ b/e2e-backend.mjs @@ -2,7 +2,7 @@ import http from 'http'; import tinyServer from './src/utils/tiny-server.mjs'; import jamboxServer from './src/server/index.mjs'; -import { enable as enableDiagnostics } from './src/diagnostics.js'; +import { enable as enableDiagnostics } from './src/diagnostics.cjs'; enableDiagnostics(); diff --git a/ext/Api.js b/ext/Api.js index ea59566..36d164b 100644 --- a/ext/Api.js +++ b/ext/Api.js @@ -1,16 +1,12 @@ // @ts-check import Observable from 'zen-observable'; -import { debounce } from './nodash'; - -/** - * @typedef {import('./types').Subscribtion} Subscribtion - */ +import { debounce } from './nodash.js'; const WEBSOCKET_RETRY_TIMER = 3000; export default class API { /** - * @type {?Subscribtion} + * @type {?ZenObservable.Subscription} * */ #sub; /** diff --git a/ext/App.cy.js b/ext/App.cy.js index cd59cfa..ffcb92b 100644 --- a/ext/App.cy.js +++ b/ext/App.cy.js @@ -1,4 +1,4 @@ -import API from './Api'; +import API from './Api.js'; import App from './App.svelte'; let api; diff --git a/ext/Cache.cy.js b/ext/Cache.cy.js index 7449e85..1aababe 100644 --- a/ext/Cache.cy.js +++ b/ext/Cache.cy.js @@ -1,4 +1,4 @@ -import API from './Api'; +import API from './Api.js'; import App from './App.svelte'; let api; diff --git a/ext/manifest.js b/ext/manifest.js index 6052bdd..61f7d78 100644 --- a/ext/manifest.js +++ b/ext/manifest.js @@ -1,4 +1,4 @@ -module.exports = { +export default { name: 'Jambox', description: 'Examine and edit proxied requests', version: '0.0.2', diff --git a/ext/panel.js b/ext/panel.js index c4a6bf7..71976c3 100644 --- a/ext/panel.js +++ b/ext/panel.js @@ -1,5 +1,5 @@ import App from './App.svelte'; -import API from './Api'; +import API from './Api.js'; const boot = async () => { const api = await API.create(); diff --git a/ext/types.d.ts b/ext/types.d.ts deleted file mode 100644 index 7be14c5..0000000 --- a/ext/types.d.ts +++ /dev/null @@ -1 +0,0 @@ -export type { Subscribtion } from 'zen-observable'; diff --git a/jam-server.mjs b/jam-server.mjs index 70fc4b4..5b03c9a 100755 --- a/jam-server.mjs +++ b/jam-server.mjs @@ -5,7 +5,7 @@ import server from './src/server/index.mjs'; import fs from 'fs'; import fetch from 'node-fetch'; import Tail from 'tail-file'; -import { enable as enableDiagnostics } from './src/diagnostics.js'; +import { enable as enableDiagnostics } from './src/diagnostics.cjs'; enableDiagnostics(); diff --git a/jam.mjs b/jam.mjs index 8c354bf..0d874cc 100755 --- a/jam.mjs +++ b/jam.mjs @@ -1,7 +1,7 @@ #!/usr/bin/env node import entrypoint from './src/entrypoint.mjs'; import * as constants from './src/constants.mjs'; -import { enable as enableDiagnostics } from './src/diagnostics.js'; +import { enable as enableDiagnostics } from './src/diagnostics.cjs'; enableDiagnostics(); diff --git a/jambox.config.js b/jambox.config.js index 00ad389..0aeab23 100644 --- a/jambox.config.js +++ b/jambox.config.js @@ -1,3 +1,4 @@ +// @ts-check /** * This config is used for integration tests * @@ -6,7 +7,11 @@ * - Causes .jambox/default.tape.zip to be written * - Leave .jambox/default.tape.zip empty after integration tests */ -module.exports = { + +/** + * @type {import('./src/index.js').FileConfig} + */ +export default { blockNetworkRequests: false, forward: { 'http://jambox-test.com': { diff --git a/manifest-plugin.js b/manifest-plugin.js index 57c3f4e..05e6b22 100644 --- a/manifest-plugin.js +++ b/manifest-plugin.js @@ -1,7 +1,7 @@ -const prettier = require('prettier'); -const manifest = require('./ext/manifest'); +import prettier from 'prettier'; +import manifest from './ext/manifest.js'; -class ManifestPlugin { +export default class ManifestPlugin { apply(compiler) { compiler.hooks.make.tap('ManifestPlugin', (compilation) => { const fileName = 'manifest.json'; @@ -20,5 +20,3 @@ class ManifestPlugin { }); } } - -module.exports = ManifestPlugin; diff --git a/package.json b/package.json index ada0402..ceb3b0b 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,17 @@ { "name": "jambox", - "version": "0.1.3", + "version": "0.2.0", "description": "Tool for recording and playing back HTTP requests.", "bin": { "jam": "./jam.mjs", "jam-server": "./jam-server.mjs" }, + "type": "module", "packageManager": "yarn@3.2.4", + "engines": { + "node": ">= 16.20.2" + }, + "types": "./dist/index.d.ts", "author": "Arthur Buldauskas ", "license": "MIT", "repository": { @@ -17,6 +22,7 @@ "build": "webpack", "dev": "nodemon --watch ext --watch src --exec ./jam-server.mjs", "test": "c8 -r=text -r=lcov ava", + "typecheck": "tsc", "e2e": "c8 -o ./coverage-cypress -r=text -r=lcov node ./e2e-backend.mjs", "e2e-dev": "nodemon --watch ext --watch src --exec ./e2e-backend.mjs", "cy": "HTTP_PROXY=http://localhost:8000 cypress open --component", @@ -40,8 +46,9 @@ "http-encoding": "^1.5.1", "minimatch": "^5.1.0", "mockttp": "^3.9.4", + "module-from-string": "^3.3.0", "nock": "^13.2.9", - "node-fetch": "2.6.7", + "node-fetch": "3.1.1", "osenv": "^0.1.5", "svelte-jsoneditor": "^0.17.8", "svelte-routing": "^1.11.0", @@ -54,7 +61,10 @@ "@babel/core": "^7.20.2", "@babel/preset-env": "^7.20.2", "@types/chrome": "^0.0.237", + "@types/minimatch": "^5.1.2", "@types/zen-observable": "^0.8.3", + "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/parser": "^6.12.0", "ava": "^5.0.1", "babel-loader": "^9.1.0", "babel-plugin-module-resolver": "^4.1.0", @@ -79,10 +89,11 @@ "svelte": "^3.55.0", "svelte-loader": "^3.1.4", "svelte-watch-resize": "^1.0.3", + "typedoc": "^0.25.3", "typescript": "^5.1.3", "webextension-polyfill": "^0.10.0", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0" + "webpack": "^5.89.0", + "webpack-cli": "^5.1.4" }, "nodemonConfig": { "env": { diff --git a/src/Cache.mjs b/src/Cache.mjs index 2eaa849..a09a5d8 100644 --- a/src/Cache.mjs +++ b/src/Cache.mjs @@ -7,9 +7,9 @@ import deserialize from './utils/deserialize.mjs'; import { updateResponse } from './utils/serialize.mjs'; import { PortablePath, npath, ppath } from '@yarnpkg/fslib'; import { ZipFS } from '@yarnpkg/libzip'; -import { createDebug } from './diagnostics.js'; +import { createDebug } from './diagnostics.cjs'; -const debug = createDebug('cache'); +const debug = createDebug('server'); export const serializeRequest = async (request) => { return { @@ -53,9 +53,13 @@ export const events = { }; class Cache extends Emitter { - #staged = {}; - #cache = {}; - #bypass = false; + /** @private */ + staged = {}; + /** @private */ + cache = {}; + /** @private */ + _bypass = false; + /** * @member {PortablePath} */ @@ -66,7 +70,7 @@ class Cache extends Emitter { } /** - * @type request {Request} + * @param request {import('mockttp').CompletedRequest} */ static async hash(request) { const body = await request.body.getText(); @@ -78,15 +82,15 @@ class Cache extends Emitter { bypass(value) { if (typeof value !== 'undefined') { - debug(`set bypass from ${this.#bypass} to ${value}`); - this.#bypass = value; + debug(`set bypass from ${this._bypass} to ${value}`); + this._bypass = value; } - return this.#bypass; + return this._bypass; } all() { - return { ...this.#cache }; + return { ...this.cache }; } /** @@ -97,7 +101,7 @@ class Cache extends Emitter { return; } - if (this.#staged[request.id]) { + if (this.staged[request.id]) { debug( `avoiding overwritting an existing staged request to ${request.url}` ); @@ -106,7 +110,7 @@ class Cache extends Emitter { debug(`add()[stage] ${request.url}`); this.dispatch(events.stage, { request: { ...request } }); - this.#staged[request.id] = request; + this.staged[request.id] = request; } /** @@ -118,7 +122,7 @@ class Cache extends Emitter { } this.dispatch(events.abort, { request: { ...request } }); - delete this.#staged[request.id]; + delete this.staged[request.id]; } hasStaged(request) { @@ -126,7 +130,7 @@ class Cache extends Emitter { return false; } - return Boolean(this.#staged[request.id]); + return Boolean(this.staged[request.id]); } /** @@ -137,18 +141,18 @@ class Cache extends Emitter { return; } - const request = this.#staged[response.id]; + const request = this.staged[response.id]; const hash = await Cache.hash(request); debug(`commit() url ${request.url} -- hash ${hash}`); - this.#cache[hash] = { + this.cache[hash] = { id: hash, request, response, }; - this.dispatch(events.commit, { ...this.#cache[hash] }); + this.dispatch(events.commit, { ...this.cache[hash] }); - delete this.#staged[request.id]; + delete this.staged[request.id]; return hash; } @@ -162,26 +166,26 @@ class Cache extends Emitter { } const hash = await Cache.hash(request); - if (!this.#cache[hash]) { + if (!this.cache[hash]) { return; } debug(`Revert ${hash}`); - this.dispatch(events.revert, { ...this.#cache[hash] }); - delete this.#cache[hash]; + this.dispatch(events.revert, { ...this.cache[hash] }); + delete this.cache[hash]; } has(hash) { - return Boolean(this.#cache[hash]); + return Boolean(this.cache[hash]); } get(hash) { debug(`get() ${hash}`); - return this.#cache[hash]; + return this.cache[hash]; } findById(id) { - return Object.values(this.#cache).find((pair) => pair.request.id === id); + return Object.values(this.cache).find((pair) => pair.request.id === id); } /** @@ -197,7 +201,7 @@ class Cache extends Emitter { const zipfs = new ZipFS(this.tape, { create }); for (const hash of ids) { - const record = this.#cache[hash]; + const record = this.cache[hash]; if (!record) { debug(`Attempted to record ${hash} but it's not found`); return; @@ -207,8 +211,8 @@ class Cache extends Emitter { // 'pretty-print' json since it'll be compressed anyway await zipfs.writeFilePromise(filename, JSON.stringify(record, null, 2)); - this.#cache[hash] = { - ...this.#cache[hash], + this.cache[hash] = { + ...this.cache[hash], tape: this.tape, filename, }; @@ -262,7 +266,7 @@ class Cache extends Emitter { const json = JSON.parse(content); const obj = deserialize(json); - this.#cache[name] = { + this.cache[name] = { id: name, request: obj.request, response: obj.response, @@ -304,7 +308,7 @@ class Cache extends Emitter { for (const hash of ids) { try { - const record = this.#cache[hash]; + const record = this.cache[hash]; if (!record) { const errorMessage = `Attempted to delete a record that does not exist ${hash}`; @@ -335,23 +339,20 @@ class Cache extends Emitter { } async update({ id, response }) { - const newResponse = await updateResponse( - this.#cache[id].response, - response - ); + const newResponse = await updateResponse(this.cache[id].response, response); - this.#cache[id].response = newResponse; + this.cache[id].response = newResponse; debug(`Update record ${id}`); - this.dispatch(events.update, this.#cache[id]); + this.dispatch(events.update, this.cache[id]); - if (this.#cache[id].tape) { + if (this.cache[id].tape) { await this.persist([id]); } } clear() { - this.#staged = {}; - this.#cache = {}; + this.staged = {}; + this.cache = {}; this.dispatch(events.clear); } } diff --git a/src/Config.mjs b/src/Config.mjs index 6dbd5f9..94a591f 100644 --- a/src/Config.mjs +++ b/src/Config.mjs @@ -1,8 +1,6 @@ -// @ts-check import * as NodeFS from 'node:fs'; import * as path from 'node:path'; -import { createDebug } from './diagnostics.js'; -import getUserConfigFile from './read-user-config.js'; +import { getLoader } from './read-user-config.js'; import { CONFIG_FILE_NAME, CACHE_DIR_NAME, @@ -10,11 +8,12 @@ import { } from './constants.mjs'; import Emitter from './Emitter.mjs'; import debounce from './utils/debounce.mjs'; +import { createDebug } from './diagnostics.cjs'; const debug = createDebug('config'); /** - * @typedef {object} ConfigUpdate + * @typedef {object} ConfigUpdate * @property {object=} forward * @property {object=} stub * @property {Array=} trust @@ -34,15 +33,25 @@ export default class Config extends Emitter { dir = ''; filepath = ''; logLocation = ''; - proxy = {}; + errors = []; + /** + * @type {import('./index.js').ProxyInfo} + */ + proxy; noProxy = ['<-loopback->']; trust = new Set(); + /** + * @type {Record} + */ forward = null; /** - * @member {object|null} + * @type {import('./index.js').CacheOption} */ cache; - stub = null; + /** + * @type {Record} + */ + stub; blockNetworkRequests = false; paused = false; /** @@ -56,24 +65,31 @@ export default class Config extends Emitter { /** * @param {object} init - * @param {string=} init.port - * @param {object=} init.proxy + * @param {string|number=} init.port + * @param {import('./index.js').ProxyInfo=} init.proxy * @param {object} options * @param {import('node:fs')} options.fs - * @param {(f: string) => object} options.loadConfigModule */ constructor( { port, proxy, ...rest } = {}, - { fs, loadConfigModule } = { + { fs } = { fs: NodeFS, - loadConfigModule: getUserConfigFile, } ) { super('config'); - this.loadConfigModule = loadConfigModule; + const loader = getLoader(fs.promises); + this.loadConfigModule = async (/** @type {string} */ filepath) => { + try { + return await loader(filepath); + } catch (e) { + debug(`Caught error during config load ${e.message}`); + this.errors.push(e); + return {}; + } + }; this.fs = fs; this.serverURL = new URL('http://localhost'); - this.serverURL.port = port || '9000'; + this.serverURL.port = String(port) || '9000'; this.proxy = proxy; this.cache = null; this.update(rest); @@ -140,17 +156,18 @@ export default class Config extends Emitter { this.cache = null; this.blockNetworkRequests = false; this.paused = false; + this.errors = []; } /** * @param {string=} cwd */ - load(cwd) { + async load(cwd) { this.clear(); if (!cwd) { debug(`Update existing config ${this.filepath}`); - this.update(this.loadConfigModule(this.filepath)); + this.update(await this.loadConfigModule(this.filepath)); return; } @@ -167,7 +184,7 @@ export default class Config extends Emitter { this.prepCacheDir(); // Works with .json & .js - this.update(this.loadConfigModule(this.filepath)); + this.update(await this.loadConfigModule(this.filepath)); this.watch(); } @@ -188,6 +205,9 @@ export default class Config extends Emitter { ); } + /** + * @returns {import('./index.js').SerializedConfig} + */ serialize() { return { browser: this.browser, @@ -201,6 +221,7 @@ export default class Config extends Emitter { stub: this.stub, proxy: this.proxy, noProxy: this.noProxy, + errors: this.errors, }; } } diff --git a/src/Jambox.mjs b/src/Jambox.mjs index 5cf1dfe..10c5d7b 100644 --- a/src/Jambox.mjs +++ b/src/Jambox.mjs @@ -9,11 +9,14 @@ import CacheMatcher from './matchers/CacheMatcher.mjs'; import GlobMatcher from './matchers/GlobMatcher.mjs'; import CacheHandler from './handlers/CacheHandler.mjs'; import ProxyHandler from './handlers/ProxyHandler.mjs'; -import { createDebug } from './diagnostics.js'; +import { createDebug } from './diagnostics.cjs'; const debug = createDebug('core'); export default class Jambox extends Emitter { + /** + * @typedef {import('mockttp')} mockttp + */ /** * @member {Cache} */ @@ -74,7 +77,7 @@ export default class Jambox extends Emitter { } else { await this.proxy .forAnyRequest() - .matching((req) => { + .matching((/** @type {mockttp.CompletedRequest} */ req) => { const url = new URL(req.url); return url.hostname !== 'localhost'; }) @@ -86,7 +89,7 @@ export default class Jambox extends Emitter { // See https://github.com/ballercat/jambox/issues/42 await this.proxy .forAnyRequest() - .matching((req) => { + .matching((/** @type {mockttp.CompletedRequest} */ req) => { const url = new URL(req.url); return url.hostname === 'localhost'; }) @@ -111,23 +114,30 @@ export default class Jambox extends Emitter { this.dispatch('reset'); } - record(setting) { + /** + * @param {import('./index.js').CacheOption} cache + */ + record(cache) { return this.proxy.addRequestRule({ priority: 100, - matchers: [new CacheMatcher(this, setting)], + matchers: [new CacheMatcher(this, cache)], handler: new CacheHandler(this), }); } - forward(setting) { + /** + * @param {Record} forwards + */ + forward(forwards) { return Promise.all( - Object.entries(setting).map(async ([original, ...rest]) => { - const options = - typeof rest[0] === 'object' - ? rest[0] - : { - target: rest[0], - }; + Object.entries(forwards).map(async ([original, target]) => { + let options; + if (typeof target === 'string') { + options = { target, paths: ['**'] }; + } + if (typeof target === 'object') { + options = target; + } const originalURL = new URL(original); const targetURL = new URL( @@ -177,9 +187,12 @@ export default class Jambox extends Emitter { ); } - stub(setting) { + /** + * @param {Record} stubs + */ + stub(stubs) { return Promise.all( - Object.entries(setting).map(([path, value]) => { + Object.entries(stubs).map(([path, value]) => { const options = typeof value === 'object' ? value : { status: value }; if (options.preferNetwork && !this.config.blockNetworkRequests) { return; @@ -205,6 +218,9 @@ export default class Jambox extends Emitter { ); } + /** + * @param {URL} url + */ shouldStage(url) { if (this.cache.bypass() || this.config.blockNetworkRequests) { return false; @@ -227,6 +243,9 @@ export default class Jambox extends Emitter { ); } + /** + * @param {mockttp.CompletedRequest} request + */ async onRequest(request) { try { const url = new URL(request.url); @@ -251,6 +270,9 @@ export default class Jambox extends Emitter { } } + /** + * @param {mockttp.CompletedResponse} response + */ async onResponse(response) { try { if (!this.cache.bypass() && this.cache.hasStaged(response)) { @@ -264,6 +286,9 @@ export default class Jambox extends Emitter { } } + /** + * @param {mockttp.AbortedRequest} abortedRequest + */ async onAbort(abortedRequest) { if (this.cache.hasStaged(abortedRequest)) { this.cache.abort(abortedRequest); diff --git a/src/__tests__/Config.test.mjs b/src/__tests__/Config.test.mjs index 8cab87e..5e2cbcd 100644 --- a/src/__tests__/Config.test.mjs +++ b/src/__tests__/Config.test.mjs @@ -1,18 +1,8 @@ import test from 'ava'; import { Volume, createFsFromVolume } from 'memfs'; import Config from '../Config.mjs'; -import Module from 'node:module'; - -// Mocked loadConfig. e2e for a 'real' required config module -const configLoader = (fs) => (filepath) => { - const m = new Module(filepath); - const content = fs.readFileSync(filepath, 'utf-8'); - m.filename = 'jambox.config.js'; - m._compile(content, 'jambox.config.js'); - return m.exports; -}; - -test('load', async (t) => { + +test('file load', async (t) => { const vol = new Volume(); vol.fromJSON( { @@ -31,10 +21,79 @@ test('load', async (t) => { '/app' ); const fs = createFsFromVolume(vol); - const config = new Config({}, { fs, loadConfigModule: configLoader(fs) }); - config.load('/app'); + const config = new Config({}, { fs }); + await config.load('/app'); + + t.like(config, { stub: {}, paused: true }); +}); + +test('file load ESM', async (t) => { + const vol = new Volume(); + vol.fromJSON( + { + '.jambox': { + '.gitkeep': '', + }, + './jambox.config.js': ` + export const stub = {}; + export const paused = true; + `, + }, + '/app' + ); + const fs = createFsFromVolume(vol); + const config = new Config({}, { fs }); + await config.load('/app'); t.like(config, { stub: {}, paused: true }); + + vol.fromJSON( + { + 'jambox.config.js': ` + const trust = ['foobar.net']; + export default { trust }`, + }, + '/app2' + ); + + await config.load('/app2'); + + t.like(config, { trust: new Set(['foobar.net']) }); +}); + +test('file load error', async (t) => { + const vol = new Volume(); + vol.fromJSON( + { + '.jambox': { + '.gitkeep': '', + }, + './jambox.config.js': ` + export defaults {} + `, + }, + '/app' + ); + const fs = createFsFromVolume(vol); + const config = new Config({}, { fs }); + await config.load('/app'); + + // Should be a parse-time error of "Unexpected 'defaults'" + // See snapshot for formatted message + t.snapshot(config.errors); + + fs.writeFileSync('/app/jambox.config.js', `foo = 'bar';const foo = '';`); + await config.once('config.update'); + + // Keep stack traces out of the snapshot. There are dynamic filenames + // and real filepaths in the stack(s) we want to avoid. + t.like(config.errors[0], { + message: 'Could not load /app/jambox.config.js', + // nested cause error + cause: { + message: "Cannot access 'foo' before initialization", + }, + }); }); test('updates & watch mode', async (t) => { @@ -47,8 +106,8 @@ test('updates & watch mode', async (t) => { '/app' ); const fs = createFsFromVolume(vol); - const config = new Config({}, { fs, loadConfigModule: configLoader(fs) }); - config.load('/app'); + const config = new Config({}, { fs }); + await config.load('/app'); t.is(config.cwd, '/app'); t.like(config.cache, { stage: ['*'] }); @@ -70,8 +129,8 @@ test('changes to cwd', async (t) => { '/two/jambox.config.js': 'module.exports = { cache: { stage: ["two"]}};', }); const fs = createFsFromVolume(vol); - const config = new Config({}, { fs, loadConfigModule: configLoader(fs) }); - config.load('/one'); + const config = new Config({}, { fs }); + await config.load('/one'); t.is(config.cwd, '/one'); t.like(config.cache, { stage: ['one'] }); @@ -84,7 +143,7 @@ test('changes to cwd', async (t) => { t.like(config.cache, { stage: [] }); - config.load('/two'); + await config.load('/two'); t.like(config.cache, { stage: ['two'] }); fs.writeFileSync( diff --git a/src/__tests__/__snapshots__/Config.test.mjs.md b/src/__tests__/__snapshots__/Config.test.mjs.md index bac4e21..f2e52ac 100644 --- a/src/__tests__/__snapshots__/Config.test.mjs.md +++ b/src/__tests__/__snapshots__/Config.test.mjs.md @@ -4,83 +4,18 @@ The actual snapshot is saved in `Config.test.mjs.snap`. Generated by [AVA](https://avajs.dev). -## load +## file load error > Snapshot 1 [ - { - message: 'Load new config at /app/jambox.config.js', - namespace: 'jambox.config', - }, - { - message: 'Watching /app/jambox.config.js for changes', - namespace: 'jambox.config', - }, - ] - -## updates & watch mode - -> Snapshot 1 - - [ - { - message: 'Load new config at /app/jambox.config.js', - namespace: 'jambox.config', - }, - { - message: 'Couldn\'t locale /app/.jambox/, creating one.', - namespace: 'jambox.config', - }, - { - message: 'Watching /app/jambox.config.js for changes', - namespace: 'jambox.config', - }, - { - message: 'Update existing config /app/jambox.config.js', - namespace: 'jambox.config', - }, - { - message: 'Update existing config /app/jambox.config.js', - namespace: 'jambox.config', - }, - ] - -## changes to cwd - -> Snapshot 1 - - [ - { - message: 'Load new config at /one/jambox.config.js', - namespace: 'jambox.config', - }, - { - message: 'Couldn\'t locale /one/.jambox/, creating one.', - namespace: 'jambox.config', - }, - { - message: 'Watching /one/jambox.config.js for changes', - namespace: 'jambox.config', - }, - { - message: 'Update existing config /one/jambox.config.js', - namespace: 'jambox.config', - }, - { - message: 'Load new config at /two/jambox.config.js', - namespace: 'jambox.config', - }, - { - message: 'Couldn\'t locale /two/.jambox/, creating one.', - namespace: 'jambox.config', - }, - { - message: 'Watching /two/jambox.config.js for changes', - namespace: 'jambox.config', - }, - { - message: 'Update existing config /two/jambox.config.js', - namespace: 'jambox.config', + Error { + message: `✘ [ERROR] Unexpected "defaults"␊ + ␊ + /app/jambox.config.js:2:13:␊ + 2 │ export defaults {}␊ + ╵ ~~~~~~~~␊ + ␊ + `, }, ] diff --git a/src/__tests__/__snapshots__/Config.test.mjs.snap b/src/__tests__/__snapshots__/Config.test.mjs.snap index f77e2b9..01b0d2c 100644 Binary files a/src/__tests__/__snapshots__/Config.test.mjs.snap and b/src/__tests__/__snapshots__/Config.test.mjs.snap differ diff --git a/src/browser.mjs b/src/browser.mjs index 31928a6..468115c 100644 --- a/src/browser.mjs +++ b/src/browser.mjs @@ -72,6 +72,7 @@ async function launchProxiedChrome(uri, info) { const browserName = info.browser || 'chrome'; const browsers = await detect(); const chrome = browsers.find(({ name }) => name === browserName); + // @ts-ignore const launch = await getLauncher(); if (os.platform() === 'darwin') { @@ -100,7 +101,7 @@ async function launchProxiedChrome(uri, info) { `--load-extension=${EXTENSION_PATH}`, ], }, - (err, instance) => { + (err, /** @type {any} */ instance) => { if (err !== null) { console.log(err); reject(err); diff --git a/src/constants.mjs b/src/constants.mjs index 7f72523..d3a45f7 100644 --- a/src/constants.mjs +++ b/src/constants.mjs @@ -2,6 +2,7 @@ import * as url from 'url'; import path from 'path'; import fs from 'fs'; +// @ts-ignore const __dirname = url.fileURLToPath(new URL('.', import.meta.url)); export const PROJECT_ROOT = path.join(__dirname, '..'); diff --git a/src/diagnostics.js b/src/diagnostics.cjs similarity index 52% rename from src/diagnostics.js rename to src/diagnostics.cjs index 8fa9e2d..fe596a8 100644 --- a/src/diagnostics.js +++ b/src/diagnostics.cjs @@ -14,25 +14,27 @@ const createDebug = (n) => { */ return (message) => debugChannel.publish({ namespace, message }); }; +exports.createDebug = createDebug; +/** + * @type {Record} + */ const debuggers = {}; let enabled = false; -debugChannel.subscribe((event) => { - if (!enabled) { - return; - } - if (!debuggers[event.namespace]) { - debuggers[event.namespace] = _debug(event.namespace); +debugChannel.subscribe( + (/** @type {{namespace: string; message: string; }} */ event) => { + if (!enabled) { + return; + } + if (!debuggers[event.namespace]) { + debuggers[event.namespace] = _debug(event.namespace); + } + debuggers[event.namespace](event.message); } - debuggers[event.namespace](event.message); -}); +); +exports.debugChannel = debugChannel; const enable = () => { enabled = true; }; - -module.exports = { - debugChannel, - createDebug, - enable, -}; +exports.enable = enable; diff --git a/src/entrypoint.mjs b/src/entrypoint.mjs index de70340..014f851 100644 --- a/src/entrypoint.mjs +++ b/src/entrypoint.mjs @@ -8,11 +8,11 @@ import isURI from './is-uri.mjs'; import launchServer from './server-launcher.mjs'; import Config from './Config.mjs'; import { parseArgs, JAMBOX_FLAGS } from './parse-args.mjs'; -import { createDebug } from './diagnostics.js'; +import { createDebug } from './diagnostics.cjs'; const debug = createDebug(); -export default async function cli(options) { +async function cli(options) { const { script, cwd = process.cwd(), log, env, constants } = options; const flags = parseArgs(script, JAMBOX_FLAGS); const [entrypoint, ...args] = flags.target; @@ -39,15 +39,17 @@ export default async function cli(options) { * - 'info' is kind of a poor name here * - We are looking for the proxy settings from the running instance */ - const info = await ( - await fetch(`${config.serverURL.href}api/reset`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ cwd }), - }) - ).json(); + const info = /** @type {import('./index.js').SerializedConfig} */ ( + await ( + await fetch(`${config.serverURL.href}api/reset`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ cwd }), + }) + ).json() + ); debug(`Check if entrypoint ${entrypoint} is a URI`); @@ -76,3 +78,5 @@ export default async function cli(options) { return { process: true }; } + +export default cli; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..f9c474f --- /dev/null +++ b/src/index.ts @@ -0,0 +1,121 @@ +// Typedoc entrypoint and where types are improted from into js + +export type ProxyInfo = { + http: string; + https: string; + env: object; +}; +export type SerializedConfig = { + serverURL: string; + paused: boolean; + blockNetworkRequests: boolean; + cwd: string; + forward: object; + cache: object; + trust: Array; + stub: object; + proxy: ProxyInfo; + noProxy: Array; + errors: Array; + browser: string; +}; + +export type ForwardOption = + | { + /** + * Target host to send traffic to. Must be a valid URL. + */ + target: string; + /** + * What paths should requests be matched aggainst. Accepts globs. + * + * Use `**` to match all paths + */ + paths: Array; + /** + * Should websocket requests also be matched? + * + * Default value: false + */ + websocket?: boolean; + } + | string; + +type StatusCode = number; +/** + * Stub Rule + * + * Either a status code or a config object + */ +export type StubOption = + | StatusCode + | { + status: StatusCode; + /** + * Optional status message. + * + * Defaults to 'jambox stub' + */ + statusMessage?: string; + /** + * File to respond with. Ignored if `body` is set + * + * Useful for image stubbing for example. + */ + file?: string; + /** + * If networking is enabled this stub will be ingnored in favor of a + * real response from a remote server + */ + preferNetwork?: boolean; + /** + * A body to respond with. Must be an object if defined. + */ + body?: object; + }; + +/** + * Cache options + */ +export type CacheOption = { + stage?: Array; + ignore?: Array; +}; + +/** + * Jambox File Configuration + * + * The file which exports these values will be watched as the proxy is running. + * Any changes to the config will be reflected on the already running proxy process. + * Anytime a config is changed the proxy resets and reloads values from cache. + */ +export interface FileConfig { + /** + * Should the proxy allow for any network access. + * + * Once set to true, the proxy will not allow any outdoing responses. However + * any requests which have a valid cache values will still respond with those + * cached responses. + */ + blockNetworkRequests: boolean; + /** + * Forwarding rules + * + * Accepts a key-value pair of Forward configs. Each key must be a valid URL. + * The host of the provided URL will be matched across all requests inspected + * by the Jambox proxy. + */ + forward?: Record; + /** + * Stub rules + * + * Key-value pairs of globs of request paths with a matching StubRule. + */ + stub?: Record; + /** + * Cache rules + * + * When falsy, caching is disabled. + */ + cache?: CacheOption; +} diff --git a/src/parse-args.mjs b/src/parse-args.mjs index 2d531f8..35a533c 100644 --- a/src/parse-args.mjs +++ b/src/parse-args.mjs @@ -1,3 +1,6 @@ +/** + * @type {Record} + */ export const JAMBOX_FLAGS = { '-r': ['reset', 0, Boolean], '--reset': ['reset', 0, Boolean], @@ -20,8 +23,8 @@ export const JAMBOX_FLAGS = { * target: ["yarn dev"] // etc * } * - * @param {Array} args - * @param {{[string]: [string, number]}} supported + * @param {Array} args + * @param {Record} supported * * @return {Object} */ diff --git a/src/read-user-config.js b/src/read-user-config.js index 256fba7..b067cb6 100644 --- a/src/read-user-config.js +++ b/src/read-user-config.js @@ -1,13 +1,41 @@ -const { createDebug } = require('./diagnostics.js'); +import * as nodeFSPromises from 'node:fs/promises'; +import { importFromString } from 'module-from-string'; +import * as esbuild from 'esbuild'; -const debug = createDebug('jambox.config'); +export const getLoader = (fsPromises = nodeFSPromises) => { + return async function loadConfig(/** @type {string} */ file) { + const code = await fsPromises.readFile(file, 'utf-8'); + try { + const result = await importFromString(code); + if (result && result.default) { + return result.default; + } -module.exports = (filepath) => { - try { - delete require.cache[require.resolve(filepath)]; - return require(filepath); - } catch (error) { - debug(`No config file found: ${filepath}.`); - return {}; - } + return result; + } catch (e) { + // non esbuild error + if (!e.errors) { + throw new Error(`Could not load ${file}`, { cause: e }); + } + + // Format the esbuild problem and throw that as the error + const errors = await esbuild.formatMessages( + e.errors.map(({ location, ...rest }) => { + return { + ...rest, + location: { + ...location, + file, + }, + }; + }), + { + kind: 'error', + color: false, + terminalWidth: 80, + } + ); + throw new Error(errors.join('\n')); + } + }; }; diff --git a/src/server-launcher.mjs b/src/server-launcher.mjs index 40fbc33..87e7688 100644 --- a/src/server-launcher.mjs +++ b/src/server-launcher.mjs @@ -5,7 +5,7 @@ import waitOn from 'wait-on'; import fetch from 'node-fetch'; import { spawn } from 'child_process'; import { PROJECT_ROOT, getVersion } from './constants.mjs'; -import { createDebug } from './diagnostics.js'; +import { createDebug } from './diagnostics.cjs'; const debug = createDebug(); @@ -69,7 +69,7 @@ const spawnServerProcess = async ({ log, config, constants }) => { */ const killOldServer = (config, log) => { log(`Sending a shutdown signal to running Jambox server.`); - return fetch(new URL('shutdown', config.serverURL)); + return fetch(String(new URL('shutdown', config.serverURL))); }; /** diff --git a/src/server/__tests__/broadcast.test.mjs b/src/server/__tests__/broadcast.test.mjs index 1140418..57fbcdc 100644 --- a/src/server/__tests__/broadcast.test.mjs +++ b/src/server/__tests__/broadcast.test.mjs @@ -11,8 +11,8 @@ test('cache broadcast', async (t) => { this.data.push(event); }, }; - const broadcaster = new Broadcaster(() => [client]); - const cache = new Cache('test'); + const broadcaster = new Broadcaster(() => new Set([client])); + const cache = new Cache(); broadcaster.broadcast(cache); diff --git a/src/server/index.mjs b/src/server/index.mjs index f34bdc8..e5dcd9d 100644 --- a/src/server/index.mjs +++ b/src/server/index.mjs @@ -13,7 +13,7 @@ import Broadcaster from './Broadcaster.mjs'; import cacheRouter from './routes/cache.route.mjs'; import resetRouter from './routes/reset.route.mjs'; import configRouter from './routes/config.route.mjs'; -import { createDebug } from '../diagnostics.js'; +import { createDebug } from '../diagnostics.cjs'; const debug = createDebug('server'); diff --git a/src/server/routes/__tests__/config.route.test.mjs b/src/server/routes/__tests__/config.route.test.mjs index 04b5bea..60e5874 100644 --- a/src/server/routes/__tests__/config.route.test.mjs +++ b/src/server/routes/__tests__/config.route.test.mjs @@ -16,7 +16,7 @@ test('get & post api', async (t) => { const app = express(); app.use(bodyParser.json()); - app.use((req, res, next) => + app.use((_req, _res, next) => enter( { jambox: { config, reset() {}, once: () => Promise.resolve() } }, next diff --git a/src/server/routes/reset.route.mjs b/src/server/routes/reset.route.mjs index 5aa64f4..140697e 100644 --- a/src/server/routes/reset.route.mjs +++ b/src/server/routes/reset.route.mjs @@ -8,7 +8,8 @@ router.post('/reset', async (req, res, next) => { try { if (req.body.cwd !== jambox().config.cwd) { // changing a config should reset jambox - jambox().config.load(req.body.cwd); + await jambox().config.load(req.body.cwd); + await jambox().once('jambox.reset'); } else { // Read a config from cwd await jambox().reset(); diff --git a/src/utils/tiny-server.mjs b/src/utils/tiny-server.mjs index 93c47f8..f142511 100644 --- a/src/utils/tiny-server.mjs +++ b/src/utils/tiny-server.mjs @@ -1,10 +1,14 @@ import http from 'http'; import express from 'express'; -// Promisify doesn't work right with http callbacks -const promise = (cb, ...args) => { +/** + * Promisify doesn't work right with http callbacks + * + * @param cb {Function} + */ +const promise = (cb, /** @type {any[]} */ ...args) => { return new Promise((res, rej) => { - args.push((err) => { + args.push((/** @type {Error?} */ err) => { if (err == null) { res(); return; @@ -15,7 +19,11 @@ const promise = (cb, ...args) => { }); }; -// This thing just echoes the paths +/** + * This thing just echoes the paths + * + * @param port {number} port number + */ export default async function tiny(port) { const app = express(); let connections = []; @@ -23,7 +31,7 @@ export default async function tiny(port) { app.get('/*', (req, res) => { res.status(200).json({ path: req.path }); }); - app.post('/delay', (req, res) => { + app.post('/delay', (_, res) => { setTimeout(() => { res.status(200).json({ delayed: 50 }); }, 50); @@ -39,6 +47,7 @@ export default async function tiny(port) { ); }); + // @ts-ignore server._close = () => { return new Promise((res, rej) => { connections.forEach((connection) => connection.end()); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..84894a4 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "include": ["src/**/*"], + "exclude": ["src/**/__tests__/*", "src/**/__mocks__/*"], + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "declaration": true, + "emitDeclarationOnly": true, + "outDir": "dist", + "declarationMap": true, + "moduleResolution": "NodeNext", + "sourceMap": false, + "skipLibCheck": true + }, + "typeAcquisition": { + "enable": true, + "include": ["src/index.ts"] + }, + "ts-node": { + "transpileOnly": true, + "compilerOptions": { + "module": "ES2022" + } + } +} diff --git a/webpack.config.js b/webpack.config.js index 81cdb8e..1795729 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,10 +1,16 @@ -const path = require('path'); -const HTMLWebpackPlugin = require('html-webpack-plugin'); -const ManifestPlugin = require('./manifest-plugin.js'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const { EnvironmentPlugin } = require('webpack'); +import * as url from 'node:url'; +import path from 'node:path'; +import { createRequire } from 'node:module'; +import HTMLWebpackPlugin from 'html-webpack-plugin'; +import ManifestPlugin from './manifest-plugin.js'; +import CopyWebpackPlugin from 'copy-webpack-plugin'; +import webpack from 'webpack'; -module.exports = { +const { EnvironmentPlugin } = webpack; +const __dirname = url.fileURLToPath(new URL('.', import.meta.url)); +const require = createRequire(import.meta.url); + +export default { mode: process.env.CI ? 'production' : 'development', devtool: 'source-map', entry: { @@ -54,7 +60,13 @@ module.exports = { module: { rules: [ { - test: /.(js)$/, + test: /\.(js)$/, + resolve: { + fullySpecified: false, + }, + }, + { + test: /\.(js)$/, loader: 'babel-loader', }, { diff --git a/yarn.lock b/yarn.lock index 041b72f..5ccc08f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1404,6 +1404,38 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.15.18": + version: 0.15.18 + resolution: "@esbuild/android-arm@npm:0.15.18" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.15.18": + version: 0.15.18 + resolution: "@esbuild/linux-loong64@npm:0.15.18" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1": + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.4.1": version: 1.4.1 resolution: "@eslint/eslintrc@npm:1.4.1" @@ -1661,6 +1693,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -1678,6 +1717,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.5 + resolution: "@jridgewell/source-map@npm:0.3.5" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -1685,7 +1734,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.14, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.17 resolution: "@jridgewell/trace-mapping@npm:0.3.17" dependencies: @@ -1695,6 +1751,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.17": + version: 0.3.20 + resolution: "@jridgewell/trace-mapping@npm:0.3.20" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: cd1a7353135f385909468ff0cf20bdd37e59f2ee49a13a966dedf921943e222082c583ade2b579ff6cd0d8faafcb5461f253e1bf2a9f48fec439211fdbe788f5 + languageName: node + linkType: hard + "@lezer/common@npm:^1.0.0": version: 1.0.3 resolution: "@lezer/common@npm:1.0.3" @@ -1906,10 +1972,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^0.0.51": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189 +"@types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a languageName: node linkType: hard @@ -1957,6 +2023,20 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.12": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + +"@types/minimatch@npm:^5.1.2": + version: 5.1.2 + resolution: "@types/minimatch@npm:5.1.2" + checksum: 0391a282860c7cb6fe262c12b99564732401bdaa5e395bee9ca323c312c1a0f45efbf34dce974682036e857db59a5c9b1da522f3d6055aeead7097264c8705a8 + languageName: node + linkType: hard + "@types/node@npm:*": version: 18.11.18 resolution: "@types/node@npm:18.11.18" @@ -1978,6 +2058,13 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.5.0": + version: 7.5.5 + resolution: "@types/semver@npm:7.5.5" + checksum: 533e6c93d1262d65f449423d94a445f7f3db0672e7429f21b6a1636d6051dbab3a2989ddcda9b79c69bb37830931d09fc958a65305a891357f5cea3257c297f5 + languageName: node + linkType: hard + "@types/sinonjs__fake-timers@npm:8.1.1": version: 8.1.1 resolution: "@types/sinonjs__fake-timers@npm:8.1.1" @@ -2036,187 +2123,309 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ast@npm:1.11.1" +"@typescript-eslint/eslint-plugin@npm:^6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.12.0" + dependencies: + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.12.0 + "@typescript-eslint/type-utils": 6.12.0 + "@typescript-eslint/utils": 6.12.0 + "@typescript-eslint/visitor-keys": 6.12.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: a791ebe432a6cac50a15c9e98502b62e874de0c7e35fd320b9bdca21afd4ae88c88cff45ee50a95362da14e98965d946e57b15965f5522f1153568a3fe45db8a + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/parser@npm:6.12.0" + dependencies: + "@typescript-eslint/scope-manager": 6.12.0 + "@typescript-eslint/types": 6.12.0 + "@typescript-eslint/typescript-estree": 6.12.0 + "@typescript-eslint/visitor-keys": 6.12.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 92923b7ee61f52d6b74f515640fe6bbb6b0a922d20dabeb6b59bc73f3c132bf750a2b706bb40fbe6d233c6ecc1abe905c99aa062280bb78e5724334f5b6c4ac5 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/scope-manager@npm:6.12.0" + dependencies: + "@typescript-eslint/types": 6.12.0 + "@typescript-eslint/visitor-keys": 6.12.0 + checksum: 4cc4eb1bcd04ba7b0a1de4284521cde5f3f25f2530f78dfcb3f098396b142fd30a45f615a87dc7a3adddbd131a6255cb12b1df19aacff71a3f766992ddef183f + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/type-utils@npm:6.12.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.12.0 + "@typescript-eslint/utils": 6.12.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: c345c45f1262eee4b9f6960a59b3aba960643d0004094a3d8fb9682ab79af2fae864695029246dc9e0d4fdb2f3d017a56b7dc034e551d263deba75c2ef048d39 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/types@npm:6.12.0" + checksum: d3b40f9d400f6455ce5ae610651597c9e9ec85d46ca6d3c1025597a76305c557ebc5b88340ec6db0e694c9c79f1299d375b87a1a5b9314b22231dbbb5ce54695 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.12.0" + dependencies: + "@typescript-eslint/types": 6.12.0 + "@typescript-eslint/visitor-keys": 6.12.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: 943f7ff2e164d812f6ae0a2d5096836aff00b1fda39937b03f126f266f03f3655794f5fc4643b49b71c312126d9422dfd764744bd1ba41ee6821a5bac1511aa2 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/utils@npm:6.12.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.12.0 + "@typescript-eslint/types": 6.12.0 + "@typescript-eslint/typescript-estree": 6.12.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: dad05bd0e4db7a88c2716f9ee83c7c28c30d71e57392e58dc0db66b5f5c4c86b9db14142c6a1a82cf1650da294d31980c56a118015d3a2a645acb8b8a5ebc315 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.12.0": + version: 6.12.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.12.0" + dependencies: + "@typescript-eslint/types": 6.12.0 + eslint-visitor-keys: ^3.4.1 + checksum: 3d8dc74ae748a95fe60b48dbaecca8d9c0c8df344d8034e3843057251fba24f06a3d29dbb9f525c9540b538d8c24221d3cf119ac483e9de38149a978051c72f3 + languageName: node + linkType: hard + +"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/ast@npm:1.11.6" dependencies: - "@webassemblyjs/helper-numbers": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - checksum: 1eee1534adebeece635362f8e834ae03e389281972611408d64be7895fc49f48f98fddbbb5339bf8a72cb101bcb066e8bca3ca1bf1ef47dadf89def0395a8d87 + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" - checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97 +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" - checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959 +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" - checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce +"@webassemblyjs/helper-buffer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" + checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 "@xtuc/long": 4.2.2 - checksum: 44d2905dac2f14d1e9b5765cf1063a0fa3d57295c6d8930f6c59a36462afecc6e763e8a110b97b342a0f13376166c5d41aa928e6ced92e2f06b071fd0db59d3a + checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" - checksum: eac400113127832c88f5826bcc3ad1c0db9b3dbd4c51a723cfdb16af6bfcbceb608170fdaac0ab7731a7e18b291be7af68a47fcdb41cfe0260c10857e7413d97 +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" +"@webassemblyjs/helper-wasm-section@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - checksum: 617696cfe8ecaf0532763162aaf748eb69096fb27950219bb87686c6b2e66e11cd0614d95d319d0ab1904bc14ebe4e29068b12c3e7c5e020281379741fe4bedf + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ieee754@npm:1.11.1" +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" dependencies: "@xtuc/ieee754": ^1.2.0 - checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/leb128@npm:1.11.1" +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" dependencies: "@xtuc/long": 4.2.2 - checksum: 33ccc4ade2f24de07bf31690844d0b1ad224304ee2062b0e464a610b0209c79e0b3009ac190efe0e6bd568b0d1578d7c3047fc1f9d0197c92fc061f56224ff4a + checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/utf8@npm:1.11.1" - checksum: 972c5cfc769d7af79313a6bfb96517253a270a4bf0c33ba486aa43cac43917184fb35e51dfc9e6b5601548cd5931479a42e42c89a13bb591ffabebf30c8a6a0b +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" +"@webassemblyjs/wasm-edit@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/helper-wasm-section": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-opt": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - "@webassemblyjs/wast-printer": 1.11.1 - checksum: 6d7d9efaec1227e7ef7585a5d7ff0be5f329f7c1c6b6c0e906b18ed2e9a28792a5635e450aca2d136770d0207225f204eff70a4b8fd879d3ac79e1dcc26dbeb9 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-opt": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + "@webassemblyjs/wast-printer": 1.11.6 + checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" +"@webassemblyjs/wasm-gen@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1f6921e640293bf99fb16b21e09acb59b340a79f986c8f979853a0ae9f0b58557534b81e02ea2b4ef11e929d946708533fd0693c7f3712924128fdafd6465f5b + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" +"@webassemblyjs/wasm-opt@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - checksum: 21586883a20009e2b20feb67bdc451bbc6942252e038aae4c3a08e6f67b6bae0f5f88f20bfc7bd0452db5000bacaf5ab42b98cf9aa034a6c70e9fc616142e1db + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" +"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1521644065c360e7b27fad9f4bb2df1802d134dd62937fa1f601a1975cde56bc31a57b6e26408b9ee0228626ff3ba1131ae6f74ffb7d718415b6528c5a6dbfc2 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wast-printer@npm:1.11.1" +"@webassemblyjs/wast-printer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wast-printer@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 + "@webassemblyjs/ast": 1.11.6 "@xtuc/long": 4.2.2 - checksum: f15ae4c2441b979a3b4fce78f3d83472fb22350c6dc3fd34bfe7c3da108e0b2360718734d961bba20e7716cb8578e964b870da55b035e209e50ec9db0378a3f7 + checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 languageName: node linkType: hard -"@webpack-cli/configtest@npm:^1.2.0": - version: 1.2.0 - resolution: "@webpack-cli/configtest@npm:1.2.0" +"@webpack-cli/configtest@npm:^2.1.1": + version: 2.1.1 + resolution: "@webpack-cli/configtest@npm:2.1.1" peerDependencies: - webpack: 4.x.x || 5.x.x - webpack-cli: 4.x.x - checksum: a2726cd9ec601d2b57e5fc15e0ebf5200a8892065e735911269ac2038e62be4bfc176ea1f88c2c46ff09b4d05d4c10ae045e87b3679372483d47da625a327e28 + webpack: 5.x.x + webpack-cli: 5.x.x + checksum: 9f9f9145c2d05471fc83d426db1df85cf49f329836b0c4b9f46b6948bed4b013464c00622b136d2a0a26993ce2306976682592245b08ee717500b1db45009a72 languageName: node linkType: hard -"@webpack-cli/info@npm:^1.5.0": - version: 1.5.0 - resolution: "@webpack-cli/info@npm:1.5.0" - dependencies: - envinfo: ^7.7.3 +"@webpack-cli/info@npm:^2.0.2": + version: 2.0.2 + resolution: "@webpack-cli/info@npm:2.0.2" peerDependencies: - webpack-cli: 4.x.x - checksum: 7f56fe037cd7d1fd5c7428588519fbf04a0cad33925ee4202ffbafd00f8ec1f2f67d991245e687d50e0f3e23f7b7814273d56cb9f7da4b05eed47c8d815c6296 + webpack: 5.x.x + webpack-cli: 5.x.x + checksum: 8f9a178afca5c82e113aed1efa552d64ee5ae4fdff63fe747c096a981ec74f18a5d07bd6e89bbe6715c3e57d96eea024a410e58977169489fe1df044c10dd94e languageName: node linkType: hard -"@webpack-cli/serve@npm:^1.7.0": - version: 1.7.0 - resolution: "@webpack-cli/serve@npm:1.7.0" +"@webpack-cli/serve@npm:^2.0.5": + version: 2.0.5 + resolution: "@webpack-cli/serve@npm:2.0.5" peerDependencies: - webpack-cli: 4.x.x + webpack: 5.x.x + webpack-cli: 5.x.x peerDependenciesMeta: webpack-dev-server: optional: true - checksum: d475e8effa23eb7ff9a48b14d4de425989fd82f906ce71c210921cc3852327c22873be00c35e181a25a6bd03d424ae2b83e7f3b3f410ac7ee31b128ab4ac7713 + checksum: 75f0e54681796d567a71ac3e2781d2901a8d8cf1cdfc82f261034dddac59a8343e8c3bc5e32b4bb9d6766759ba49fb29a5cd86ef1701d79c506fe886bb63ac75 languageName: node linkType: hard @@ -2273,12 +2482,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" +"acorn-import-assertions@npm:^1.9.0": + version: 1.9.0 + resolution: "acorn-import-assertions@npm:1.9.0" peerDependencies: acorn: ^8 - checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6 + checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c languageName: node linkType: hard @@ -2307,6 +2516,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.8.2": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" + bin: + acorn: bin/acorn + checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 + languageName: node + linkType: hard + "after@npm:^0.8.2, after@npm:~0.8.1": version: 0.8.2 resolution: "after@npm:0.8.2" @@ -2470,6 +2688,13 @@ __metadata: languageName: node linkType: hard +"ansi-sequence-parser@npm:^1.1.0": + version: 1.1.1 + resolution: "ansi-sequence-parser@npm:1.1.1" + checksum: ead5b15c596e8e85ca02951a844366c6776769dcc9fd1bd3a0db11bb21364554822c6a439877fb599e7e1ffa0b5f039f1e5501423950457f3dcb2f480c30b188 + languageName: node + linkType: hard + "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -2583,6 +2808,13 @@ __metadata: languageName: node linkType: hard +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + "arrgv@npm:^1.0.2": version: 1.0.2 resolution: "arrgv@npm:1.0.2" @@ -3488,6 +3720,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^10.0.1": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 + languageName: node + linkType: hard + "commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -3502,13 +3741,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^7.0.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - "commander@npm:^8.3.0": version: 8.3.0 resolution: "commander@npm:8.3.0" @@ -3851,6 +4083,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^6.0.0": version: 6.0.1 resolution: "data-uri-to-buffer@npm:6.0.1" @@ -4240,13 +4479,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.10.0": - version: 5.12.0 - resolution: "enhanced-resolve@npm:5.12.0" +"enhanced-resolve@npm:^5.15.0": + version: 5.15.0 + resolution: "enhanced-resolve@npm:5.15.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: bf3f787facaf4ce3439bef59d148646344e372bef5557f0d37ea8aa02c51f50a925cd1f07b8d338f18992c29f544ec235a8c64bcdb56030196c48832a5494174 + checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 languageName: node linkType: hard @@ -4289,10 +4528,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.0": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 +"es-module-lexer@npm:^1.2.1": + version: 1.4.1 + resolution: "es-module-lexer@npm:1.4.1" + checksum: a11b5a256d4e8e9c7d94c2fd87415ccd1591617b6edd847e064503f8eaece2d25e2e9078a02c5ce3ed5e83bb748f5b4820efbe78072c8beb07ac619c2edec35d languageName: node linkType: hard @@ -4303,6 +4542,223 @@ __metadata: languageName: node linkType: hard +"esbuild-android-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-android-64@npm:0.15.18" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"esbuild-android-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-android-arm64@npm:0.15.18" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-darwin-64@npm:0.15.18" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-darwin-arm64@npm:0.15.18" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-freebsd-64@npm:0.15.18" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-freebsd-arm64@npm:0.15.18" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-32@npm:0.15.18" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-64@npm:0.15.18" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-arm64@npm:0.15.18" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-arm@npm:0.15.18" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-mips64le@npm:0.15.18" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-ppc64le@npm:0.15.18" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"esbuild-linux-riscv64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-riscv64@npm:0.15.18" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"esbuild-linux-s390x@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-s390x@npm:0.15.18" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-netbsd-64@npm:0.15.18" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-openbsd-64@npm:0.15.18" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-sunos-64@npm:0.15.18" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-windows-32@npm:0.15.18" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-windows-64@npm:0.15.18" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-windows-arm64@npm:0.15.18" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:^0.15.7": + version: 0.15.18 + resolution: "esbuild@npm:0.15.18" + dependencies: + "@esbuild/android-arm": 0.15.18 + "@esbuild/linux-loong64": 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/linux-loong64": + optional: true + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: ec12682b2cb2d4f0669d0e555028b87a9284ca7f6a1b26e35e69a8697165b35cc682ad598abc70f0bbcfdc12ca84ef888caf5ceee389237862e8f8c17da85f89 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -4446,6 +4902,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^3.4.1": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + "eslint@npm:^8.31.0": version: 8.31.0 resolution: "eslint@npm:8.31.0" @@ -4740,6 +5203,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.2.9": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -4786,6 +5262,16 @@ __metadata: languageName: node linkType: hard +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.3": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: ^1.0.0 + web-streams-polyfill: ^3.0.3 + checksum: f19bc28a2a0b9626e69fd7cf3a05798706db7f6c7548da657cbf5026a570945f5eeaedff52007ea35c8bcd3d237c58a20bf1543bc568ab2422411d762dd3d5bf + languageName: node + linkType: hard + "figures@npm:^3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -4993,6 +5479,15 @@ __metadata: languageName: node linkType: hard +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: ^3.1.2 + checksum: 82a34df292afadd82b43d4a740ce387bc08541e0a534358425193017bf9fb3567875dc5f69564984b1da979979b70703aa73dee715a17b6c229752ae736dd9db + languageName: node + linkType: hard + "formidable@npm:^2.1.1": version: 2.1.2 resolution: "formidable@npm:2.1.2" @@ -5128,6 +5623,13 @@ __metadata: languageName: node linkType: hard +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -5345,6 +5847,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + "globby@npm:^13.1.1, globby@npm:^13.1.2": version: 13.1.3 resolution: "globby@npm:13.1.3" @@ -5372,6 +5888,13 @@ __metadata: languageName: node linkType: hard +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + "graphql-http@npm:^1.22.0": version: 1.22.0 resolution: "graphql-http@npm:1.22.0" @@ -5456,6 +5979,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" + dependencies: + function-bind: ^1.1.2 + checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -5712,6 +6244,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.2.4": + version: 5.3.0 + resolution: "ignore@npm:5.3.0" + checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9 + languageName: node + linkType: hard + "immutable-json-patch@npm:^5.1.2": version: 5.1.3 resolution: "immutable-json-patch@npm:5.1.3" @@ -5807,10 +6346,10 @@ __metadata: languageName: node linkType: hard -"interpret@npm:^2.2.0": - version: 2.2.0 - resolution: "interpret@npm:2.2.0" - checksum: f51efef7cb8d02da16408ffa3504cd6053014c5aeb7bb8c223727e053e4235bf565e45d67028b0c8740d917c603807aa3c27d7bd2f21bf20b6417e2bb3e5fd6e +"interpret@npm:^3.1.1": + version: 3.1.1 + resolution: "interpret@npm:3.1.1" + checksum: 35cebcf48c7351130437596d9ab8c8fe131ce4038da4561e6d665f25640e0034702a031cf7e3a5cea60ac7ac548bf17465e0571ede126f3d3a6933152171ac82 languageName: node linkType: hard @@ -5862,6 +6401,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.13.0": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" + dependencies: + hasown: ^2.0.0 + checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c + languageName: node + linkType: hard + "is-core-module@npm:^2.9.0": version: 2.11.0 resolution: "is-core-module@npm:2.11.0" @@ -6100,7 +6648,10 @@ __metadata: "@babel/preset-env": ^7.20.2 "@httptoolkit/browser-launcher": ^2.0.2 "@types/chrome": ^0.0.237 + "@types/minimatch": ^5.1.2 "@types/zen-observable": ^0.8.3 + "@typescript-eslint/eslint-plugin": ^6.12.0 + "@typescript-eslint/parser": ^6.12.0 "@yarnpkg/fslib": ^3.0.0-rc.48 "@yarnpkg/libzip": ^3.0.0-rc.48 arg: ^5.0.2 @@ -6127,8 +6678,9 @@ __metadata: memfs: ^4.2.1 minimatch: ^5.1.0 mockttp: ^3.9.4 + module-from-string: ^3.3.0 nock: ^13.2.9 - node-fetch: 2.6.7 + node-fetch: 3.1.1 nodemon: ^2.0.20 osenv: ^0.1.5 prettier: ^2.8.1 @@ -6144,11 +6696,12 @@ __metadata: svelte-table: ^0.6.1 svelte-watch-resize: ^1.0.3 tail-file: ^1.4.15 + typedoc: ^0.25.3 typescript: ^5.1.3 wait-on: ^6.0.1 webextension-polyfill: ^0.10.0 - webpack: ^5.74.0 - webpack-cli: ^4.10.0 + webpack: ^5.89.0 + webpack-cli: ^5.1.4 zen-observable: ^0.9.0 bin: jam: ./jam.mjs @@ -6345,6 +6898,13 @@ __metadata: languageName: node linkType: hard +"jsonc-parser@npm:^3.2.0": + version: 3.2.0 + resolution: "jsonc-parser@npm:3.2.0" + checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7 + languageName: node + linkType: hard + "jsonfile@npm:^4.0.0": version: 4.0.0 resolution: "jsonfile@npm:4.0.0" @@ -6690,6 +7250,13 @@ __metadata: languageName: node linkType: hard +"lunr@npm:^2.3.9": + version: 2.3.9 + resolution: "lunr@npm:2.3.9" + checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 + languageName: node + linkType: hard + "make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -6732,6 +7299,15 @@ __metadata: languageName: node linkType: hard +"marked@npm:^4.3.0": + version: 4.3.0 + resolution: "marked@npm:4.3.0" + bin: + marked: bin/marked.js + checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260 + languageName: node + linkType: hard + "matcher@npm:^3.0.0": version: 3.0.0 resolution: "matcher@npm:3.0.0" @@ -6906,6 +7482,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.7 resolution: "minimist@npm:1.2.7" @@ -7075,6 +7660,16 @@ __metadata: languageName: node linkType: hard +"module-from-string@npm:^3.3.0": + version: 3.3.0 + resolution: "module-from-string@npm:3.3.0" + dependencies: + esbuild: ^0.15.7 + nanoid: ^3.3.4 + checksum: 643be8c299ddae0a19cecbec1c549fa04f5505d9b6652e628f370d12a22993e97782e3ce96765c4d6412dfd5a7188f005acaa57688a2ac98cedaa423506f972f + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -7201,6 +7796,13 @@ __metadata: languageName: node linkType: hard +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f + languageName: node + linkType: hard + "node-fetch@npm:2.6.7": version: 2.6.7 resolution: "node-fetch@npm:2.6.7" @@ -7215,6 +7817,17 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:3.1.1": + version: 3.1.1 + resolution: "node-fetch@npm:3.1.1" + dependencies: + data-uri-to-buffer: ^4.0.0 + fetch-blob: ^3.1.3 + formdata-polyfill: ^4.0.10 + checksum: 2e03f9a309a0a3e20758045e5eea5f1a0961be236f01cf9caecfd2224a1388a59a5c7fa3809d16f76cce1b5b7411a61db146fd265b7af5a6c9e5920a18eeef63 + languageName: node + linkType: hard + "node-forge@npm:^1.2.1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" @@ -8318,12 +8931,12 @@ __metadata: languageName: node linkType: hard -"rechoir@npm:^0.7.0": - version: 0.7.1 - resolution: "rechoir@npm:0.7.1" +"rechoir@npm:^0.8.0": + version: 0.8.0 + resolution: "rechoir@npm:0.8.0" dependencies: - resolve: ^1.9.0 - checksum: 2a04aab4e28c05fcd6ee6768446bc8b859d8f108e71fc7f5bcbc5ef25e53330ce2c11d10f82a24591a2df4c49c4f61feabe1fd11f844c66feedd4cd7bb61146a + resolve: ^1.20.0 + checksum: ad3caed8afdefbc33fbc30e6d22b86c35b3d51c2005546f4e79bcc03c074df804b3640ad18945e6bef9ed12caedc035655ec1082f64a5e94c849ff939dc0a788 languageName: node linkType: hard @@ -8496,7 +9109,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.9.0": +"resolve@npm:^1.13.1, resolve@npm:^1.14.2": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -8509,7 +9122,20 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.9.0#~builtin": +"resolve@npm:^1.20.0": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" dependencies: @@ -8522,6 +9148,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.20.0#~builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -8650,7 +9289,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1": +"schema-utils@npm:^3.1.1": version: 3.1.1 resolution: "schema-utils@npm:3.1.1" dependencies: @@ -8661,6 +9300,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": ^7.0.8 + ajv: ^6.12.5 + ajv-keywords: ^3.5.2 + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 + languageName: node + linkType: hard + "schema-utils@npm:^4.0.0": version: 4.0.0 resolution: "schema-utils@npm:4.0.0" @@ -8709,7 +9359,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.5.3": +"semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -8768,6 +9418,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^6.0.1": + version: 6.0.1 + resolution: "serialize-javascript@npm:6.0.1" + dependencies: + randombytes: ^2.1.0 + checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f + languageName: node + linkType: hard + "serve-static@npm:1.15.0": version: 1.15.0 resolution: "serve-static@npm:1.15.0" @@ -8819,6 +9478,18 @@ __metadata: languageName: node linkType: hard +"shiki@npm:^0.14.1": + version: 0.14.5 + resolution: "shiki@npm:0.14.5" + dependencies: + ansi-sequence-parser: ^1.1.0 + jsonc-parser: ^3.2.0 + vscode-oniguruma: ^1.7.0 + vscode-textmate: ^8.0.0 + checksum: 41d847817cfc9bb6d8bf190316896698d250303656546446659cc02caed8dcc171b10cd113bb5da82425b51d0032e87aafcdc36c3dd61dadc123170b438da736 + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -9486,15 +10157,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.1.3": - version: 5.3.6 - resolution: "terser-webpack-plugin@npm:5.3.6" +"terser-webpack-plugin@npm:^5.3.7": + version: 5.3.9 + resolution: "terser-webpack-plugin@npm:5.3.9" dependencies: - "@jridgewell/trace-mapping": ^0.3.14 + "@jridgewell/trace-mapping": ^0.3.17 jest-worker: ^27.4.5 schema-utils: ^3.1.1 - serialize-javascript: ^6.0.0 - terser: ^5.14.1 + serialize-javascript: ^6.0.1 + terser: ^5.16.8 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -9504,11 +10175,11 @@ __metadata: optional: true uglify-js: optional: true - checksum: 8f3448d7fdb0434ce6a0c09d95c462bfd2f4a5a430233d854163337f734a7f5c07c74513d16081e06d4ca33d366d5b1a36f5444219bc41a7403afd6162107bad + checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.14.1": +"terser@npm:^5.10.0": version: 5.16.1 resolution: "terser@npm:5.16.1" dependencies: @@ -9522,6 +10193,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.16.8": + version: 5.24.0 + resolution: "terser@npm:5.24.0" + dependencies: + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: d88f774b6fa711a234fcecefd7657f99189c367e17dbe95a51c2776d426ad0e4d98d1ffe6edfdf299877c7602e495bdd711d21b2caaec188410795e5447d0f6c + languageName: node + linkType: hard + "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" @@ -9630,6 +10315,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.0.1": + version: 1.0.3 + resolution: "ts-api-utils@npm:1.0.3" + peerDependencies: + typescript: ">=4.2.0" + checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 + languageName: node + linkType: hard + "tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0": version: 2.4.1 resolution: "tslib@npm:2.4.1" @@ -9709,6 +10403,22 @@ __metadata: languageName: node linkType: hard +"typedoc@npm:^0.25.3": + version: 0.25.3 + resolution: "typedoc@npm:0.25.3" + dependencies: + lunr: ^2.3.9 + marked: ^4.3.0 + minimatch: ^9.0.3 + shiki: ^0.14.1 + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x + bin: + typedoc: bin/typedoc + checksum: 060a8f798b32a0e70aa3b16e04d95b56fcfabf54f75fdff74fd9ddeed8860db3ba030d153f8b535b409a9d8825856252bc59f401619e5e3e2f71d3b9e0de606a + languageName: node + linkType: hard + "typescript@npm:^5.1.3": version: 5.1.3 resolution: "typescript@npm:5.1.3" @@ -9932,6 +10642,20 @@ __metadata: languageName: node linkType: hard +"vscode-oniguruma@npm:^1.7.0": + version: 1.7.0 + resolution: "vscode-oniguruma@npm:1.7.0" + checksum: 53519d91d90593e6fb080260892e87d447e9b200c4964d766772b5053f5699066539d92100f77f1302c91e8fc5d9c772fbe40fe4c90f3d411a96d5a9b1e63f42 + languageName: node + linkType: hard + +"vscode-textmate@npm:^8.0.0": + version: 8.0.0 + resolution: "vscode-textmate@npm:8.0.0" + checksum: 127780dfea89559d70b8326df6ec344cfd701312dd7f3f591a718693812b7852c30b6715e3cfc8b3200a4e2515b4c96f0843c0eacc0a3020969b5de262c2a4bb + languageName: node + linkType: hard + "w3c-keyname@npm:^2.2.4": version: 2.2.8 resolution: "w3c-keyname@npm:2.2.8" @@ -9964,6 +10688,13 @@ __metadata: languageName: node linkType: hard +"web-streams-polyfill@npm:^3.0.3": + version: 3.2.1 + resolution: "web-streams-polyfill@npm:3.2.1" + checksum: b119c78574b6d65935e35098c2afdcd752b84268e18746606af149e3c424e15621b6f1ff0b42b2676dc012fc4f0d313f964b41a4b5031e525faa03997457da02 + languageName: node + linkType: hard + "webextension-polyfill@npm:^0.10.0": version: 0.10.0 resolution: "webextension-polyfill@npm:0.10.0" @@ -9978,36 +10709,35 @@ __metadata: languageName: node linkType: hard -"webpack-cli@npm:^4.10.0": - version: 4.10.0 - resolution: "webpack-cli@npm:4.10.0" +"webpack-cli@npm:^5.1.4": + version: 5.1.4 + resolution: "webpack-cli@npm:5.1.4" dependencies: "@discoveryjs/json-ext": ^0.5.0 - "@webpack-cli/configtest": ^1.2.0 - "@webpack-cli/info": ^1.5.0 - "@webpack-cli/serve": ^1.7.0 + "@webpack-cli/configtest": ^2.1.1 + "@webpack-cli/info": ^2.0.2 + "@webpack-cli/serve": ^2.0.5 colorette: ^2.0.14 - commander: ^7.0.0 + commander: ^10.0.1 cross-spawn: ^7.0.3 + envinfo: ^7.7.3 fastest-levenshtein: ^1.0.12 import-local: ^3.0.2 - interpret: ^2.2.0 - rechoir: ^0.7.0 + interpret: ^3.1.1 + rechoir: ^0.8.0 webpack-merge: ^5.7.3 peerDependencies: - webpack: 4.x.x || 5.x.x + webpack: 5.x.x peerDependenciesMeta: "@webpack-cli/generators": optional: true - "@webpack-cli/migrate": - optional: true webpack-bundle-analyzer: optional: true webpack-dev-server: optional: true bin: webpack-cli: bin/cli.js - checksum: 2ff5355ac348e6b40f2630a203b981728834dca96d6d621be96249764b2d0fc01dd54edfcc37f02214d02935de2cf0eefd6ce689d970d154ef493f01ba922390 + checksum: 3a4ad0d0342a6815c850ee4633cc2a8a5dae04f918e7847f180bf24ab400803cf8a8943707ffbed03eb20fe6ce647f996f60a2aade87b0b4a9954da3da172ce0 languageName: node linkType: hard @@ -10028,21 +10758,21 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.74.0": - version: 5.75.0 - resolution: "webpack@npm:5.75.0" +"webpack@npm:^5.89.0": + version: 5.89.0 + resolution: "webpack@npm:5.89.0" dependencies: "@types/eslint-scope": ^3.7.3 - "@types/estree": ^0.0.51 - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/wasm-edit": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 + "@types/estree": ^1.0.0 + "@webassemblyjs/ast": ^1.11.5 + "@webassemblyjs/wasm-edit": ^1.11.5 + "@webassemblyjs/wasm-parser": ^1.11.5 acorn: ^8.7.1 - acorn-import-assertions: ^1.7.6 + acorn-import-assertions: ^1.9.0 browserslist: ^4.14.5 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.10.0 - es-module-lexer: ^0.9.0 + enhanced-resolve: ^5.15.0 + es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 @@ -10051,9 +10781,9 @@ __metadata: loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.1.0 + schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.3 + terser-webpack-plugin: ^5.3.7 watchpack: ^2.4.0 webpack-sources: ^3.2.3 peerDependenciesMeta: @@ -10061,7 +10791,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 2bcc5f3c195f375944e8af2f00bf2feea39cb9fda5f763b0d1b00077f1c51783db25c94d3fae96a07dead9fa085e6ae7474417e5ab31719c9776ea5969ceb83a + checksum: 43fe0dbc30e168a685ef5a86759d5016a705f6563b39a240aa00826a80637d4a3deeb8062e709d6a4b05c63e796278244c84b04174704dc4a37bedb0f565c5ed languageName: node linkType: hard