From bff1d34e81e2eb2a2549092b427cbdf0889f72f0 Mon Sep 17 00:00:00 2001 From: dskvr Date: Fri, 25 Oct 2024 21:50:04 +0200 Subject: [PATCH] # This is a combination of 12 commits. # This is the 1st commit message: monorepo # The commit message #2 will be skipped: # rearrange and break everything # The commit message #3 will be skipped: # stuff # The commit message #4 will be skipped: # add svelte package/demo # The commit message #5 will be skipped: # add svelte package/demo # The commit message #6 will be skipped: # remove yarn lock # The commit message #7 will be skipped: # update README add reactjs package # The commit message #8 will be skipped: # update wrapper # The commit message #9 will be skipped: # update svelte demo # The commit message #10 will be skipped: # remove accidental node_modules and add build scripts # The commit message #11 will be skipped: # move core to rust and update scripts so whenever rust is built is copies to packages/core # The commit message #12 will be skipped: # remove demo from @notemine/wrapper --- .changeset/README.md | 8 + .changeset/config.json | 11 + .gitignore | 7 +- .pnp.cjs | 17470 ++++++++++++++++ .pnp.loader.mjs | 2126 ++ .yarn/install-state.gz | Bin 0 -> 732351 bytes README.md | 34 +- demo/pkg | 1 - demos/reactjs/.gitkeep | 0 demos/svelte/.eslintrc.json | 5 + demos/svelte/.gitignore | 4 + demos/svelte/.gitkeep | 0 demos/svelte/README.md | 18 + demos/svelte/package.json | 36 + demos/svelte/public/build/bundle.css | 1 + demos/svelte/public/build/bundle.js | 9091 ++++++++ demos/svelte/public/build/bundle.js.map | 1 + demos/svelte/public/build/notemine_bg.wasm | Bin 0 -> 146661 bytes demos/svelte/public/favicon.png | Bin 0 -> 3127 bytes demos/svelte/public/global.css | 63 + .../lib => demos/svelte/public}/img/anon.svg | 0 demos/svelte/public/index.html | 18 + demos/svelte/rollup.config.js | 92 + demos/svelte/scripts/setupTypeScript.js | 134 + demos/svelte/src/App.svelte | 365 + demos/svelte/src/lib/nostr.js | 122 + demos/svelte/src/lib/stores/content-state.js | 7 + demos/svelte/src/lib/stores/index.js | 5 + demos/svelte/src/lib/stores/mining-state.js | 11 + demos/svelte/src/lib/stores/relay-settings.js | 7 + demos/svelte/src/lib/stores/relays.js | 30 + demos/svelte/src/lib/stores/user.js | 18 + demos/svelte/src/lib/utils.js | 29 + demos/svelte/src/main.js | 7 + demos/svelte/vite.config.js | 19 + demos/svelte/yarn.lock | 3696 ++++ demos/vanilla-js/.gitignore | 1 + demos/vanilla-js/README.md | 9 + demos/vanilla-js/package.json | 15 + demos/vanilla-js/scripts/copy-notemine.sh | 3 + {demo => demos/vanilla-js/src}/index.html | 2 +- demos/vanilla-js/src/lib/img/anon.svg | 16 + {demo => demos/vanilla-js/src}/main.js | 0 {demo => demos/vanilla-js/src}/worker.js | 2 +- package.json | 18 + packages/core/.gitignore | 1 + LICENSE => packages/core/LICENSE | 0 README.npm.md => packages/core/README.md | 0 packages/core/package.json | 21 + packages/reactjs/README.md | 3 + packages/rust/.gitignore | 4 + Cargo.lock => packages/rust/Cargo.lock | 0 Cargo.toml => packages/rust/Cargo.toml | 0 packages/rust/LICENSE | 674 + packages/rust/README.md | 26 + packages/rust/README.npm.md | 78 + packages/rust/package.json | 13 + {scripts => packages/rust/scripts}/build.sh | 4 +- packages/rust/scripts/publish-js.sh | 0 {scripts => packages/rust/scripts}/publish.sh | 0 {src => packages/rust/src}/lib.rs | 0 packages/svelte/README.md | 3 + packages/wrapper/.gitignore | 6 + packages/wrapper/.npmignore | 6 + packages/wrapper/README.md | 322 + packages/wrapper/build.js | 137 + packages/wrapper/dist/index.js | 1024 + packages/wrapper/dist/index.js.map | 7 + packages/wrapper/dist/mine.worker.js | 1 + packages/wrapper/handleWasmUrl.cjs | 19 + packages/wrapper/package.json | 64 + packages/wrapper/rollup.config.mjs | 63 + packages/wrapper/src/global.d.ts | 9 + packages/wrapper/src/index.test.ts | 93 + packages/wrapper/src/index.ts | 326 + packages/wrapper/src/mine.worker.ts | 120 + packages/wrapper/src/worker-types.d.ts | 6 + packages/wrapper/tsconfig.json | 25 + packages/wrapper/vitest.config.ts | 8 + yarn.lock | 8159 ++++++++ 80 files changed, 44697 insertions(+), 27 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100755 .pnp.cjs create mode 100644 .pnp.loader.mjs create mode 100644 .yarn/install-state.gz delete mode 120000 demo/pkg create mode 100644 demos/reactjs/.gitkeep create mode 100644 demos/svelte/.eslintrc.json create mode 100644 demos/svelte/.gitignore create mode 100644 demos/svelte/.gitkeep create mode 100644 demos/svelte/README.md create mode 100644 demos/svelte/package.json create mode 100644 demos/svelte/public/build/bundle.css create mode 100644 demos/svelte/public/build/bundle.js create mode 100644 demos/svelte/public/build/bundle.js.map create mode 100644 demos/svelte/public/build/notemine_bg.wasm create mode 100644 demos/svelte/public/favicon.png create mode 100644 demos/svelte/public/global.css rename {demo/lib => demos/svelte/public}/img/anon.svg (100%) create mode 100644 demos/svelte/public/index.html create mode 100644 demos/svelte/rollup.config.js create mode 100644 demos/svelte/scripts/setupTypeScript.js create mode 100644 demos/svelte/src/App.svelte create mode 100644 demos/svelte/src/lib/nostr.js create mode 100644 demos/svelte/src/lib/stores/content-state.js create mode 100644 demos/svelte/src/lib/stores/index.js create mode 100644 demos/svelte/src/lib/stores/mining-state.js create mode 100644 demos/svelte/src/lib/stores/relay-settings.js create mode 100644 demos/svelte/src/lib/stores/relays.js create mode 100644 demos/svelte/src/lib/stores/user.js create mode 100644 demos/svelte/src/lib/utils.js create mode 100644 demos/svelte/src/main.js create mode 100644 demos/svelte/vite.config.js create mode 100644 demos/svelte/yarn.lock create mode 100644 demos/vanilla-js/.gitignore create mode 100644 demos/vanilla-js/README.md create mode 100644 demos/vanilla-js/package.json create mode 100755 demos/vanilla-js/scripts/copy-notemine.sh rename {demo => demos/vanilla-js/src}/index.html (99%) create mode 100644 demos/vanilla-js/src/lib/img/anon.svg rename {demo => demos/vanilla-js/src}/main.js (100%) rename {demo => demos/vanilla-js/src}/worker.js (97%) create mode 100644 package.json create mode 100644 packages/core/.gitignore rename LICENSE => packages/core/LICENSE (100%) rename README.npm.md => packages/core/README.md (100%) create mode 100644 packages/core/package.json create mode 100644 packages/reactjs/README.md create mode 100644 packages/rust/.gitignore rename Cargo.lock => packages/rust/Cargo.lock (100%) rename Cargo.toml => packages/rust/Cargo.toml (100%) create mode 100644 packages/rust/LICENSE create mode 100644 packages/rust/README.md create mode 100644 packages/rust/README.npm.md create mode 100644 packages/rust/package.json rename {scripts => packages/rust/scripts}/build.sh (52%) create mode 100644 packages/rust/scripts/publish-js.sh rename {scripts => packages/rust/scripts}/publish.sh (100%) rename {src => packages/rust/src}/lib.rs (100%) create mode 100644 packages/svelte/README.md create mode 100644 packages/wrapper/.gitignore create mode 100644 packages/wrapper/.npmignore create mode 100644 packages/wrapper/README.md create mode 100644 packages/wrapper/build.js create mode 100644 packages/wrapper/dist/index.js create mode 100644 packages/wrapper/dist/index.js.map create mode 100644 packages/wrapper/dist/mine.worker.js create mode 100644 packages/wrapper/handleWasmUrl.cjs create mode 100644 packages/wrapper/package.json create mode 100644 packages/wrapper/rollup.config.mjs create mode 100644 packages/wrapper/src/global.d.ts create mode 100644 packages/wrapper/src/index.test.ts create mode 100644 packages/wrapper/src/index.ts create mode 100644 packages/wrapper/src/mine.worker.ts create mode 100644 packages/wrapper/src/worker-types.d.ts create mode 100644 packages/wrapper/tsconfig.json create mode 100644 packages/wrapper/vitest.config.ts create mode 100644 yarn.lock diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..edef2eb --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.gitignore b/.gitignore index ca6b796..ab0e875 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -notemine -target - -./pkg -!./demo/pkg \ No newline at end of file +node_modules +target \ No newline at end of file diff --git a/.pnp.cjs b/.pnp.cjs new file mode 100755 index 0000000..82061c9 --- /dev/null +++ b/.pnp.cjs @@ -0,0 +1,17470 @@ +#!/usr/bin/env node +/* eslint-disable */ +// @ts-nocheck +"use strict"; + +const RAW_RUNTIME_STATE = +'{\ + "__info": [\ + "This file is automatically generated. Do not touch it, or risk",\ + "your modifications being lost."\ + ],\ + "dependencyTreeRoots": [\ + {\ + "name": "notemine",\ + "reference": "workspace:."\ + },\ + {\ + "name": "@notemine/svelte-demo",\ + "reference": "workspace:demos/svelte"\ + },\ + {\ + "name": "@notemine/vanilla-js-demoo",\ + "reference": "workspace:demos/vanilla-js"\ + },\ + {\ + "name": "@notemine/core",\ + "reference": "workspace:packages/core"\ + },\ + {\ + "name": "@notemine/rust",\ + "reference": "workspace:packages/rust"\ + },\ + {\ + "name": "@notemine/wrapper",\ + "reference": "workspace:packages/wrapper"\ + }\ + ],\ + "enableTopLevelFallback": true,\ + "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ + "fallbackExclusionList": [\ + ["@notemine/core", ["workspace:packages/core"]],\ + ["@notemine/rust", ["workspace:packages/rust"]],\ + ["@notemine/svelte-demo", ["workspace:demos/svelte"]],\ + ["@notemine/vanilla-js-demoo", ["workspace:demos/vanilla-js"]],\ + ["@notemine/wrapper", ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#workspace:packages/wrapper", "workspace:packages/wrapper"]],\ + ["notemine", ["workspace:."]]\ + ],\ + "fallbackPool": [\ + ],\ + "packageRegistryData": [\ + [null, [\ + [null, {\ + "packageLocation": "./",\ + "packageDependencies": [\ + ["@changesets/cli", "npm:2.27.9"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@ampproject/remapping", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-10c0.zip/node_modules/@ampproject/remapping/",\ + "packageDependencies": [\ + ["@ampproject/remapping", "npm:2.3.0"],\ + ["@jridgewell/gen-mapping", "npm:0.3.5"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/code-frame", [\ + ["npm:7.26.0", {\ + "packageLocation": "../../.yarn/berry/cache/@babel-code-frame-npm-7.26.0-d26fca2be2-10c0.zip/node_modules/@babel/code-frame/",\ + "packageDependencies": [\ + ["@babel/code-frame", "npm:7.26.0"],\ + ["@babel/helper-validator-identifier", "npm:7.25.9"],\ + ["js-tokens", "npm:4.0.0"],\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-validator-identifier", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../.yarn/berry/cache/@babel-helper-validator-identifier-npm-7.25.9-2634b947a4-10c0.zip/node_modules/@babel/helper-validator-identifier/",\ + "packageDependencies": [\ + ["@babel/helper-validator-identifier", "npm:7.25.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/runtime", [\ + ["npm:7.26.0", {\ + "packageLocation": "../../.yarn/berry/cache/@babel-runtime-npm-7.26.0-9afa3c4ef6-10c0.zip/node_modules/@babel/runtime/",\ + "packageDependencies": [\ + ["@babel/runtime", "npm:7.26.0"],\ + ["regenerator-runtime", "npm:0.14.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/apply-release-plan", [\ + ["npm:7.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-apply-release-plan-npm-7.0.5-6b00e73620-10c0.zip/node_modules/@changesets/apply-release-plan/",\ + "packageDependencies": [\ + ["@changesets/apply-release-plan", "npm:7.0.5"],\ + ["@changesets/config", "npm:3.0.3"],\ + ["@changesets/get-version-range-type", "npm:0.4.0"],\ + ["@changesets/git", "npm:3.0.1"],\ + ["@changesets/should-skip-package", "npm:0.1.1"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["detect-indent", "npm:6.1.0"],\ + ["fs-extra", "npm:7.0.1"],\ + ["lodash.startcase", "npm:4.4.0"],\ + ["outdent", "npm:0.5.0"],\ + ["prettier", "npm:2.8.8"],\ + ["resolve-from", "npm:5.0.0"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/assemble-release-plan", [\ + ["npm:6.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-assemble-release-plan-npm-6.0.4-999d754646-10c0.zip/node_modules/@changesets/assemble-release-plan/",\ + "packageDependencies": [\ + ["@changesets/assemble-release-plan", "npm:6.0.4"],\ + ["@changesets/errors", "npm:0.2.0"],\ + ["@changesets/get-dependents-graph", "npm:2.1.2"],\ + ["@changesets/should-skip-package", "npm:0.1.1"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/changelog-git", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-changelog-git-npm-0.2.0-9b2795d69d-10c0.zip/node_modules/@changesets/changelog-git/",\ + "packageDependencies": [\ + ["@changesets/changelog-git", "npm:0.2.0"],\ + ["@changesets/types", "npm:6.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/cli", [\ + ["npm:2.27.9", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-cli-npm-2.27.9-5df61a909e-10c0.zip/node_modules/@changesets/cli/",\ + "packageDependencies": [\ + ["@changesets/cli", "npm:2.27.9"],\ + ["@changesets/apply-release-plan", "npm:7.0.5"],\ + ["@changesets/assemble-release-plan", "npm:6.0.4"],\ + ["@changesets/changelog-git", "npm:0.2.0"],\ + ["@changesets/config", "npm:3.0.3"],\ + ["@changesets/errors", "npm:0.2.0"],\ + ["@changesets/get-dependents-graph", "npm:2.1.2"],\ + ["@changesets/get-release-plan", "npm:4.0.4"],\ + ["@changesets/git", "npm:3.0.1"],\ + ["@changesets/logger", "npm:0.1.1"],\ + ["@changesets/pre", "npm:2.0.1"],\ + ["@changesets/read", "npm:0.6.1"],\ + ["@changesets/should-skip-package", "npm:0.1.1"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@changesets/write", "npm:0.3.2"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["ansi-colors", "npm:4.1.3"],\ + ["ci-info", "npm:3.9.0"],\ + ["enquirer", "npm:2.4.1"],\ + ["external-editor", "npm:3.1.0"],\ + ["fs-extra", "npm:7.0.1"],\ + ["mri", "npm:1.2.0"],\ + ["p-limit", "npm:2.3.0"],\ + ["package-manager-detector", "npm:0.2.2"],\ + ["picocolors", "npm:1.1.1"],\ + ["resolve-from", "npm:5.0.0"],\ + ["semver", "npm:7.6.3"],\ + ["spawndamnit", "npm:2.0.0"],\ + ["term-size", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/config", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-config-npm-3.0.3-ca203014c6-10c0.zip/node_modules/@changesets/config/",\ + "packageDependencies": [\ + ["@changesets/config", "npm:3.0.3"],\ + ["@changesets/errors", "npm:0.2.0"],\ + ["@changesets/get-dependents-graph", "npm:2.1.2"],\ + ["@changesets/logger", "npm:0.1.1"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["fs-extra", "npm:7.0.1"],\ + ["micromatch", "npm:4.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/errors", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-errors-npm-0.2.0-e8a800f757-10c0.zip/node_modules/@changesets/errors/",\ + "packageDependencies": [\ + ["@changesets/errors", "npm:0.2.0"],\ + ["extendable-error", "npm:0.1.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/get-dependents-graph", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-get-dependents-graph-npm-2.1.2-f4de93cc8e-10c0.zip/node_modules/@changesets/get-dependents-graph/",\ + "packageDependencies": [\ + ["@changesets/get-dependents-graph", "npm:2.1.2"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["picocolors", "npm:1.1.1"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/get-release-plan", [\ + ["npm:4.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-get-release-plan-npm-4.0.4-9e9e65d37b-10c0.zip/node_modules/@changesets/get-release-plan/",\ + "packageDependencies": [\ + ["@changesets/get-release-plan", "npm:4.0.4"],\ + ["@changesets/assemble-release-plan", "npm:6.0.4"],\ + ["@changesets/config", "npm:3.0.3"],\ + ["@changesets/pre", "npm:2.0.1"],\ + ["@changesets/read", "npm:0.6.1"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/get-version-range-type", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-get-version-range-type-npm-0.4.0-49cc1009b2-10c0.zip/node_modules/@changesets/get-version-range-type/",\ + "packageDependencies": [\ + ["@changesets/get-version-range-type", "npm:0.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/git", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-git-npm-3.0.1-f3c6c85100-10c0.zip/node_modules/@changesets/git/",\ + "packageDependencies": [\ + ["@changesets/git", "npm:3.0.1"],\ + ["@changesets/errors", "npm:0.2.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["is-subdir", "npm:1.2.0"],\ + ["micromatch", "npm:4.0.8"],\ + ["spawndamnit", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/logger", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-logger-npm-0.1.1-bf84b05104-10c0.zip/node_modules/@changesets/logger/",\ + "packageDependencies": [\ + ["@changesets/logger", "npm:0.1.1"],\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/parse", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-parse-npm-0.4.0-d135883a21-10c0.zip/node_modules/@changesets/parse/",\ + "packageDependencies": [\ + ["@changesets/parse", "npm:0.4.0"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["js-yaml", "npm:3.14.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/pre", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-pre-npm-2.0.1-0bad70db67-10c0.zip/node_modules/@changesets/pre/",\ + "packageDependencies": [\ + ["@changesets/pre", "npm:2.0.1"],\ + ["@changesets/errors", "npm:0.2.0"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["fs-extra", "npm:7.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/read", [\ + ["npm:0.6.1", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-read-npm-0.6.1-03009d926a-10c0.zip/node_modules/@changesets/read/",\ + "packageDependencies": [\ + ["@changesets/read", "npm:0.6.1"],\ + ["@changesets/git", "npm:3.0.1"],\ + ["@changesets/logger", "npm:0.1.1"],\ + ["@changesets/parse", "npm:0.4.0"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["fs-extra", "npm:7.0.1"],\ + ["p-filter", "npm:2.1.0"],\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/should-skip-package", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-should-skip-package-npm-0.1.1-3ecc38a85f-10c0.zip/node_modules/@changesets/should-skip-package/",\ + "packageDependencies": [\ + ["@changesets/should-skip-package", "npm:0.1.1"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["@manypkg/get-packages", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/types", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-types-npm-4.1.0-c7ed225741-10c0.zip/node_modules/@changesets/types/",\ + "packageDependencies": [\ + ["@changesets/types", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-types-npm-6.0.0-2ff6c4e1b6-10c0.zip/node_modules/@changesets/types/",\ + "packageDependencies": [\ + ["@changesets/types", "npm:6.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@changesets/write", [\ + ["npm:0.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/@changesets-write-npm-0.3.2-d8a27133a2-10c0.zip/node_modules/@changesets/write/",\ + "packageDependencies": [\ + ["@changesets/write", "npm:0.3.2"],\ + ["@changesets/types", "npm:6.0.0"],\ + ["fs-extra", "npm:7.0.1"],\ + ["human-id", "npm:1.0.2"],\ + ["prettier", "npm:2.8.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/aix-ppc64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-aix-ppc64-npm-0.21.5-ebeb42da03/node_modules/@esbuild/aix-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/aix-ppc64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-aix-ppc64-npm-0.24.0-0c54699704/node_modules/@esbuild/aix-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/aix-ppc64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/android-arm", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.21.5-7e30e7b6d7/node_modules/@esbuild/android-arm/",\ + "packageDependencies": [\ + ["@esbuild/android-arm", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm-npm-0.24.0-ef64bfe1bb/node_modules/@esbuild/android-arm/",\ + "packageDependencies": [\ + ["@esbuild/android-arm", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/android-arm64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.21.5-916e33d43e/node_modules/@esbuild/android-arm64/",\ + "packageDependencies": [\ + ["@esbuild/android-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-arm64-npm-0.24.0-35ef991393/node_modules/@esbuild/android-arm64/",\ + "packageDependencies": [\ + ["@esbuild/android-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/android-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.21.5-07abfd6fa9/node_modules/@esbuild/android-x64/",\ + "packageDependencies": [\ + ["@esbuild/android-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-android-x64-npm-0.24.0-c7e2a5c595/node_modules/@esbuild/android-x64/",\ + "packageDependencies": [\ + ["@esbuild/android-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/darwin-arm64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.21.5-62349c1520/node_modules/@esbuild/darwin-arm64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-arm64-npm-0.24.0-f33b2ff14e/node_modules/@esbuild/darwin-arm64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/darwin-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.21.5-491c2ae06c/node_modules/@esbuild/darwin-x64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-darwin-x64-npm-0.24.0-45e382787a/node_modules/@esbuild/darwin-x64/",\ + "packageDependencies": [\ + ["@esbuild/darwin-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/freebsd-arm64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.21.5-2465c8f200/node_modules/@esbuild/freebsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-arm64-npm-0.24.0-7b0106f2b2/node_modules/@esbuild/freebsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/freebsd-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.21.5-f866a2f0cc/node_modules/@esbuild/freebsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-freebsd-x64-npm-0.24.0-df6e827fcf/node_modules/@esbuild/freebsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/freebsd-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-arm", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.21.5-9485bcbfc7/node_modules/@esbuild/linux-arm/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm-npm-0.24.0-200ed5fc63/node_modules/@esbuild/linux-arm/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-arm64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.21.5-c6a54cd648/node_modules/@esbuild/linux-arm64/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-arm64-npm-0.24.0-72377a710b/node_modules/@esbuild/linux-arm64/",\ + "packageDependencies": [\ + ["@esbuild/linux-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-ia32", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.21.5-499a15b672/node_modules/@esbuild/linux-ia32/",\ + "packageDependencies": [\ + ["@esbuild/linux-ia32", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ia32-npm-0.24.0-9b42115e3d/node_modules/@esbuild/linux-ia32/",\ + "packageDependencies": [\ + ["@esbuild/linux-ia32", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-loong64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.21.5-b2d213a264/node_modules/@esbuild/linux-loong64/",\ + "packageDependencies": [\ + ["@esbuild/linux-loong64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-loong64-npm-0.24.0-0aef6641c8/node_modules/@esbuild/linux-loong64/",\ + "packageDependencies": [\ + ["@esbuild/linux-loong64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-mips64el", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.21.5-6534e468c0/node_modules/@esbuild/linux-mips64el/",\ + "packageDependencies": [\ + ["@esbuild/linux-mips64el", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-mips64el-npm-0.24.0-a183e9ea18/node_modules/@esbuild/linux-mips64el/",\ + "packageDependencies": [\ + ["@esbuild/linux-mips64el", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-ppc64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.21.5-38298ce68c/node_modules/@esbuild/linux-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/linux-ppc64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-ppc64-npm-0.24.0-5abb2df7b8/node_modules/@esbuild/linux-ppc64/",\ + "packageDependencies": [\ + ["@esbuild/linux-ppc64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-riscv64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.21.5-73ca00d59e/node_modules/@esbuild/linux-riscv64/",\ + "packageDependencies": [\ + ["@esbuild/linux-riscv64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-riscv64-npm-0.24.0-558059e32f/node_modules/@esbuild/linux-riscv64/",\ + "packageDependencies": [\ + ["@esbuild/linux-riscv64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-s390x", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.21.5-44720430f0/node_modules/@esbuild/linux-s390x/",\ + "packageDependencies": [\ + ["@esbuild/linux-s390x", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-s390x-npm-0.24.0-6bf429b958/node_modules/@esbuild/linux-s390x/",\ + "packageDependencies": [\ + ["@esbuild/linux-s390x", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/linux-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.21.5-88079726c4/node_modules/@esbuild/linux-x64/",\ + "packageDependencies": [\ + ["@esbuild/linux-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-linux-x64-npm-0.24.0-744e76a7ed/node_modules/@esbuild/linux-x64/",\ + "packageDependencies": [\ + ["@esbuild/linux-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/netbsd-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.21.5-5f21539ffa/node_modules/@esbuild/netbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/netbsd-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-netbsd-x64-npm-0.24.0-b1cf3e2870/node_modules/@esbuild/netbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/netbsd-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/openbsd-arm64", [\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-arm64-npm-0.24.0-1b1265740e/node_modules/@esbuild/openbsd-arm64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/openbsd-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.21.5-23fbf4de2b/node_modules/@esbuild/openbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-openbsd-x64-npm-0.24.0-0422c66835/node_modules/@esbuild/openbsd-x64/",\ + "packageDependencies": [\ + ["@esbuild/openbsd-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/sunos-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.21.5-855a15205a/node_modules/@esbuild/sunos-x64/",\ + "packageDependencies": [\ + ["@esbuild/sunos-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-sunos-x64-npm-0.24.0-f223358512/node_modules/@esbuild/sunos-x64/",\ + "packageDependencies": [\ + ["@esbuild/sunos-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/win32-arm64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.21.5-d0ef444aab/node_modules/@esbuild/win32-arm64/",\ + "packageDependencies": [\ + ["@esbuild/win32-arm64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-arm64-npm-0.24.0-36e85ee9d3/node_modules/@esbuild/win32-arm64/",\ + "packageDependencies": [\ + ["@esbuild/win32-arm64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/win32-ia32", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.21.5-a4fb03dad4/node_modules/@esbuild/win32-ia32/",\ + "packageDependencies": [\ + ["@esbuild/win32-ia32", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-ia32-npm-0.24.0-2f5b0aac7c/node_modules/@esbuild/win32-ia32/",\ + "packageDependencies": [\ + ["@esbuild/win32-ia32", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@esbuild/win32-x64", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.21.5-eddc2b5ad6/node_modules/@esbuild/win32-x64/",\ + "packageDependencies": [\ + ["@esbuild/win32-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/@esbuild-win32-x64-npm-0.24.0-ba622587b3/node_modules/@esbuild/win32-x64/",\ + "packageDependencies": [\ + ["@esbuild/win32-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@isaacs/cliui", [\ + ["npm:8.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-10c0.zip/node_modules/@isaacs/cliui/",\ + "packageDependencies": [\ + ["@isaacs/cliui", "npm:8.0.2"],\ + ["string-width", "npm:5.1.2"],\ + ["string-width-cjs", [\ + "string-width",\ + "npm:4.2.3"\ + ]],\ + ["strip-ansi", "npm:7.1.0"],\ + ["strip-ansi-cjs", [\ + "strip-ansi",\ + "npm:6.0.1"\ + ]],\ + ["wrap-ansi", "npm:8.1.0"],\ + ["wrap-ansi-cjs", [\ + "wrap-ansi",\ + "npm:7.0.0"\ + ]]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jgoz/esbuild-plugin-livereload", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@jgoz-esbuild-plugin-livereload-npm-2.1.1-8df0c21e29-10c0.zip/node_modules/@jgoz/esbuild-plugin-livereload/",\ + "packageDependencies": [\ + ["@jgoz/esbuild-plugin-livereload", "npm:2.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1", {\ + "packageLocation": "./.yarn/__virtual__/@jgoz-esbuild-plugin-livereload-virtual-30918999dd/3/.yarn/berry/cache/@jgoz-esbuild-plugin-livereload-npm-2.1.1-8df0c21e29-10c0.zip/node_modules/@jgoz/esbuild-plugin-livereload/",\ + "packageDependencies": [\ + ["@jgoz/esbuild-plugin-livereload", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["@types/esbuild", null],\ + ["esbuild", "npm:0.24.0"]\ + ],\ + "packagePeers": [\ + "@types/esbuild",\ + "esbuild"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/gen-mapping", [\ + ["npm:0.3.5", {\ + "packageLocation": "../../.yarn/berry/cache/@jridgewell-gen-mapping-npm-0.3.5-d8b85ebeaf-10c0.zip/node_modules/@jridgewell/gen-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/gen-mapping", "npm:0.3.5"],\ + ["@jridgewell/set-array", "npm:1.2.1"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/resolve-uri", [\ + ["npm:3.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-10c0.zip/node_modules/@jridgewell/resolve-uri/",\ + "packageDependencies": [\ + ["@jridgewell/resolve-uri", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/set-array", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/@jridgewell-set-array-npm-1.2.1-2312928209-10c0.zip/node_modules/@jridgewell/set-array/",\ + "packageDependencies": [\ + ["@jridgewell/set-array", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/source-map", [\ + ["npm:0.3.6", {\ + "packageLocation": "../../.yarn/berry/cache/@jridgewell-source-map-npm-0.3.6-fe0849eb05-10c0.zip/node_modules/@jridgewell/source-map/",\ + "packageDependencies": [\ + ["@jridgewell/source-map", "npm:0.3.6"],\ + ["@jridgewell/gen-mapping", "npm:0.3.5"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/sourcemap-codec", [\ + ["npm:1.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-10c0.zip/node_modules/@jridgewell/sourcemap-codec/",\ + "packageDependencies": [\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/trace-mapping", [\ + ["npm:0.3.25", {\ + "packageLocation": "../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@jridgewell/resolve-uri", "npm:3.1.2"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jspm/core", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/@jspm-core-npm-2.1.0-7b0e1c5c69-10c0.zip/node_modules/@jspm/core/",\ + "packageDependencies": [\ + ["@jspm/core", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@manypkg/find-root", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/@manypkg-find-root-npm-1.1.0-a195882dab-10c0.zip/node_modules/@manypkg/find-root/",\ + "packageDependencies": [\ + ["@manypkg/find-root", "npm:1.1.0"],\ + ["@babel/runtime", "npm:7.26.0"],\ + ["@types/node", "npm:12.20.55"],\ + ["find-up", "npm:4.1.0"],\ + ["fs-extra", "npm:8.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@manypkg/get-packages", [\ + ["npm:1.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/@manypkg-get-packages-npm-1.1.3-55c0cc9daa-10c0.zip/node_modules/@manypkg/get-packages/",\ + "packageDependencies": [\ + ["@manypkg/get-packages", "npm:1.1.3"],\ + ["@babel/runtime", "npm:7.26.0"],\ + ["@changesets/types", "npm:4.1.0"],\ + ["@manypkg/find-root", "npm:1.1.0"],\ + ["fs-extra", "npm:8.1.0"],\ + ["globby", "npm:11.1.0"],\ + ["read-yaml-file", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/ciphers", [\ + ["npm:0.5.3", {\ + "packageLocation": "../../.yarn/berry/cache/@noble-ciphers-npm-0.5.3-b11075c8a9-10c0.zip/node_modules/@noble/ciphers/",\ + "packageDependencies": [\ + ["@noble/ciphers", "npm:0.5.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/curves", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/@noble-curves-npm-1.1.0-dccaf3c158-10c0.zip/node_modules/@noble/curves/",\ + "packageDependencies": [\ + ["@noble/curves", "npm:1.1.0"],\ + ["@noble/hashes", "npm:1.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/@noble-curves-npm-1.2.0-9b40ee1239-10c0.zip/node_modules/@noble/curves/",\ + "packageDependencies": [\ + ["@noble/curves", "npm:1.2.0"],\ + ["@noble/hashes", "npm:1.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/hashes", [\ + ["npm:1.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/@noble-hashes-npm-1.3.1-64a92c8445-10c0.zip/node_modules/@noble/hashes/",\ + "packageDependencies": [\ + ["@noble/hashes", "npm:1.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/@noble-hashes-npm-1.3.2-1e619f9da0-10c0.zip/node_modules/@noble/hashes/",\ + "packageDependencies": [\ + ["@noble/hashes", "npm:1.3.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.3.3", {\ + "packageLocation": "../../.yarn/berry/cache/@noble-hashes-npm-1.3.3-f7374e6cdf-10c0.zip/node_modules/@noble/hashes/",\ + "packageDependencies": [\ + ["@noble/hashes", "npm:1.3.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@nodelib/fs.scandir", [\ + ["npm:2.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-10c0.zip/node_modules/@nodelib/fs.scandir/",\ + "packageDependencies": [\ + ["@nodelib/fs.scandir", "npm:2.1.5"],\ + ["@nodelib/fs.stat", "npm:2.0.5"],\ + ["run-parallel", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@nodelib/fs.stat", [\ + ["npm:2.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-10c0.zip/node_modules/@nodelib/fs.stat/",\ + "packageDependencies": [\ + ["@nodelib/fs.stat", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@nodelib/fs.walk", [\ + ["npm:1.2.8", {\ + "packageLocation": "../../.yarn/berry/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-10c0.zip/node_modules/@nodelib/fs.walk/",\ + "packageDependencies": [\ + ["@nodelib/fs.walk", "npm:1.2.8"],\ + ["@nodelib/fs.scandir", "npm:2.1.5"],\ + ["fastq", "npm:1.17.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@notemine/core", [\ + ["workspace:packages/core", {\ + "packageLocation": "./packages/core/",\ + "packageDependencies": [\ + ["@notemine/core", "workspace:packages/core"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@notemine/rust", [\ + ["workspace:packages/rust", {\ + "packageLocation": "./packages/rust/",\ + "packageDependencies": [\ + ["@notemine/rust", "workspace:packages/rust"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@notemine/svelte-demo", [\ + ["workspace:demos/svelte", {\ + "packageLocation": "./demos/svelte/",\ + "packageDependencies": [\ + ["@notemine/svelte-demo", "workspace:demos/svelte"],\ + ["@notemine/wrapper", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#workspace:packages/wrapper"],\ + ["@rollup/plugin-alias", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.1.1"],\ + ["@rollup/plugin-commonjs", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:28.0.0"],\ + ["@rollup/plugin-node-resolve", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:15.3.0"],\ + ["@rollup/plugin-terser", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:0.4.4"],\ + ["@rollup/plugin-url", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:8.0.2"],\ + ["@rollup/plugin-wasm", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:6.2.2"],\ + ["nostr-tools", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:2.7.2"],\ + ["rollup", "npm:3.29.5"],\ + ["rollup-plugin-copy", "npm:3.5.0"],\ + ["rollup-plugin-css-only", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:4.5.2"],\ + ["rollup-plugin-livereload", "npm:2.0.5"],\ + ["rollup-plugin-postcss", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:4.0.2"],\ + ["rollup-plugin-svelte", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:7.2.2"],\ + ["rollup-plugin-terser", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:7.0.2"],\ + ["rollup-plugin-typescript2", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:0.36.0"],\ + ["rollup-plugin-web-worker-loader", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:1.6.1"],\ + ["sirv-cli", "npm:2.0.2"],\ + ["svelte", "npm:3.59.2"],\ + ["svelte-preprocess", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:6.0.2"],\ + ["webpack", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.94.0"],\ + ["webpack-env", "npm:0.8.0"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@notemine/vanilla-js-demoo", [\ + ["workspace:demos/vanilla-js", {\ + "packageLocation": "./demos/vanilla-js/",\ + "packageDependencies": [\ + ["@notemine/vanilla-js-demoo", "workspace:demos/vanilla-js"],\ + ["sirv", "npm:3.0.0"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@notemine/wrapper", [\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#workspace:packages/wrapper", {\ + "packageLocation": "./.yarn/__virtual__/@notemine-wrapper-virtual-17a0a3611f/1/packages/wrapper/",\ + "packageDependencies": [\ + ["@notemine/wrapper", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#workspace:packages/wrapper"],\ + ["@jgoz/esbuild-plugin-livereload", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["@notemine/core", "workspace:packages/core"],\ + ["@sveltejs/vite-plugin-svelte", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:4.0.0"],\ + ["@types/node", "npm:22.5.5"],\ + ["@types/nostr-tools", null],\ + ["@types/rxjs", null],\ + ["@vitest/web-worker", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["css-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:6.11.0"],\ + ["esbuild", "npm:0.24.0"],\ + ["esbuild-plugin-clean", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:1.0.1"],\ + ["esbuild-plugin-copy", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["esbuild-plugin-inline-worker", "npm:0.1.1"],\ + ["esbuild-plugin-polyfill-node", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.3.0"],\ + ["esbuild-plugin-tsc", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.4.0"],\ + ["esbuild-plugin-wasm", "npm:1.1.0"],\ + ["get-port", "npm:7.1.0"],\ + ["happy-dom", "npm:15.7.4"],\ + ["mini-css-extract-plugin", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.9.1"],\ + ["nostr-tools", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:2.7.2"],\ + ["notemine", "npm:0.3.2"],\ + ["rimraf", "npm:6.0.1"],\ + ["rxjs", "npm:7.8.1"],\ + ["svelte", "npm:4.2.19"],\ + ["svelte-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:3.2.4"],\ + ["terser", "npm:5.36.0"],\ + ["ts-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:9.5.1"],\ + ["typescript", "patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40"],\ + ["vite", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10"],\ + ["vitest", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["web-worker", "npm:1.3.0"]\ + ],\ + "packagePeers": [\ + "@types/nostr-tools",\ + "@types/rxjs",\ + "nostr-tools"\ + ],\ + "linkType": "SOFT"\ + }],\ + ["workspace:packages/wrapper", {\ + "packageLocation": "./packages/wrapper/",\ + "packageDependencies": [\ + ["@notemine/wrapper", "workspace:packages/wrapper"],\ + ["@jgoz/esbuild-plugin-livereload", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["@notemine/core", "workspace:packages/core"],\ + ["@sveltejs/vite-plugin-svelte", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:4.0.0"],\ + ["@types/node", "npm:22.5.5"],\ + ["@vitest/web-worker", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["css-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:6.11.0"],\ + ["esbuild", "npm:0.24.0"],\ + ["esbuild-plugin-clean", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:1.0.1"],\ + ["esbuild-plugin-copy", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["esbuild-plugin-inline-worker", "npm:0.1.1"],\ + ["esbuild-plugin-polyfill-node", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.3.0"],\ + ["esbuild-plugin-tsc", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.4.0"],\ + ["esbuild-plugin-wasm", "npm:1.1.0"],\ + ["get-port", "npm:7.1.0"],\ + ["happy-dom", "npm:15.7.4"],\ + ["mini-css-extract-plugin", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.9.1"],\ + ["nostr-tools", "virtual:76e523be50b06476bcb6aed7ea98761b222aa546c03053be14bd27a5bb537ad75692e436ae40cce0a0128b1e4d788bfb69b3f70bec3d7e4955dd825baea3bf6f#npm:2.7.2"],\ + ["notemine", "npm:0.3.2"],\ + ["rimraf", "npm:6.0.1"],\ + ["rxjs", "npm:7.8.1"],\ + ["svelte", "npm:4.2.19"],\ + ["svelte-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:3.2.4"],\ + ["terser", "npm:5.36.0"],\ + ["ts-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:9.5.1"],\ + ["typescript", "patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40"],\ + ["vite", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10"],\ + ["vitest", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["web-worker", "npm:1.3.0"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@npmcli/agent", [\ + ["npm:2.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/@npmcli-agent-npm-2.2.2-e2f559d6c0-10c0.zip/node_modules/@npmcli/agent/",\ + "packageDependencies": [\ + ["@npmcli/agent", "npm:2.2.2"],\ + ["agent-base", "npm:7.1.1"],\ + ["http-proxy-agent", "npm:7.0.2"],\ + ["https-proxy-agent", "npm:7.0.5"],\ + ["lru-cache", "npm:10.4.3"],\ + ["socks-proxy-agent", "npm:8.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@npmcli/fs", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@npmcli-fs-npm-3.1.1-c19bd09f3c-10c0.zip/node_modules/@npmcli/fs/",\ + "packageDependencies": [\ + ["@npmcli/fs", "npm:3.1.1"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@pkgjs/parseargs", [\ + ["npm:0.11.0", {\ + "packageLocation": "../../.yarn/berry/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-10c0.zip/node_modules/@pkgjs/parseargs/",\ + "packageDependencies": [\ + ["@pkgjs/parseargs", "npm:0.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@polka/url", [\ + ["npm:1.0.0-next.28", {\ + "packageLocation": "../../.yarn/berry/cache/@polka-url-npm-1.0.0-next.28-024769eda8-10c0.zip/node_modules/@polka/url/",\ + "packageDependencies": [\ + ["@polka/url", "npm:1.0.0-next.28"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/plugin-alias", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-plugin-alias-npm-5.1.1-a9087c434d-10c0.zip/node_modules/@rollup/plugin-alias/",\ + "packageDependencies": [\ + ["@rollup/plugin-alias", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-plugin-alias-virtual-f1581cc41b/3/.yarn/berry/cache/@rollup-plugin-alias-npm-5.1.1-a9087c434d-10c0.zip/node_modules/@rollup/plugin-alias/",\ + "packageDependencies": [\ + ["@rollup/plugin-alias", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.1.1"],\ + ["@types/rollup", null],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/plugin-commonjs", [\ + ["npm:28.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-plugin-commonjs-npm-28.0.0-bf6c7f01c7-10c0.zip/node_modules/@rollup/plugin-commonjs/",\ + "packageDependencies": [\ + ["@rollup/plugin-commonjs", "npm:28.0.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:28.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-plugin-commonjs-virtual-750d527d16/3/.yarn/berry/cache/@rollup-plugin-commonjs-npm-28.0.0-bf6c7f01c7-10c0.zip/node_modules/@rollup/plugin-commonjs/",\ + "packageDependencies": [\ + ["@rollup/plugin-commonjs", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:28.0.0"],\ + ["@rollup/pluginutils", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3"],\ + ["@types/rollup", null],\ + ["commondir", "npm:1.0.1"],\ + ["estree-walker", "npm:2.0.2"],\ + ["fdir", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:6.4.2"],\ + ["is-reference", "npm:1.2.1"],\ + ["magic-string", "npm:0.30.12"],\ + ["picomatch", "npm:2.3.1"],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/plugin-node-resolve", [\ + ["npm:15.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-plugin-node-resolve-npm-15.3.0-417ba9773d-10c0.zip/node_modules/@rollup/plugin-node-resolve/",\ + "packageDependencies": [\ + ["@rollup/plugin-node-resolve", "npm:15.3.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:15.3.0", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-plugin-node-resolve-virtual-801b7151ee/3/.yarn/berry/cache/@rollup-plugin-node-resolve-npm-15.3.0-417ba9773d-10c0.zip/node_modules/@rollup/plugin-node-resolve/",\ + "packageDependencies": [\ + ["@rollup/plugin-node-resolve", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:15.3.0"],\ + ["@rollup/pluginutils", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3"],\ + ["@types/resolve", "npm:1.20.2"],\ + ["@types/rollup", null],\ + ["deepmerge", "npm:4.3.1"],\ + ["is-module", "npm:1.0.0"],\ + ["resolve", "patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/plugin-terser", [\ + ["npm:0.4.4", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-plugin-terser-npm-0.4.4-c6896dd264-10c0.zip/node_modules/@rollup/plugin-terser/",\ + "packageDependencies": [\ + ["@rollup/plugin-terser", "npm:0.4.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:0.4.4", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-plugin-terser-virtual-2eb25a35f6/3/.yarn/berry/cache/@rollup-plugin-terser-npm-0.4.4-c6896dd264-10c0.zip/node_modules/@rollup/plugin-terser/",\ + "packageDependencies": [\ + ["@rollup/plugin-terser", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:0.4.4"],\ + ["@types/rollup", null],\ + ["rollup", "npm:3.29.5"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["smob", "npm:1.5.0"],\ + ["terser", "npm:5.36.0"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/plugin-url", [\ + ["npm:8.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-plugin-url-npm-8.0.2-493faac94a-10c0.zip/node_modules/@rollup/plugin-url/",\ + "packageDependencies": [\ + ["@rollup/plugin-url", "npm:8.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:8.0.2", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-plugin-url-virtual-a28ecf1fbe/3/.yarn/berry/cache/@rollup-plugin-url-npm-8.0.2-493faac94a-10c0.zip/node_modules/@rollup/plugin-url/",\ + "packageDependencies": [\ + ["@rollup/plugin-url", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:8.0.2"],\ + ["@rollup/pluginutils", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3"],\ + ["@types/rollup", null],\ + ["make-dir", "npm:3.1.0"],\ + ["mime", "npm:3.0.0"],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/plugin-wasm", [\ + ["npm:6.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-plugin-wasm-npm-6.2.2-ef970beb59-10c0.zip/node_modules/@rollup/plugin-wasm/",\ + "packageDependencies": [\ + ["@rollup/plugin-wasm", "npm:6.2.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:6.2.2", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-plugin-wasm-virtual-6ad57230f4/3/.yarn/berry/cache/@rollup-plugin-wasm-npm-6.2.2-ef970beb59-10c0.zip/node_modules/@rollup/plugin-wasm/",\ + "packageDependencies": [\ + ["@rollup/plugin-wasm", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:6.2.2"],\ + ["@rollup/pluginutils", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3"],\ + ["@types/rollup", null],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/pluginutils", [\ + ["npm:4.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-pluginutils-npm-4.2.1-0f52a5eba2-10c0.zip/node_modules/@rollup/pluginutils/",\ + "packageDependencies": [\ + ["@rollup/pluginutils", "npm:4.2.1"],\ + ["estree-walker", "npm:2.0.2"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/@rollup-pluginutils-npm-5.1.3-4eea007cde-10c0.zip/node_modules/@rollup/pluginutils/",\ + "packageDependencies": [\ + ["@rollup/pluginutils", "npm:5.1.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3", {\ + "packageLocation": "./.yarn/__virtual__/@rollup-pluginutils-virtual-ccf1879104/3/.yarn/berry/cache/@rollup-pluginutils-npm-5.1.3-4eea007cde-10c0.zip/node_modules/@rollup/pluginutils/",\ + "packageDependencies": [\ + ["@rollup/pluginutils", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3"],\ + ["@types/estree", "npm:1.0.6"],\ + ["@types/rollup", null],\ + ["estree-walker", "npm:2.0.2"],\ + ["picomatch", "npm:4.0.2"],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-android-arm-eabi", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm-eabi-npm-4.24.0-0e40f06bc0/node_modules/@rollup/rollup-android-arm-eabi/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm-eabi", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-android-arm64", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-android-arm64-npm-4.24.0-ed44e29a69/node_modules/@rollup/rollup-android-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-android-arm64", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-darwin-arm64", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-arm64-npm-4.24.0-9d2c88b8fe/node_modules/@rollup/rollup-darwin-arm64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-arm64", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-darwin-x64", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-darwin-x64-npm-4.24.0-41f32a0153/node_modules/@rollup/rollup-darwin-x64/",\ + "packageDependencies": [\ + ["@rollup/rollup-darwin-x64", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm-gnueabihf", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-gnueabihf-npm-4.24.0-650cc735cc/node_modules/@rollup/rollup-linux-arm-gnueabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm-musleabihf", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm-musleabihf-npm-4.24.0-0a78a73f98/node_modules/@rollup/rollup-linux-arm-musleabihf/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm64-gnu", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-gnu-npm-4.24.0-241f3660dd/node_modules/@rollup/rollup-linux-arm64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-arm64-musl", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-arm64-musl-npm-4.24.0-627e691c95/node_modules/@rollup/rollup-linux-arm64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-powerpc64le-gnu", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-powerpc64le-gnu-npm-4.24.0-c820d6337d/node_modules/@rollup/rollup-linux-powerpc64le-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-powerpc64le-gnu", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-riscv64-gnu", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-riscv64-gnu-npm-4.24.0-3c39472e35/node_modules/@rollup/rollup-linux-riscv64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-s390x-gnu", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-s390x-gnu-npm-4.24.0-9e542e6b3d/node_modules/@rollup/rollup-linux-s390x-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-x64-gnu", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-gnu-npm-4.24.0-a67121f2c9/node_modules/@rollup/rollup-linux-x64-gnu/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-linux-x64-musl", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-linux-x64-musl-npm-4.24.0-379cd4fc6b/node_modules/@rollup/rollup-linux-x64-musl/",\ + "packageDependencies": [\ + ["@rollup/rollup-linux-x64-musl", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-win32-arm64-msvc", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-arm64-msvc-npm-4.24.0-e78e2670bf/node_modules/@rollup/rollup-win32-arm64-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-win32-ia32-msvc", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-ia32-msvc-npm-4.24.0-707da1afbc/node_modules/@rollup/rollup-win32-ia32-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@rollup/rollup-win32-x64-msvc", [\ + ["npm:4.24.0", {\ + "packageLocation": "./.yarn/unplugged/@rollup-rollup-win32-x64-msvc-npm-4.24.0-1ea88baa4a/node_modules/@rollup/rollup-win32-x64-msvc/",\ + "packageDependencies": [\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@scure/base", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@scure-base-npm-1.1.1-67ec4c3f95-10c0.zip/node_modules/@scure/base/",\ + "packageDependencies": [\ + ["@scure/base", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.1.9", {\ + "packageLocation": "../../.yarn/berry/cache/@scure-base-npm-1.1.9-75a8521e88-10c0.zip/node_modules/@scure/base/",\ + "packageDependencies": [\ + ["@scure/base", "npm:1.1.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@scure/bip32", [\ + ["npm:1.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/@scure-bip32-npm-1.3.1-3af4429c8d-10c0.zip/node_modules/@scure/bip32/",\ + "packageDependencies": [\ + ["@scure/bip32", "npm:1.3.1"],\ + ["@noble/curves", "npm:1.1.0"],\ + ["@noble/hashes", "npm:1.3.3"],\ + ["@scure/base", "npm:1.1.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@scure/bip39", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/@scure-bip39-npm-1.2.1-f930930e61-10c0.zip/node_modules/@scure/bip39/",\ + "packageDependencies": [\ + ["@scure/bip39", "npm:1.2.1"],\ + ["@noble/hashes", "npm:1.3.3"],\ + ["@scure/base", "npm:1.1.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@sveltejs/vite-plugin-svelte", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/@sveltejs-vite-plugin-svelte-npm-4.0.0-45ebff239c-10c0.zip/node_modules/@sveltejs/vite-plugin-svelte/",\ + "packageDependencies": [\ + ["@sveltejs/vite-plugin-svelte", "npm:4.0.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:4.0.0", {\ + "packageLocation": "./.yarn/__virtual__/@sveltejs-vite-plugin-svelte-virtual-b889bcd70d/3/.yarn/berry/cache/@sveltejs-vite-plugin-svelte-npm-4.0.0-45ebff239c-10c0.zip/node_modules/@sveltejs/vite-plugin-svelte/",\ + "packageDependencies": [\ + ["@sveltejs/vite-plugin-svelte", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:4.0.0"],\ + ["@sveltejs/vite-plugin-svelte-inspector", "virtual:b889bcd70dc10003816fb705414b5b4562aafbcc61f0c8e100a2c52d60df150cb17f4cf1023cc022fb6ed397f307defa024d662c527cadfa64e40d90936f2de3#npm:3.0.1"],\ + ["@types/svelte", null],\ + ["@types/vite", null],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["deepmerge", "npm:4.3.1"],\ + ["kleur", "npm:4.1.5"],\ + ["magic-string", "npm:0.30.12"],\ + ["svelte", "npm:4.2.19"],\ + ["vite", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10"],\ + ["vitefu", "virtual:b889bcd70dc10003816fb705414b5b4562aafbcc61f0c8e100a2c52d60df150cb17f4cf1023cc022fb6ed397f307defa024d662c527cadfa64e40d90936f2de3#npm:1.0.3"]\ + ],\ + "packagePeers": [\ + "@types/svelte",\ + "@types/vite",\ + "svelte",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@sveltejs/vite-plugin-svelte-inspector", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/@sveltejs-vite-plugin-svelte-inspector-npm-3.0.1-20957265e1-10c0.zip/node_modules/@sveltejs/vite-plugin-svelte-inspector/",\ + "packageDependencies": [\ + ["@sveltejs/vite-plugin-svelte-inspector", "npm:3.0.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:b889bcd70dc10003816fb705414b5b4562aafbcc61f0c8e100a2c52d60df150cb17f4cf1023cc022fb6ed397f307defa024d662c527cadfa64e40d90936f2de3#npm:3.0.1", {\ + "packageLocation": "./.yarn/__virtual__/@sveltejs-vite-plugin-svelte-inspector-virtual-a89490bd52/3/.yarn/berry/cache/@sveltejs-vite-plugin-svelte-inspector-npm-3.0.1-20957265e1-10c0.zip/node_modules/@sveltejs/vite-plugin-svelte-inspector/",\ + "packageDependencies": [\ + ["@sveltejs/vite-plugin-svelte-inspector", "virtual:b889bcd70dc10003816fb705414b5b4562aafbcc61f0c8e100a2c52d60df150cb17f4cf1023cc022fb6ed397f307defa024d662c527cadfa64e40d90936f2de3#npm:3.0.1"],\ + ["@sveltejs/vite-plugin-svelte", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:4.0.0"],\ + ["@types/svelte", null],\ + ["@types/sveltejs__vite-plugin-svelte", null],\ + ["@types/vite", null],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["svelte", "npm:4.2.19"],\ + ["vite", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10"]\ + ],\ + "packagePeers": [\ + "@sveltejs/vite-plugin-svelte",\ + "@types/svelte",\ + "@types/sveltejs__vite-plugin-svelte",\ + "@types/vite",\ + "svelte",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@trysound/sax", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/@trysound-sax-npm-0.2.0-9f763d0295-10c0.zip/node_modules/@trysound/sax/",\ + "packageDependencies": [\ + ["@trysound/sax", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/estree", [\ + ["npm:1.0.6", {\ + "packageLocation": "../../.yarn/berry/cache/@types-estree-npm-1.0.6-b5e23f2ea2-10c0.zip/node_modules/@types/estree/",\ + "packageDependencies": [\ + ["@types/estree", "npm:1.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/fs-extra", [\ + ["npm:8.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/@types-fs-extra-npm-8.1.5-77d3a95112-10c0.zip/node_modules/@types/fs-extra/",\ + "packageDependencies": [\ + ["@types/fs-extra", "npm:8.1.5"],\ + ["@types/node", "npm:22.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/glob", [\ + ["npm:7.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/@types-glob-npm-7.2.0-772334bf9a-10c0.zip/node_modules/@types/glob/",\ + "packageDependencies": [\ + ["@types/glob", "npm:7.2.0"],\ + ["@types/minimatch", "npm:5.1.2"],\ + ["@types/node", "npm:22.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/json-schema", [\ + ["npm:7.0.15", {\ + "packageLocation": "../../.yarn/berry/cache/@types-json-schema-npm-7.0.15-fd16381786-10c0.zip/node_modules/@types/json-schema/",\ + "packageDependencies": [\ + ["@types/json-schema", "npm:7.0.15"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/minimatch", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/@types-minimatch-npm-5.1.2-aab9c394d3-10c0.zip/node_modules/@types/minimatch/",\ + "packageDependencies": [\ + ["@types/minimatch", "npm:5.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/node", [\ + ["npm:12.20.55", {\ + "packageLocation": "../../.yarn/berry/cache/@types-node-npm-12.20.55-88487587a4-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:12.20.55"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:22.5.5", {\ + "packageLocation": "../../.yarn/berry/cache/@types-node-npm-22.5.5-e8a43f7042-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:22.5.5"],\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:22.8.1", {\ + "packageLocation": "../../.yarn/berry/cache/@types-node-npm-22.8.1-68cd07c817-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:22.8.1"],\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/resolve", [\ + ["npm:1.20.2", {\ + "packageLocation": "../../.yarn/berry/cache/@types-resolve-npm-1.20.2-5fccb2ad46-10c0.zip/node_modules/@types/resolve/",\ + "packageDependencies": [\ + ["@types/resolve", "npm:1.20.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/expect", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-expect-npm-2.1.1-06d616c082-10c0.zip/node_modules/@vitest/expect/",\ + "packageDependencies": [\ + ["@vitest/expect", "npm:2.1.1"],\ + ["@vitest/spy", "npm:2.1.1"],\ + ["@vitest/utils", "npm:2.1.1"],\ + ["chai", "npm:5.1.2"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/mocker", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-mocker-npm-2.1.1-7379c00661-10c0.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@vitest/mocker", "npm:2.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:2.1.1", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-mocker-virtual-6bd9298338/3/.yarn/berry/cache/@vitest-mocker-npm-2.1.1-7379c00661-10c0.zip/node_modules/@vitest/mocker/",\ + "packageDependencies": [\ + ["@vitest/mocker", "virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:2.1.1"],\ + ["@types/msw", null],\ + ["@types/vite", null],\ + ["@types/vitest__spy", null],\ + ["@vitest/spy", "npm:2.1.1"],\ + ["estree-walker", "npm:3.0.3"],\ + ["magic-string", "npm:0.30.12"],\ + ["msw", null],\ + ["vite", "virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:5.4.10"]\ + ],\ + "packagePeers": [\ + "@types/msw",\ + "@types/vite",\ + "@types/vitest__spy",\ + "@vitest/spy",\ + "msw",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/pretty-format", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-pretty-format-npm-2.1.1-29864c3670-10c0.zip/node_modules/@vitest/pretty-format/",\ + "packageDependencies": [\ + ["@vitest/pretty-format", "npm:2.1.1"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-pretty-format-npm-2.1.3-ea36ba97d6-10c0.zip/node_modules/@vitest/pretty-format/",\ + "packageDependencies": [\ + ["@vitest/pretty-format", "npm:2.1.3"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/runner", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-runner-npm-2.1.1-a7f297b731-10c0.zip/node_modules/@vitest/runner/",\ + "packageDependencies": [\ + ["@vitest/runner", "npm:2.1.1"],\ + ["@vitest/utils", "npm:2.1.1"],\ + ["pathe", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/snapshot", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-snapshot-npm-2.1.1-9961fadcfd-10c0.zip/node_modules/@vitest/snapshot/",\ + "packageDependencies": [\ + ["@vitest/snapshot", "npm:2.1.1"],\ + ["@vitest/pretty-format", "npm:2.1.1"],\ + ["magic-string", "npm:0.30.12"],\ + ["pathe", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/spy", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-spy-npm-2.1.1-02fa134c1d-10c0.zip/node_modules/@vitest/spy/",\ + "packageDependencies": [\ + ["@vitest/spy", "npm:2.1.1"],\ + ["tinyspy", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/utils", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-utils-npm-2.1.1-4266447115-10c0.zip/node_modules/@vitest/utils/",\ + "packageDependencies": [\ + ["@vitest/utils", "npm:2.1.1"],\ + ["@vitest/pretty-format", "npm:2.1.1"],\ + ["loupe", "npm:3.1.2"],\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@vitest/web-worker", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/@vitest-web-worker-npm-2.1.1-2bdc64a77d-10c0.zip/node_modules/@vitest/web-worker/",\ + "packageDependencies": [\ + ["@vitest/web-worker", "npm:2.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1", {\ + "packageLocation": "./.yarn/__virtual__/@vitest-web-worker-virtual-1d97049711/3/.yarn/berry/cache/@vitest-web-worker-npm-2.1.1-2bdc64a77d-10c0.zip/node_modules/@vitest/web-worker/",\ + "packageDependencies": [\ + ["@vitest/web-worker", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["@types/vitest", null],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["vitest", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"]\ + ],\ + "packagePeers": [\ + "@types/vitest",\ + "vitest"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/ast", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-ast-npm-1.12.1-3ff9ea1c0e-10c0.zip/node_modules/@webassemblyjs/ast/",\ + "packageDependencies": [\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-numbers", "npm:1.11.6"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/floating-point-hex-parser", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-10c0.zip/node_modules/@webassemblyjs/floating-point-hex-parser/",\ + "packageDependencies": [\ + ["@webassemblyjs/floating-point-hex-parser", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/helper-api-error", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-10c0.zip/node_modules/@webassemblyjs/helper-api-error/",\ + "packageDependencies": [\ + ["@webassemblyjs/helper-api-error", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/helper-buffer", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-helper-buffer-npm-1.12.1-d025434a45-10c0.zip/node_modules/@webassemblyjs/helper-buffer/",\ + "packageDependencies": [\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/helper-numbers", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-10c0.zip/node_modules/@webassemblyjs/helper-numbers/",\ + "packageDependencies": [\ + ["@webassemblyjs/helper-numbers", "npm:1.11.6"],\ + ["@webassemblyjs/floating-point-hex-parser", "npm:1.11.6"],\ + ["@webassemblyjs/helper-api-error", "npm:1.11.6"],\ + ["@xtuc/long", "npm:4.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/helper-wasm-bytecode", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-10c0.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/",\ + "packageDependencies": [\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/helper-wasm-section", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-helper-wasm-section-npm-1.12.1-cd0e2f1eab-10c0.zip/node_modules/@webassemblyjs/helper-wasm-section/",\ + "packageDependencies": [\ + ["@webassemblyjs/helper-wasm-section", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/ieee754", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-10c0.zip/node_modules/@webassemblyjs/ieee754/",\ + "packageDependencies": [\ + ["@webassemblyjs/ieee754", "npm:1.11.6"],\ + ["@xtuc/ieee754", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/leb128", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-10c0.zip/node_modules/@webassemblyjs/leb128/",\ + "packageDependencies": [\ + ["@webassemblyjs/leb128", "npm:1.11.6"],\ + ["@xtuc/long", "npm:4.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/utf8", [\ + ["npm:1.11.6", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-10c0.zip/node_modules/@webassemblyjs/utf8/",\ + "packageDependencies": [\ + ["@webassemblyjs/utf8", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/wasm-edit", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-wasm-edit-npm-1.12.1-727bec592a-10c0.zip/node_modules/@webassemblyjs/wasm-edit/",\ + "packageDependencies": [\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/helper-wasm-section", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-opt", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ + ["@webassemblyjs/wast-printer", "npm:1.12.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/wasm-gen", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-wasm-gen-npm-1.12.1-bbe22ad265-10c0.zip/node_modules/@webassemblyjs/wasm-gen/",\ + "packageDependencies": [\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/ieee754", "npm:1.11.6"],\ + ["@webassemblyjs/leb128", "npm:1.11.6"],\ + ["@webassemblyjs/utf8", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/wasm-opt", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-wasm-opt-npm-1.12.1-450c932de6-10c0.zip/node_modules/@webassemblyjs/wasm-opt/",\ + "packageDependencies": [\ + ["@webassemblyjs/wasm-opt", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-buffer", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-gen", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/wasm-parser", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-wasm-parser-npm-1.12.1-54a7a19806-10c0.zip/node_modules/@webassemblyjs/wasm-parser/",\ + "packageDependencies": [\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/helper-api-error", "npm:1.11.6"],\ + ["@webassemblyjs/helper-wasm-bytecode", "npm:1.11.6"],\ + ["@webassemblyjs/ieee754", "npm:1.11.6"],\ + ["@webassemblyjs/leb128", "npm:1.11.6"],\ + ["@webassemblyjs/utf8", "npm:1.11.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@webassemblyjs/wast-printer", [\ + ["npm:1.12.1", {\ + "packageLocation": "../../.yarn/berry/cache/@webassemblyjs-wast-printer-npm-1.12.1-e75655c7ff-10c0.zip/node_modules/@webassemblyjs/wast-printer/",\ + "packageDependencies": [\ + ["@webassemblyjs/wast-printer", "npm:1.12.1"],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@xtuc/long", "npm:4.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@xtuc/ieee754", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/@xtuc-ieee754-npm-1.2.0-ec0ce4e025-10c0.zip/node_modules/@xtuc/ieee754/",\ + "packageDependencies": [\ + ["@xtuc/ieee754", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@xtuc/long", [\ + ["npm:4.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/@xtuc-long-npm-4.2.2-37236e6d72-10c0.zip/node_modules/@xtuc/long/",\ + "packageDependencies": [\ + ["@xtuc/long", "npm:4.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["abbrev", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/abbrev-npm-2.0.0-0eb38a17e5-10c0.zip/node_modules/abbrev/",\ + "packageDependencies": [\ + ["abbrev", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["acorn", [\ + ["npm:3.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/acorn-npm-3.3.0-3b87605fb5-10c0.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:3.3.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.13.0", {\ + "packageLocation": "../../.yarn/berry/cache/acorn-npm-8.13.0-a6d9510af8-10c0.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:8.13.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["acorn-import-attributes", [\ + ["npm:1.9.5", {\ + "packageLocation": "../../.yarn/berry/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-10c0.zip/node_modules/acorn-import-attributes/",\ + "packageDependencies": [\ + ["acorn-import-attributes", "npm:1.9.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:a30eb07853fb4327b539fbe6d1a8e64a6bbc42d4aef9af6899bb0e5b7383c1f34a01762dd241c3be355113817444fe398510e7ba3bfe85e0d91ab55b7c3d7a7e#npm:1.9.5", {\ + "packageLocation": "./.yarn/__virtual__/acorn-import-attributes-virtual-f01bb6b42b/3/.yarn/berry/cache/acorn-import-attributes-npm-1.9.5-d1e666eb35-10c0.zip/node_modules/acorn-import-attributes/",\ + "packageDependencies": [\ + ["acorn-import-attributes", "virtual:a30eb07853fb4327b539fbe6d1a8e64a6bbc42d4aef9af6899bb0e5b7383c1f34a01762dd241c3be355113817444fe398510e7ba3bfe85e0d91ab55b7c3d7a7e#npm:1.9.5"],\ + ["@types/acorn", null],\ + ["acorn", "npm:8.13.0"]\ + ],\ + "packagePeers": [\ + "@types/acorn",\ + "acorn"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["agent-base", [\ + ["npm:7.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/agent-base-npm-7.1.1-c9e1a4b59e-10c0.zip/node_modules/agent-base/",\ + "packageDependencies": [\ + ["agent-base", "npm:7.1.1"],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["aggregate-error", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/aggregate-error-npm-3.1.0-415a406f4e-10c0.zip/node_modules/aggregate-error/",\ + "packageDependencies": [\ + ["aggregate-error", "npm:3.1.0"],\ + ["clean-stack", "npm:2.2.0"],\ + ["indent-string", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ajv", [\ + ["npm:6.12.6", {\ + "packageLocation": "../../.yarn/berry/cache/ajv-npm-6.12.6-4b5105e2b2-10c0.zip/node_modules/ajv/",\ + "packageDependencies": [\ + ["ajv", "npm:6.12.6"],\ + ["fast-deep-equal", "npm:3.1.3"],\ + ["fast-json-stable-stringify", "npm:2.1.0"],\ + ["json-schema-traverse", "npm:0.4.1"],\ + ["uri-js", "npm:4.4.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.17.1", {\ + "packageLocation": "../../.yarn/berry/cache/ajv-npm-8.17.1-12ade7edc6-10c0.zip/node_modules/ajv/",\ + "packageDependencies": [\ + ["ajv", "npm:8.17.1"],\ + ["fast-deep-equal", "npm:3.1.3"],\ + ["fast-uri", "npm:3.0.3"],\ + ["json-schema-traverse", "npm:1.0.0"],\ + ["require-from-string", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ajv-formats", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/ajv-formats-npm-2.1.1-3cec02eae9-10c0.zip/node_modules/ajv-formats/",\ + "packageDependencies": [\ + ["ajv-formats", "npm:2.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:2.1.1", {\ + "packageLocation": "./.yarn/__virtual__/ajv-formats-virtual-39fabfe016/3/.yarn/berry/cache/ajv-formats-npm-2.1.1-3cec02eae9-10c0.zip/node_modules/ajv-formats/",\ + "packageDependencies": [\ + ["ajv-formats", "virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:2.1.1"],\ + ["@types/ajv", null],\ + ["ajv", "npm:8.17.1"]\ + ],\ + "packagePeers": [\ + "@types/ajv",\ + "ajv"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ajv-keywords", [\ + ["npm:3.5.2", {\ + "packageLocation": "../../.yarn/berry/cache/ajv-keywords-npm-3.5.2-0e391b70e2-10c0.zip/node_modules/ajv-keywords/",\ + "packageDependencies": [\ + ["ajv-keywords", "npm:3.5.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/ajv-keywords-npm-5.1.0-ee670a3944-10c0.zip/node_modules/ajv-keywords/",\ + "packageDependencies": [\ + ["ajv-keywords", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/ajv-keywords-virtual-7d79801060/3/.yarn/berry/cache/ajv-keywords-npm-5.1.0-ee670a3944-10c0.zip/node_modules/ajv-keywords/",\ + "packageDependencies": [\ + ["ajv-keywords", "virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0"],\ + ["@types/ajv", null],\ + ["ajv", "npm:8.17.1"],\ + ["fast-deep-equal", "npm:3.1.3"]\ + ],\ + "packagePeers": [\ + "@types/ajv",\ + "ajv"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2", {\ + "packageLocation": "./.yarn/__virtual__/ajv-keywords-virtual-80fc73abbe/3/.yarn/berry/cache/ajv-keywords-npm-3.5.2-0e391b70e2-10c0.zip/node_modules/ajv-keywords/",\ + "packageDependencies": [\ + ["ajv-keywords", "virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2"],\ + ["@types/ajv", null],\ + ["ajv", "npm:6.12.6"]\ + ],\ + "packagePeers": [\ + "@types/ajv",\ + "ajv"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["align-text", [\ + ["npm:0.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/align-text-npm-0.1.4-ed690ff89e-10c0.zip/node_modules/align-text/",\ + "packageDependencies": [\ + ["align-text", "npm:0.1.4"],\ + ["kind-of", "npm:3.2.2"],\ + ["longest", "npm:1.0.1"],\ + ["repeat-string", "npm:1.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["amdefine", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/amdefine-npm-1.0.1-40b219807a-10c0.zip/node_modules/amdefine/",\ + "packageDependencies": [\ + ["amdefine", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-colors", [\ + ["npm:4.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/ansi-colors-npm-4.1.3-8ffd0ae6c7-10c0.zip/node_modules/ansi-colors/",\ + "packageDependencies": [\ + ["ansi-colors", "npm:4.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-regex", [\ + ["npm:5.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/ansi-regex-npm-5.0.1-c963a48615-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/ansi-regex-npm-6.1.0-abe011aae4-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-styles", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/ansi-styles-npm-4.3.0-245c7d42c7-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:4.3.0"],\ + ["color-convert", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/ansi-styles-npm-6.2.1-d43647018c-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["anymatch", [\ + ["npm:1.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/anymatch-npm-1.3.2-a0b3155e35-10c0.zip/node_modules/anymatch/",\ + "packageDependencies": [\ + ["anymatch", "npm:1.3.2"],\ + ["micromatch", "npm:2.3.11"],\ + ["normalize-path", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/anymatch-npm-3.1.3-bc81d103b1-10c0.zip/node_modules/anymatch/",\ + "packageDependencies": [\ + ["anymatch", "npm:3.1.3"],\ + ["normalize-path", "npm:3.0.0"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["argparse", [\ + ["npm:1.0.10", {\ + "packageLocation": "../../.yarn/berry/cache/argparse-npm-1.0.10-528934e59d-10c0.zip/node_modules/argparse/",\ + "packageDependencies": [\ + ["argparse", "npm:1.0.10"],\ + ["sprintf-js", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["aria-query", [\ + ["npm:5.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/aria-query-npm-5.3.2-78632ac5c5-10c0.zip/node_modules/aria-query/",\ + "packageDependencies": [\ + ["aria-query", "npm:5.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["arr-diff", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/arr-diff-npm-2.0.0-448f410f30-10c0.zip/node_modules/arr-diff/",\ + "packageDependencies": [\ + ["arr-diff", "npm:2.0.0"],\ + ["arr-flatten", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/arr-diff-npm-4.0.0-cec86ae312-10c0.zip/node_modules/arr-diff/",\ + "packageDependencies": [\ + ["arr-diff", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["arr-flatten", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/arr-flatten-npm-1.1.0-0c12b693e4-10c0.zip/node_modules/arr-flatten/",\ + "packageDependencies": [\ + ["arr-flatten", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["arr-union", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/arr-union-npm-3.1.0-853ada9729-10c0.zip/node_modules/arr-union/",\ + "packageDependencies": [\ + ["arr-union", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["array-union", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/array-union-npm-2.1.0-4e4852b221-10c0.zip/node_modules/array-union/",\ + "packageDependencies": [\ + ["array-union", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["array-unique", [\ + ["npm:0.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/array-unique-npm-0.2.1-f86f13725c-10c0.zip/node_modules/array-unique/",\ + "packageDependencies": [\ + ["array-unique", "npm:0.2.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/array-unique-npm-0.3.2-9f62c6ac93-10c0.zip/node_modules/array-unique/",\ + "packageDependencies": [\ + ["array-unique", "npm:0.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["assert", [\ + ["npm:1.5.1", {\ + "packageLocation": "../../.yarn/berry/cache/assert-npm-1.5.1-aadf75df16-10c0.zip/node_modules/assert/",\ + "packageDependencies": [\ + ["assert", "npm:1.5.1"],\ + ["object.assign", "npm:4.1.5"],\ + ["util", "npm:0.10.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["assertion-error", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/assertion-error-npm-2.0.1-8169d136f2-10c0.zip/node_modules/assertion-error/",\ + "packageDependencies": [\ + ["assertion-error", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["assign-symbols", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/assign-symbols-npm-1.0.0-fd803ccdf1-10c0.zip/node_modules/assign-symbols/",\ + "packageDependencies": [\ + ["assign-symbols", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["async", [\ + ["npm:0.2.10", {\ + "packageLocation": "../../.yarn/berry/cache/async-npm-0.2.10-e2182a8639-10c0.zip/node_modules/async/",\ + "packageDependencies": [\ + ["async", "npm:0.2.10"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.9.2", {\ + "packageLocation": "../../.yarn/berry/cache/async-npm-0.9.2-d8cafe6cc3-10c0.zip/node_modules/async/",\ + "packageDependencies": [\ + ["async", "npm:0.9.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.5.2", {\ + "packageLocation": "../../.yarn/berry/cache/async-npm-1.5.2-e971969e27-10c0.zip/node_modules/async/",\ + "packageDependencies": [\ + ["async", "npm:1.5.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["async-each", [\ + ["npm:1.0.6", {\ + "packageLocation": "../../.yarn/berry/cache/async-each-npm-1.0.6-d0ba4b5226-10c0.zip/node_modules/async-each/",\ + "packageDependencies": [\ + ["async-each", "npm:1.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["atob", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/atob-npm-2.1.2-bcb583261e-10c0.zip/node_modules/atob/",\ + "packageDependencies": [\ + ["atob", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["axobject-query", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/axobject-query-npm-4.1.0-9703554323-10c0.zip/node_modules/axobject-query/",\ + "packageDependencies": [\ + ["axobject-query", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["balanced-match", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/balanced-match-npm-1.0.2-a53c126459-10c0.zip/node_modules/balanced-match/",\ + "packageDependencies": [\ + ["balanced-match", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["base", [\ + ["npm:0.11.2", {\ + "packageLocation": "../../.yarn/berry/cache/base-npm-0.11.2-a9bde462d6-10c0.zip/node_modules/base/",\ + "packageDependencies": [\ + ["base", "npm:0.11.2"],\ + ["cache-base", "npm:1.0.1"],\ + ["class-utils", "npm:0.3.6"],\ + ["component-emitter", "npm:1.3.1"],\ + ["define-property", "npm:1.0.0"],\ + ["isobject", "npm:3.0.1"],\ + ["mixin-deep", "npm:1.3.2"],\ + ["pascalcase", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["base64-js", [\ + ["npm:1.5.1", {\ + "packageLocation": "../../.yarn/berry/cache/base64-js-npm-1.5.1-b2f7275641-10c0.zip/node_modules/base64-js/",\ + "packageDependencies": [\ + ["base64-js", "npm:1.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["better-path-resolve", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/better-path-resolve-npm-1.0.0-ea479f476b-10c0.zip/node_modules/better-path-resolve/",\ + "packageDependencies": [\ + ["better-path-resolve", "npm:1.0.0"],\ + ["is-windows", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["big.js", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/big.js-npm-3.2.0-85bc444414-10c0.zip/node_modules/big.js/",\ + "packageDependencies": [\ + ["big.js", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/big.js-npm-5.2.2-e147c30820-10c0.zip/node_modules/big.js/",\ + "packageDependencies": [\ + ["big.js", "npm:5.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["binary-extensions", [\ + ["npm:1.13.1", {\ + "packageLocation": "../../.yarn/berry/cache/binary-extensions-npm-1.13.1-fb81dec2b0-10c0.zip/node_modules/binary-extensions/",\ + "packageDependencies": [\ + ["binary-extensions", "npm:1.13.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/binary-extensions-npm-2.3.0-bd3f20d865-10c0.zip/node_modules/binary-extensions/",\ + "packageDependencies": [\ + ["binary-extensions", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["bindings", [\ + ["npm:1.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/bindings-npm-1.5.0-77ce1d213c-10c0.zip/node_modules/bindings/",\ + "packageDependencies": [\ + ["bindings", "npm:1.5.0"],\ + ["file-uri-to-path", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["boolbase", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/boolbase-npm-1.0.0-965fe9af6d-10c0.zip/node_modules/boolbase/",\ + "packageDependencies": [\ + ["boolbase", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["brace-expansion", [\ + ["npm:1.1.11", {\ + "packageLocation": "../../.yarn/berry/cache/brace-expansion-npm-1.1.11-fb95eb05ad-10c0.zip/node_modules/brace-expansion/",\ + "packageDependencies": [\ + ["brace-expansion", "npm:1.1.11"],\ + ["balanced-match", "npm:1.0.2"],\ + ["concat-map", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/brace-expansion-npm-2.0.1-17aa2616f9-10c0.zip/node_modules/brace-expansion/",\ + "packageDependencies": [\ + ["brace-expansion", "npm:2.0.1"],\ + ["balanced-match", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["braces", [\ + ["npm:1.8.5", {\ + "packageLocation": "../../.yarn/berry/cache/braces-npm-1.8.5-ce7bb29796-10c0.zip/node_modules/braces/",\ + "packageDependencies": [\ + ["braces", "npm:1.8.5"],\ + ["expand-range", "npm:1.8.2"],\ + ["preserve", "npm:0.2.0"],\ + ["repeat-element", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/braces-npm-2.3.2-19cadb3384-10c0.zip/node_modules/braces/",\ + "packageDependencies": [\ + ["braces", "npm:2.3.2"],\ + ["arr-flatten", "npm:1.1.0"],\ + ["array-unique", "npm:0.3.2"],\ + ["extend-shallow", "npm:2.0.1"],\ + ["fill-range", "npm:4.0.0"],\ + ["isobject", "npm:3.0.1"],\ + ["repeat-element", "npm:1.1.4"],\ + ["snapdragon", "npm:0.8.2"],\ + ["snapdragon-node", "npm:2.1.1"],\ + ["split-string", "npm:3.1.0"],\ + ["to-regex", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/braces-npm-3.0.3-582c14023c-10c0.zip/node_modules/braces/",\ + "packageDependencies": [\ + ["braces", "npm:3.0.3"],\ + ["fill-range", "npm:7.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["browserify-aes", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/browserify-aes-npm-0.4.0-63647dc9b0-10c0.zip/node_modules/browserify-aes/",\ + "packageDependencies": [\ + ["browserify-aes", "npm:0.4.0"],\ + ["inherits", "npm:2.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["browserify-zlib", [\ + ["npm:0.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/browserify-zlib-npm-0.1.4-34d70ed43d-10c0.zip/node_modules/browserify-zlib/",\ + "packageDependencies": [\ + ["browserify-zlib", "npm:0.1.4"],\ + ["pako", "npm:0.2.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["browserslist", [\ + ["npm:4.24.2", {\ + "packageLocation": "../../.yarn/berry/cache/browserslist-npm-4.24.2-0bc5f13e3b-10c0.zip/node_modules/browserslist/",\ + "packageDependencies": [\ + ["browserslist", "npm:4.24.2"],\ + ["caniuse-lite", "npm:1.0.30001671"],\ + ["electron-to-chromium", "npm:1.5.47"],\ + ["node-releases", "npm:2.0.18"],\ + ["update-browserslist-db", "virtual:0bc5f13e3b070c660ccf3396ff30b6fc44ede2343c6543d593ce4624807ab1bafdbcd764ac20b4d55e6854e63e2568f1c6d09371eb639766b95e2d401b5b05cb#npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["buffer", [\ + ["npm:4.9.2", {\ + "packageLocation": "../../.yarn/berry/cache/buffer-npm-4.9.2-9e40b5e87a-10c0.zip/node_modules/buffer/",\ + "packageDependencies": [\ + ["buffer", "npm:4.9.2"],\ + ["base64-js", "npm:1.5.1"],\ + ["ieee754", "npm:1.2.1"],\ + ["isarray", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["buffer-from", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/buffer-from-npm-1.1.2-03d2f20d7e-10c0.zip/node_modules/buffer-from/",\ + "packageDependencies": [\ + ["buffer-from", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["builtin-status-codes", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/builtin-status-codes-npm-3.0.0-e376b0580b-10c0.zip/node_modules/builtin-status-codes/",\ + "packageDependencies": [\ + ["builtin-status-codes", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cac", [\ + ["npm:6.7.14", {\ + "packageLocation": "../../.yarn/berry/cache/cac-npm-6.7.14-c46284e425-10c0.zip/node_modules/cac/",\ + "packageDependencies": [\ + ["cac", "npm:6.7.14"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cacache", [\ + ["npm:18.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/cacache-npm-18.0.4-3dc4edc849-10c0.zip/node_modules/cacache/",\ + "packageDependencies": [\ + ["cacache", "npm:18.0.4"],\ + ["@npmcli/fs", "npm:3.1.1"],\ + ["fs-minipass", "npm:3.0.3"],\ + ["glob", "npm:10.4.5"],\ + ["lru-cache", "npm:10.4.3"],\ + ["minipass", "npm:7.1.2"],\ + ["minipass-collect", "npm:2.0.1"],\ + ["minipass-flush", "npm:1.0.5"],\ + ["minipass-pipeline", "npm:1.2.4"],\ + ["p-map", "npm:4.0.0"],\ + ["ssri", "npm:10.0.6"],\ + ["tar", "npm:6.2.1"],\ + ["unique-filename", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cache-base", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/cache-base-npm-1.0.1-1538417cb9-10c0.zip/node_modules/cache-base/",\ + "packageDependencies": [\ + ["cache-base", "npm:1.0.1"],\ + ["collection-visit", "npm:1.0.0"],\ + ["component-emitter", "npm:1.3.1"],\ + ["get-value", "npm:2.0.6"],\ + ["has-value", "npm:1.0.0"],\ + ["isobject", "npm:3.0.1"],\ + ["set-value", "npm:2.0.1"],\ + ["to-object-path", "npm:0.3.0"],\ + ["union-value", "npm:1.0.1"],\ + ["unset-value", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["call-bind", [\ + ["npm:1.0.7", {\ + "packageLocation": "../../.yarn/berry/cache/call-bind-npm-1.0.7-762763ef96-10c0.zip/node_modules/call-bind/",\ + "packageDependencies": [\ + ["call-bind", "npm:1.0.7"],\ + ["es-define-property", "npm:1.0.0"],\ + ["es-errors", "npm:1.3.0"],\ + ["function-bind", "npm:1.1.2"],\ + ["get-intrinsic", "npm:1.2.4"],\ + ["set-function-length", "npm:1.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["camelcase", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/camelcase-npm-1.2.1-066f4a2829-10c0.zip/node_modules/camelcase/",\ + "packageDependencies": [\ + ["camelcase", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["caniuse-api", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/caniuse-api-npm-3.0.0-1272c2981e-10c0.zip/node_modules/caniuse-api/",\ + "packageDependencies": [\ + ["caniuse-api", "npm:3.0.0"],\ + ["browserslist", "npm:4.24.2"],\ + ["caniuse-lite", "npm:1.0.30001671"],\ + ["lodash.memoize", "npm:4.1.2"],\ + ["lodash.uniq", "npm:4.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["caniuse-lite", [\ + ["npm:1.0.30001671", {\ + "packageLocation": "../../.yarn/berry/cache/caniuse-lite-npm-1.0.30001671-57ce87f36a-10c0.zip/node_modules/caniuse-lite/",\ + "packageDependencies": [\ + ["caniuse-lite", "npm:1.0.30001671"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["center-align", [\ + ["npm:0.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/center-align-npm-0.1.3-4fd72d589d-10c0.zip/node_modules/center-align/",\ + "packageDependencies": [\ + ["center-align", "npm:0.1.3"],\ + ["align-text", "npm:0.1.4"],\ + ["lazy-cache", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chai", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/chai-npm-5.1.2-6b92587dbf-10c0.zip/node_modules/chai/",\ + "packageDependencies": [\ + ["chai", "npm:5.1.2"],\ + ["assertion-error", "npm:2.0.1"],\ + ["check-error", "npm:2.1.1"],\ + ["deep-eql", "npm:5.0.2"],\ + ["loupe", "npm:3.1.2"],\ + ["pathval", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chalk", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/chalk-npm-4.1.2-ba8b67ab80-10c0.zip/node_modules/chalk/",\ + "packageDependencies": [\ + ["chalk", "npm:4.1.2"],\ + ["ansi-styles", "npm:4.3.0"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chardet", [\ + ["npm:0.7.0", {\ + "packageLocation": "../../.yarn/berry/cache/chardet-npm-0.7.0-27933dd6c7-10c0.zip/node_modules/chardet/",\ + "packageDependencies": [\ + ["chardet", "npm:0.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["check-error", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/check-error-npm-2.1.1-34e4ef357e-10c0.zip/node_modules/check-error/",\ + "packageDependencies": [\ + ["check-error", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chokidar", [\ + ["npm:1.7.0", {\ + "packageLocation": "../../.yarn/berry/cache/chokidar-npm-1.7.0-a3b03416e2-10c0.zip/node_modules/chokidar/",\ + "packageDependencies": [\ + ["chokidar", "npm:1.7.0"],\ + ["anymatch", "npm:1.3.2"],\ + ["async-each", "npm:1.0.6"],\ + ["fsevents", "patch:fsevents@npm%3A1.2.13#optional!builtin::version=1.2.13&hash=d11327"],\ + ["glob-parent", "npm:2.0.0"],\ + ["inherits", "npm:2.0.4"],\ + ["is-binary-path", "npm:1.0.1"],\ + ["is-glob", "npm:2.0.1"],\ + ["path-is-absolute", "npm:1.0.1"],\ + ["readdirp", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.6.0", {\ + "packageLocation": "../../.yarn/berry/cache/chokidar-npm-3.6.0-3c413a828f-10c0.zip/node_modules/chokidar/",\ + "packageDependencies": [\ + ["chokidar", "npm:3.6.0"],\ + ["anymatch", "npm:3.1.3"],\ + ["braces", "npm:3.0.3"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["glob-parent", "npm:5.1.2"],\ + ["is-binary-path", "npm:2.1.0"],\ + ["is-glob", "npm:4.0.3"],\ + ["normalize-path", "npm:3.0.0"],\ + ["readdirp", "npm:3.6.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chownr", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/chownr-npm-2.0.0-638f1c9c61-10c0.zip/node_modules/chownr/",\ + "packageDependencies": [\ + ["chownr", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chrome-trace-event", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/chrome-trace-event-npm-1.0.4-4f22eb2c55-10c0.zip/node_modules/chrome-trace-event/",\ + "packageDependencies": [\ + ["chrome-trace-event", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ci-info", [\ + ["npm:3.9.0", {\ + "packageLocation": "../../.yarn/berry/cache/ci-info-npm-3.9.0-646784ca0e-10c0.zip/node_modules/ci-info/",\ + "packageDependencies": [\ + ["ci-info", "npm:3.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["class-utils", [\ + ["npm:0.3.6", {\ + "packageLocation": "../../.yarn/berry/cache/class-utils-npm-0.3.6-2c691ad006-10c0.zip/node_modules/class-utils/",\ + "packageDependencies": [\ + ["class-utils", "npm:0.3.6"],\ + ["arr-union", "npm:3.1.0"],\ + ["define-property", "npm:0.2.5"],\ + ["isobject", "npm:3.0.1"],\ + ["static-extend", "npm:0.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["clean-stack", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/clean-stack-npm-2.2.0-a8ce435a5c-10c0.zip/node_modules/clean-stack/",\ + "packageDependencies": [\ + ["clean-stack", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cliui", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/cliui-npm-2.1.0-335d0c5e53-10c0.zip/node_modules/cliui/",\ + "packageDependencies": [\ + ["cliui", "npm:2.1.0"],\ + ["center-align", "npm:0.1.3"],\ + ["right-align", "npm:0.1.3"],\ + ["wordwrap", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["clone", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/clone-npm-1.0.4-a610fcbcf9-10c0.zip/node_modules/clone/",\ + "packageDependencies": [\ + ["clone", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["code-red", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/code-red-npm-1.0.4-596bf4aa15-10c0.zip/node_modules/code-red/",\ + "packageDependencies": [\ + ["code-red", "npm:1.0.4"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"],\ + ["@types/estree", "npm:1.0.6"],\ + ["acorn", "npm:8.13.0"],\ + ["estree-walker", "npm:3.0.3"],\ + ["periscopic", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["collection-visit", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/collection-visit-npm-1.0.0-aba2d5defc-10c0.zip/node_modules/collection-visit/",\ + "packageDependencies": [\ + ["collection-visit", "npm:1.0.0"],\ + ["map-visit", "npm:1.0.0"],\ + ["object-visit", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["color-convert", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/color-convert-npm-2.0.1-79730e935b-10c0.zip/node_modules/color-convert/",\ + "packageDependencies": [\ + ["color-convert", "npm:2.0.1"],\ + ["color-name", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["color-name", [\ + ["npm:1.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/color-name-npm-1.1.4-025792b0ea-10c0.zip/node_modules/color-name/",\ + "packageDependencies": [\ + ["color-name", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["colord", [\ + ["npm:2.9.3", {\ + "packageLocation": "../../.yarn/berry/cache/colord-npm-2.9.3-5c35c27898-10c0.zip/node_modules/colord/",\ + "packageDependencies": [\ + ["colord", "npm:2.9.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["colorette", [\ + ["npm:1.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/colorette-npm-1.4.0-7e94b44dc3-10c0.zip/node_modules/colorette/",\ + "packageDependencies": [\ + ["colorette", "npm:1.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["commander", [\ + ["npm:2.20.3", {\ + "packageLocation": "../../.yarn/berry/cache/commander-npm-2.20.3-d8dcbaa39b-10c0.zip/node_modules/commander/",\ + "packageDependencies": [\ + ["commander", "npm:2.20.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/commander-npm-7.2.0-19178180f8-10c0.zip/node_modules/commander/",\ + "packageDependencies": [\ + ["commander", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["commondir", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/commondir-npm-1.0.1-291b790340-10c0.zip/node_modules/commondir/",\ + "packageDependencies": [\ + ["commondir", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["component-emitter", [\ + ["npm:1.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/component-emitter-npm-1.3.1-c2a8131a7e-10c0.zip/node_modules/component-emitter/",\ + "packageDependencies": [\ + ["component-emitter", "npm:1.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["concat-map", [\ + ["npm:0.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/concat-map-npm-0.0.1-85a921b7ee-10c0.zip/node_modules/concat-map/",\ + "packageDependencies": [\ + ["concat-map", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["concat-with-sourcemaps", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/concat-with-sourcemaps-npm-1.1.0-0cc504d9ba-10c0.zip/node_modules/concat-with-sourcemaps/",\ + "packageDependencies": [\ + ["concat-with-sourcemaps", "npm:1.1.0"],\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["console-browserify", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/console-browserify-npm-1.2.0-5619eeb6ff-10c0.zip/node_modules/console-browserify/",\ + "packageDependencies": [\ + ["console-browserify", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["console-clear", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/console-clear-npm-1.1.1-47b667c7a6-10c0.zip/node_modules/console-clear/",\ + "packageDependencies": [\ + ["console-clear", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["constants-browserify", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/constants-browserify-npm-1.0.0-b9a9bcfe4b-10c0.zip/node_modules/constants-browserify/",\ + "packageDependencies": [\ + ["constants-browserify", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["copy-descriptor", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/copy-descriptor-npm-0.1.1-864db4ab66-10c0.zip/node_modules/copy-descriptor/",\ + "packageDependencies": [\ + ["copy-descriptor", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["core-util-is", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/core-util-is-npm-1.0.3-ca74b76c90-10c0.zip/node_modules/core-util-is/",\ + "packageDependencies": [\ + ["core-util-is", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cross-spawn", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/cross-spawn-npm-5.1.0-a3e220603e-10c0.zip/node_modules/cross-spawn/",\ + "packageDependencies": [\ + ["cross-spawn", "npm:5.1.0"],\ + ["lru-cache", "npm:4.1.5"],\ + ["shebang-command", "npm:1.2.0"],\ + ["which", "npm:1.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-10c0.zip/node_modules/cross-spawn/",\ + "packageDependencies": [\ + ["cross-spawn", "npm:7.0.3"],\ + ["path-key", "npm:3.1.1"],\ + ["shebang-command", "npm:2.0.0"],\ + ["which", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["crypto-browserify", [\ + ["npm:3.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/crypto-browserify-npm-3.3.0-947341ad70-10c0.zip/node_modules/crypto-browserify/",\ + "packageDependencies": [\ + ["crypto-browserify", "npm:3.3.0"],\ + ["browserify-aes", "npm:0.4.0"],\ + ["pbkdf2-compat", "npm:2.0.1"],\ + ["ripemd160", "npm:0.2.0"],\ + ["sha.js", "npm:2.2.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["css-declaration-sorter", [\ + ["npm:6.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/css-declaration-sorter-npm-6.4.1-de0d10e8a6-10c0.zip/node_modules/css-declaration-sorter/",\ + "packageDependencies": [\ + ["css-declaration-sorter", "npm:6.4.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:6.4.1", {\ + "packageLocation": "./.yarn/__virtual__/css-declaration-sorter-virtual-ac8681cd54/3/.yarn/berry/cache/css-declaration-sorter-npm-6.4.1-de0d10e8a6-10c0.zip/node_modules/css-declaration-sorter/",\ + "packageDependencies": [\ + ["css-declaration-sorter", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:6.4.1"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["css-loader", [\ + ["npm:6.11.0", {\ + "packageLocation": "../../.yarn/berry/cache/css-loader-npm-6.11.0-d945f9f4c0-10c0.zip/node_modules/css-loader/",\ + "packageDependencies": [\ + ["css-loader", "npm:6.11.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:6.11.0", {\ + "packageLocation": "./.yarn/__virtual__/css-loader-virtual-74a54b0b69/3/.yarn/berry/cache/css-loader-npm-6.11.0-d945f9f4c0-10c0.zip/node_modules/css-loader/",\ + "packageDependencies": [\ + ["css-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:6.11.0"],\ + ["@rspack/core", null],\ + ["@types/rspack__core", null],\ + ["@types/webpack", null],\ + ["icss-utils", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:5.1.0"],\ + ["postcss", "npm:8.4.47"],\ + ["postcss-modules-extract-imports", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:3.1.0"],\ + ["postcss-modules-local-by-default", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:4.0.5"],\ + ["postcss-modules-scope", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:3.2.0"],\ + ["postcss-modules-values", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:4.0.0"],\ + ["postcss-value-parser", "npm:4.2.0"],\ + ["semver", "npm:7.6.3"],\ + ["webpack", null]\ + ],\ + "packagePeers": [\ + "@rspack/core",\ + "@types/rspack__core",\ + "@types/webpack",\ + "webpack"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["css-select", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/css-select-npm-4.3.0-72f53028ec-10c0.zip/node_modules/css-select/",\ + "packageDependencies": [\ + ["css-select", "npm:4.3.0"],\ + ["boolbase", "npm:1.0.0"],\ + ["css-what", "npm:6.1.0"],\ + ["domhandler", "npm:4.3.1"],\ + ["domutils", "npm:2.8.0"],\ + ["nth-check", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["css-tree", [\ + ["npm:1.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/css-tree-npm-1.1.3-9c46f35513-10c0.zip/node_modules/css-tree/",\ + "packageDependencies": [\ + ["css-tree", "npm:1.1.3"],\ + ["mdn-data", "npm:2.0.14"],\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/css-tree-npm-2.3.1-6540d78e26-10c0.zip/node_modules/css-tree/",\ + "packageDependencies": [\ + ["css-tree", "npm:2.3.1"],\ + ["mdn-data", "npm:2.0.30"],\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["css-what", [\ + ["npm:6.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/css-what-npm-6.1.0-57f751efbb-10c0.zip/node_modules/css-what/",\ + "packageDependencies": [\ + ["css-what", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cssesc", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/cssesc-npm-3.0.0-15ec56f86f-10c0.zip/node_modules/cssesc/",\ + "packageDependencies": [\ + ["cssesc", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cssnano", [\ + ["npm:5.1.15", {\ + "packageLocation": "../../.yarn/berry/cache/cssnano-npm-5.1.15-7fc7f68f4a-10c0.zip/node_modules/cssnano/",\ + "packageDependencies": [\ + ["cssnano", "npm:5.1.15"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:5.1.15", {\ + "packageLocation": "./.yarn/__virtual__/cssnano-virtual-ad26738c54/3/.yarn/berry/cache/cssnano-npm-5.1.15-7fc7f68f4a-10c0.zip/node_modules/cssnano/",\ + "packageDependencies": [\ + ["cssnano", "virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:5.1.15"],\ + ["@types/postcss", null],\ + ["cssnano-preset-default", "virtual:ad26738c54b36a4e5db16327e80ba7aff03f12b060785bd5d1d04a35c9502622edeb943ab4f589ecef42cf683471608ffa7f2391bc756f49ccedc90456785192#npm:5.2.14"],\ + ["lilconfig", "npm:2.1.0"],\ + ["postcss", null],\ + ["yaml", "npm:1.10.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cssnano-preset-default", [\ + ["npm:5.2.14", {\ + "packageLocation": "../../.yarn/berry/cache/cssnano-preset-default-npm-5.2.14-4f99019e76-10c0.zip/node_modules/cssnano-preset-default/",\ + "packageDependencies": [\ + ["cssnano-preset-default", "npm:5.2.14"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:ad26738c54b36a4e5db16327e80ba7aff03f12b060785bd5d1d04a35c9502622edeb943ab4f589ecef42cf683471608ffa7f2391bc756f49ccedc90456785192#npm:5.2.14", {\ + "packageLocation": "./.yarn/__virtual__/cssnano-preset-default-virtual-63ac8dd0a2/3/.yarn/berry/cache/cssnano-preset-default-npm-5.2.14-4f99019e76-10c0.zip/node_modules/cssnano-preset-default/",\ + "packageDependencies": [\ + ["cssnano-preset-default", "virtual:ad26738c54b36a4e5db16327e80ba7aff03f12b060785bd5d1d04a35c9502622edeb943ab4f589ecef42cf683471608ffa7f2391bc756f49ccedc90456785192#npm:5.2.14"],\ + ["@types/postcss", null],\ + ["css-declaration-sorter", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:6.4.1"],\ + ["cssnano-utils", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0"],\ + ["postcss", null],\ + ["postcss-calc", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:8.2.4"],\ + ["postcss-colormin", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.3.1"],\ + ["postcss-convert-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.3"],\ + ["postcss-discard-comments", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.2"],\ + ["postcss-discard-duplicates", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-discard-empty", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["postcss-discard-overridden", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-merge-longhand", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.7"],\ + ["postcss-merge-rules", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.4"],\ + ["postcss-minify-font-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-minify-gradients", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["postcss-minify-params", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.4"],\ + ["postcss-minify-selectors", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.2.1"],\ + ["postcss-normalize-charset", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-normalize-display-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-normalize-positions", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["postcss-normalize-repeat-style", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["postcss-normalize-string", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-normalize-timing-functions", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-normalize-unicode", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["postcss-normalize-url", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-normalize-whitespace", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["postcss-ordered-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.3"],\ + ["postcss-reduce-initial", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.2"],\ + ["postcss-reduce-transforms", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-svgo", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["postcss-unique-selectors", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cssnano-utils", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/cssnano-utils-npm-3.1.0-b64fb193eb-10c0.zip/node_modules/cssnano-utils/",\ + "packageDependencies": [\ + ["cssnano-utils", "npm:3.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0", {\ + "packageLocation": "./.yarn/__virtual__/cssnano-utils-virtual-8a751842e3/3/.yarn/berry/cache/cssnano-utils-npm-3.1.0-b64fb193eb-10c0.zip/node_modules/cssnano-utils/",\ + "packageDependencies": [\ + ["cssnano-utils", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["csso", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/csso-npm-4.2.0-b277db8d71-10c0.zip/node_modules/csso/",\ + "packageDependencies": [\ + ["csso", "npm:4.2.0"],\ + ["css-tree", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["debug", [\ + ["npm:2.6.9", {\ + "packageLocation": "../../.yarn/berry/cache/debug-npm-2.6.9-7d4cb597dc-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "npm:2.6.9"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["npm:4.3.7", {\ + "packageLocation": "../../.yarn/berry/cache/debug-npm-4.3.7-385645adf9-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "npm:4.3.7"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-6cfa7ae8cd/3/.yarn/berry/cache/debug-npm-2.6.9-7d4cb597dc-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ + ["@types/supports-color", null],\ + ["ms", "npm:2.0.0"],\ + ["supports-color", null]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-cab48c25f8/3/.yarn/berry/cache/debug-npm-4.3.7-385645adf9-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["@types/supports-color", null],\ + ["ms", "npm:2.1.3"],\ + ["supports-color", null]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["decamelize", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/decamelize-npm-1.2.0-c5a2fdc622-10c0.zip/node_modules/decamelize/",\ + "packageDependencies": [\ + ["decamelize", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["decode-uri-component", [\ + ["npm:0.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/decode-uri-component-npm-0.2.2-e22e2aa917-10c0.zip/node_modules/decode-uri-component/",\ + "packageDependencies": [\ + ["decode-uri-component", "npm:0.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["deep-eql", [\ + ["npm:5.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/deep-eql-npm-5.0.2-3bce58289f-10c0.zip/node_modules/deep-eql/",\ + "packageDependencies": [\ + ["deep-eql", "npm:5.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["deepmerge", [\ + ["npm:4.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/deepmerge-npm-4.3.1-4f751a0844-10c0.zip/node_modules/deepmerge/",\ + "packageDependencies": [\ + ["deepmerge", "npm:4.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["define-data-property", [\ + ["npm:1.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/define-data-property-npm-1.1.4-4cbd8efc51-10c0.zip/node_modules/define-data-property/",\ + "packageDependencies": [\ + ["define-data-property", "npm:1.1.4"],\ + ["es-define-property", "npm:1.0.0"],\ + ["es-errors", "npm:1.3.0"],\ + ["gopd", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["define-properties", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/define-properties-npm-1.2.1-8a4d42413b-10c0.zip/node_modules/define-properties/",\ + "packageDependencies": [\ + ["define-properties", "npm:1.2.1"],\ + ["define-data-property", "npm:1.1.4"],\ + ["has-property-descriptors", "npm:1.0.2"],\ + ["object-keys", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["define-property", [\ + ["npm:0.2.5", {\ + "packageLocation": "../../.yarn/berry/cache/define-property-npm-0.2.5-44a0da3575-10c0.zip/node_modules/define-property/",\ + "packageDependencies": [\ + ["define-property", "npm:0.2.5"],\ + ["is-descriptor", "npm:0.1.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/define-property-npm-1.0.0-e2fb9f44c6-10c0.zip/node_modules/define-property/",\ + "packageDependencies": [\ + ["define-property", "npm:1.0.0"],\ + ["is-descriptor", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/define-property-npm-2.0.2-4a2067c3ba-10c0.zip/node_modules/define-property/",\ + "packageDependencies": [\ + ["define-property", "npm:2.0.2"],\ + ["is-descriptor", "npm:1.0.3"],\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["del", [\ + ["npm:6.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/del-npm-6.1.1-9285f60bfd-10c0.zip/node_modules/del/",\ + "packageDependencies": [\ + ["del", "npm:6.1.1"],\ + ["globby", "npm:11.1.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["is-glob", "npm:4.0.3"],\ + ["is-path-cwd", "npm:2.2.0"],\ + ["is-path-inside", "npm:3.0.3"],\ + ["p-map", "npm:4.0.0"],\ + ["rimraf", "npm:3.0.2"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["detect-indent", [\ + ["npm:6.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/detect-indent-npm-6.1.0-d8c441ff7a-10c0.zip/node_modules/detect-indent/",\ + "packageDependencies": [\ + ["detect-indent", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["dir-glob", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/dir-glob-npm-3.0.1-1aea628b1b-10c0.zip/node_modules/dir-glob/",\ + "packageDependencies": [\ + ["dir-glob", "npm:3.0.1"],\ + ["path-type", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["dom-serializer", [\ + ["npm:1.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/dom-serializer-npm-1.4.1-ebb24349c1-10c0.zip/node_modules/dom-serializer/",\ + "packageDependencies": [\ + ["dom-serializer", "npm:1.4.1"],\ + ["domelementtype", "npm:2.3.0"],\ + ["domhandler", "npm:4.3.1"],\ + ["entities", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["domain-browser", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/domain-browser-npm-1.2.0-d99f0de5ec-10c0.zip/node_modules/domain-browser/",\ + "packageDependencies": [\ + ["domain-browser", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["domelementtype", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/domelementtype-npm-2.3.0-02de7cbfba-10c0.zip/node_modules/domelementtype/",\ + "packageDependencies": [\ + ["domelementtype", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["domhandler", [\ + ["npm:4.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/domhandler-npm-4.3.1-493539c1ca-10c0.zip/node_modules/domhandler/",\ + "packageDependencies": [\ + ["domhandler", "npm:4.3.1"],\ + ["domelementtype", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["domutils", [\ + ["npm:2.8.0", {\ + "packageLocation": "../../.yarn/berry/cache/domutils-npm-2.8.0-0325139e5c-10c0.zip/node_modules/domutils/",\ + "packageDependencies": [\ + ["domutils", "npm:2.8.0"],\ + ["dom-serializer", "npm:1.4.1"],\ + ["domelementtype", "npm:2.3.0"],\ + ["domhandler", "npm:4.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["eastasianwidth", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-10c0.zip/node_modules/eastasianwidth/",\ + "packageDependencies": [\ + ["eastasianwidth", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["electron-to-chromium", [\ + ["npm:1.5.47", {\ + "packageLocation": "../../.yarn/berry/cache/electron-to-chromium-npm-1.5.47-20a0ef1e42-10c0.zip/node_modules/electron-to-chromium/",\ + "packageDependencies": [\ + ["electron-to-chromium", "npm:1.5.47"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["emoji-regex", [\ + ["npm:8.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/emoji-regex-npm-8.0.0-213764015c-10c0.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:8.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/emoji-regex-npm-9.2.2-e6fac8d058-10c0.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:9.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["emojis-list", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/emojis-list-npm-2.1.0-e19a336e35-10c0.zip/node_modules/emojis-list/",\ + "packageDependencies": [\ + ["emojis-list", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/emojis-list-npm-3.0.0-7faa48e6fd-10c0.zip/node_modules/emojis-list/",\ + "packageDependencies": [\ + ["emojis-list", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["encoding", [\ + ["npm:0.1.13", {\ + "packageLocation": "../../.yarn/berry/cache/encoding-npm-0.1.13-82a1837d30-10c0.zip/node_modules/encoding/",\ + "packageDependencies": [\ + ["encoding", "npm:0.1.13"],\ + ["iconv-lite", "npm:0.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["enhanced-resolve", [\ + ["npm:0.9.1", {\ + "packageLocation": "../../.yarn/berry/cache/enhanced-resolve-npm-0.9.1-77770f8601-10c0.zip/node_modules/enhanced-resolve/",\ + "packageDependencies": [\ + ["enhanced-resolve", "npm:0.9.1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["memory-fs", "npm:0.2.0"],\ + ["tapable", "npm:0.1.10"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.17.1", {\ + "packageLocation": "../../.yarn/berry/cache/enhanced-resolve-npm-5.17.1-296305b69f-10c0.zip/node_modules/enhanced-resolve/",\ + "packageDependencies": [\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["tapable", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["enquirer", [\ + ["npm:2.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/enquirer-npm-2.4.1-d71b2b33c1-10c0.zip/node_modules/enquirer/",\ + "packageDependencies": [\ + ["enquirer", "npm:2.4.1"],\ + ["ansi-colors", "npm:4.1.3"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["entities", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/entities-npm-2.2.0-0fc8d5b2f7-10c0.zip/node_modules/entities/",\ + "packageDependencies": [\ + ["entities", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/entities-npm-4.5.0-7cdb83b832-10c0.zip/node_modules/entities/",\ + "packageDependencies": [\ + ["entities", "npm:4.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["env-paths", [\ + ["npm:2.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/env-paths-npm-2.2.1-7c7577428c-10c0.zip/node_modules/env-paths/",\ + "packageDependencies": [\ + ["env-paths", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["err-code", [\ + ["npm:2.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/err-code-npm-2.0.3-082e0ff9a7-10c0.zip/node_modules/err-code/",\ + "packageDependencies": [\ + ["err-code", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["errno", [\ + ["npm:0.1.8", {\ + "packageLocation": "../../.yarn/berry/cache/errno-npm-0.1.8-10ebc185bf-10c0.zip/node_modules/errno/",\ + "packageDependencies": [\ + ["errno", "npm:0.1.8"],\ + ["prr", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-define-property", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/es-define-property-npm-1.0.0-e23aa9b242-10c0.zip/node_modules/es-define-property/",\ + "packageDependencies": [\ + ["es-define-property", "npm:1.0.0"],\ + ["get-intrinsic", "npm:1.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-errors", [\ + ["npm:1.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/es-errors-npm-1.3.0-fda0c9b8a8-10c0.zip/node_modules/es-errors/",\ + "packageDependencies": [\ + ["es-errors", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-module-lexer", [\ + ["npm:1.5.4", {\ + "packageLocation": "../../.yarn/berry/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-10c0.zip/node_modules/es-module-lexer/",\ + "packageDependencies": [\ + ["es-module-lexer", "npm:1.5.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild", [\ + ["npm:0.21.5", {\ + "packageLocation": "./.yarn/unplugged/esbuild-npm-0.21.5-d85dfbc965/node_modules/esbuild/",\ + "packageDependencies": [\ + ["esbuild", "npm:0.21.5"],\ + ["@esbuild/aix-ppc64", "npm:0.21.5"],\ + ["@esbuild/android-arm", "npm:0.21.5"],\ + ["@esbuild/android-arm64", "npm:0.21.5"],\ + ["@esbuild/android-x64", "npm:0.21.5"],\ + ["@esbuild/darwin-arm64", "npm:0.21.5"],\ + ["@esbuild/darwin-x64", "npm:0.21.5"],\ + ["@esbuild/freebsd-arm64", "npm:0.21.5"],\ + ["@esbuild/freebsd-x64", "npm:0.21.5"],\ + ["@esbuild/linux-arm", "npm:0.21.5"],\ + ["@esbuild/linux-arm64", "npm:0.21.5"],\ + ["@esbuild/linux-ia32", "npm:0.21.5"],\ + ["@esbuild/linux-loong64", "npm:0.21.5"],\ + ["@esbuild/linux-mips64el", "npm:0.21.5"],\ + ["@esbuild/linux-ppc64", "npm:0.21.5"],\ + ["@esbuild/linux-riscv64", "npm:0.21.5"],\ + ["@esbuild/linux-s390x", "npm:0.21.5"],\ + ["@esbuild/linux-x64", "npm:0.21.5"],\ + ["@esbuild/netbsd-x64", "npm:0.21.5"],\ + ["@esbuild/openbsd-x64", "npm:0.21.5"],\ + ["@esbuild/sunos-x64", "npm:0.21.5"],\ + ["@esbuild/win32-arm64", "npm:0.21.5"],\ + ["@esbuild/win32-ia32", "npm:0.21.5"],\ + ["@esbuild/win32-x64", "npm:0.21.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.24.0", {\ + "packageLocation": "./.yarn/unplugged/esbuild-npm-0.24.0-1252872327/node_modules/esbuild/",\ + "packageDependencies": [\ + ["esbuild", "npm:0.24.0"],\ + ["@esbuild/aix-ppc64", "npm:0.24.0"],\ + ["@esbuild/android-arm", "npm:0.24.0"],\ + ["@esbuild/android-arm64", "npm:0.24.0"],\ + ["@esbuild/android-x64", "npm:0.24.0"],\ + ["@esbuild/darwin-arm64", "npm:0.24.0"],\ + ["@esbuild/darwin-x64", "npm:0.24.0"],\ + ["@esbuild/freebsd-arm64", "npm:0.24.0"],\ + ["@esbuild/freebsd-x64", "npm:0.24.0"],\ + ["@esbuild/linux-arm", "npm:0.24.0"],\ + ["@esbuild/linux-arm64", "npm:0.24.0"],\ + ["@esbuild/linux-ia32", "npm:0.24.0"],\ + ["@esbuild/linux-loong64", "npm:0.24.0"],\ + ["@esbuild/linux-mips64el", "npm:0.24.0"],\ + ["@esbuild/linux-ppc64", "npm:0.24.0"],\ + ["@esbuild/linux-riscv64", "npm:0.24.0"],\ + ["@esbuild/linux-s390x", "npm:0.24.0"],\ + ["@esbuild/linux-x64", "npm:0.24.0"],\ + ["@esbuild/netbsd-x64", "npm:0.24.0"],\ + ["@esbuild/openbsd-arm64", "npm:0.24.0"],\ + ["@esbuild/openbsd-x64", "npm:0.24.0"],\ + ["@esbuild/sunos-x64", "npm:0.24.0"],\ + ["@esbuild/win32-arm64", "npm:0.24.0"],\ + ["@esbuild/win32-ia32", "npm:0.24.0"],\ + ["@esbuild/win32-x64", "npm:0.24.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild-plugin-clean", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/esbuild-plugin-clean-npm-1.0.1-6e0f99ed34-10c0.zip/node_modules/esbuild-plugin-clean/",\ + "packageDependencies": [\ + ["esbuild-plugin-clean", "npm:1.0.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:1.0.1", {\ + "packageLocation": "./.yarn/__virtual__/esbuild-plugin-clean-virtual-0a8fe8638a/3/.yarn/berry/cache/esbuild-plugin-clean-npm-1.0.1-6e0f99ed34-10c0.zip/node_modules/esbuild-plugin-clean/",\ + "packageDependencies": [\ + ["esbuild-plugin-clean", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:1.0.1"],\ + ["@types/esbuild", null],\ + ["chalk", "npm:4.1.2"],\ + ["del", "npm:6.1.1"],\ + ["esbuild", "npm:0.24.0"]\ + ],\ + "packagePeers": [\ + "@types/esbuild",\ + "esbuild"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild-plugin-copy", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/esbuild-plugin-copy-npm-2.1.1-ba42aff336-10c0.zip/node_modules/esbuild-plugin-copy/",\ + "packageDependencies": [\ + ["esbuild-plugin-copy", "npm:2.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1", {\ + "packageLocation": "./.yarn/__virtual__/esbuild-plugin-copy-virtual-327b6f972e/3/.yarn/berry/cache/esbuild-plugin-copy-npm-2.1.1-ba42aff336-10c0.zip/node_modules/esbuild-plugin-copy/",\ + "packageDependencies": [\ + ["esbuild-plugin-copy", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["@types/esbuild", null],\ + ["chalk", "npm:4.1.2"],\ + ["chokidar", "npm:3.6.0"],\ + ["esbuild", "npm:0.24.0"],\ + ["fs-extra", "npm:10.1.0"],\ + ["globby", "npm:11.1.0"]\ + ],\ + "packagePeers": [\ + "@types/esbuild",\ + "esbuild"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild-plugin-inline-worker", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/esbuild-plugin-inline-worker-npm-0.1.1-03c0823843-10c0.zip/node_modules/esbuild-plugin-inline-worker/",\ + "packageDependencies": [\ + ["esbuild-plugin-inline-worker", "npm:0.1.1"],\ + ["esbuild", "npm:0.24.0"],\ + ["find-cache-dir", "npm:3.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild-plugin-polyfill-node", [\ + ["npm:0.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/esbuild-plugin-polyfill-node-npm-0.3.0-02779dd8a7-10c0.zip/node_modules/esbuild-plugin-polyfill-node/",\ + "packageDependencies": [\ + ["esbuild-plugin-polyfill-node", "npm:0.3.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.3.0", {\ + "packageLocation": "./.yarn/__virtual__/esbuild-plugin-polyfill-node-virtual-9a375dc437/3/.yarn/berry/cache/esbuild-plugin-polyfill-node-npm-0.3.0-02779dd8a7-10c0.zip/node_modules/esbuild-plugin-polyfill-node/",\ + "packageDependencies": [\ + ["esbuild-plugin-polyfill-node", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.3.0"],\ + ["@jspm/core", "npm:2.1.0"],\ + ["@types/esbuild", null],\ + ["esbuild", "npm:0.24.0"],\ + ["import-meta-resolve", "npm:3.1.1"]\ + ],\ + "packagePeers": [\ + "@types/esbuild",\ + "esbuild"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild-plugin-tsc", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/esbuild-plugin-tsc-npm-0.4.0-9c9b30d972-10c0.zip/node_modules/esbuild-plugin-tsc/",\ + "packageDependencies": [\ + ["esbuild-plugin-tsc", "npm:0.4.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.4.0", {\ + "packageLocation": "./.yarn/__virtual__/esbuild-plugin-tsc-virtual-251cad364b/3/.yarn/berry/cache/esbuild-plugin-tsc-npm-0.4.0-9c9b30d972-10c0.zip/node_modules/esbuild-plugin-tsc/",\ + "packageDependencies": [\ + ["esbuild-plugin-tsc", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:0.4.0"],\ + ["@types/typescript", null],\ + ["strip-comments", "npm:2.0.1"],\ + ["typescript", "patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40"]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esbuild-plugin-wasm", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/esbuild-plugin-wasm-npm-1.1.0-2fa409b3be-10c0.zip/node_modules/esbuild-plugin-wasm/",\ + "packageDependencies": [\ + ["esbuild-plugin-wasm", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["escalade", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/escalade-npm-3.2.0-19b50dd48f-10c0.zip/node_modules/escalade/",\ + "packageDependencies": [\ + ["escalade", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["eslint-scope", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/eslint-scope-npm-5.1.1-71fe59b18a-10c0.zip/node_modules/eslint-scope/",\ + "packageDependencies": [\ + ["eslint-scope", "npm:5.1.1"],\ + ["esrecurse", "npm:4.3.0"],\ + ["estraverse", "npm:4.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esprima", [\ + ["npm:4.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/esprima-npm-4.0.1-1084e98778-10c0.zip/node_modules/esprima/",\ + "packageDependencies": [\ + ["esprima", "npm:4.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esrecurse", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/esrecurse-npm-4.3.0-10b86a887a-10c0.zip/node_modules/esrecurse/",\ + "packageDependencies": [\ + ["esrecurse", "npm:4.3.0"],\ + ["estraverse", "npm:5.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["estraverse", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/estraverse-npm-4.3.0-920a32f3c6-10c0.zip/node_modules/estraverse/",\ + "packageDependencies": [\ + ["estraverse", "npm:4.3.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/estraverse-npm-5.3.0-03284f8f63-10c0.zip/node_modules/estraverse/",\ + "packageDependencies": [\ + ["estraverse", "npm:5.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["estree-walker", [\ + ["npm:0.6.1", {\ + "packageLocation": "../../.yarn/berry/cache/estree-walker-npm-0.6.1-fe92d0e1f6-10c0.zip/node_modules/estree-walker/",\ + "packageDependencies": [\ + ["estree-walker", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/estree-walker-npm-2.0.2-dfab42f65c-10c0.zip/node_modules/estree-walker/",\ + "packageDependencies": [\ + ["estree-walker", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/estree-walker-npm-3.0.3-0372979673-10c0.zip/node_modules/estree-walker/",\ + "packageDependencies": [\ + ["estree-walker", "npm:3.0.3"],\ + ["@types/estree", "npm:1.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["eventemitter3", [\ + ["npm:4.0.7", {\ + "packageLocation": "../../.yarn/berry/cache/eventemitter3-npm-4.0.7-7afcdd74ae-10c0.zip/node_modules/eventemitter3/",\ + "packageDependencies": [\ + ["eventemitter3", "npm:4.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["events", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/events-npm-1.1.1-ca9e5d580e-10c0.zip/node_modules/events/",\ + "packageDependencies": [\ + ["events", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/events-npm-3.3.0-c280bc7e48-10c0.zip/node_modules/events/",\ + "packageDependencies": [\ + ["events", "npm:3.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["expand-brackets", [\ + ["npm:0.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/expand-brackets-npm-0.1.5-8e035b7cb7-10c0.zip/node_modules/expand-brackets/",\ + "packageDependencies": [\ + ["expand-brackets", "npm:0.1.5"],\ + ["is-posix-bracket", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/expand-brackets-npm-2.1.4-392c703c48-10c0.zip/node_modules/expand-brackets/",\ + "packageDependencies": [\ + ["expand-brackets", "npm:2.1.4"],\ + ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ + ["define-property", "npm:0.2.5"],\ + ["extend-shallow", "npm:2.0.1"],\ + ["posix-character-classes", "npm:0.1.1"],\ + ["regex-not", "npm:1.0.2"],\ + ["snapdragon", "npm:0.8.2"],\ + ["to-regex", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["expand-range", [\ + ["npm:1.8.2", {\ + "packageLocation": "../../.yarn/berry/cache/expand-range-npm-1.8.2-9c37166fb5-10c0.zip/node_modules/expand-range/",\ + "packageDependencies": [\ + ["expand-range", "npm:1.8.2"],\ + ["fill-range", "npm:2.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["exponential-backoff", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/exponential-backoff-npm-3.1.1-04df458b30-10c0.zip/node_modules/exponential-backoff/",\ + "packageDependencies": [\ + ["exponential-backoff", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["extend-shallow", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/extend-shallow-npm-2.0.1-e6ef52b29c-10c0.zip/node_modules/extend-shallow/",\ + "packageDependencies": [\ + ["extend-shallow", "npm:2.0.1"],\ + ["is-extendable", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/extend-shallow-npm-3.0.2-77bbe1bbf5-10c0.zip/node_modules/extend-shallow/",\ + "packageDependencies": [\ + ["extend-shallow", "npm:3.0.2"],\ + ["assign-symbols", "npm:1.0.0"],\ + ["is-extendable", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["extendable-error", [\ + ["npm:0.1.7", {\ + "packageLocation": "../../.yarn/berry/cache/extendable-error-npm-0.1.7-9075308742-10c0.zip/node_modules/extendable-error/",\ + "packageDependencies": [\ + ["extendable-error", "npm:0.1.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["external-editor", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/external-editor-npm-3.1.0-878e7807af-10c0.zip/node_modules/external-editor/",\ + "packageDependencies": [\ + ["external-editor", "npm:3.1.0"],\ + ["chardet", "npm:0.7.0"],\ + ["iconv-lite", "npm:0.4.24"],\ + ["tmp", "npm:0.0.33"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["extglob", [\ + ["npm:0.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/extglob-npm-0.3.2-77ca6e5250-10c0.zip/node_modules/extglob/",\ + "packageDependencies": [\ + ["extglob", "npm:0.3.2"],\ + ["is-extglob", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/extglob-npm-2.0.4-0f39bc9899-10c0.zip/node_modules/extglob/",\ + "packageDependencies": [\ + ["extglob", "npm:2.0.4"],\ + ["array-unique", "npm:0.3.2"],\ + ["define-property", "npm:1.0.0"],\ + ["expand-brackets", "npm:2.1.4"],\ + ["extend-shallow", "npm:2.0.1"],\ + ["fragment-cache", "npm:0.2.1"],\ + ["regex-not", "npm:1.0.2"],\ + ["snapdragon", "npm:0.8.2"],\ + ["to-regex", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-deep-equal", [\ + ["npm:3.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-10c0.zip/node_modules/fast-deep-equal/",\ + "packageDependencies": [\ + ["fast-deep-equal", "npm:3.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-glob", [\ + ["npm:3.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/fast-glob-npm-3.3.2-0a8cb4f2ca-10c0.zip/node_modules/fast-glob/",\ + "packageDependencies": [\ + ["fast-glob", "npm:3.3.2"],\ + ["@nodelib/fs.stat", "npm:2.0.5"],\ + ["@nodelib/fs.walk", "npm:1.2.8"],\ + ["glob-parent", "npm:5.1.2"],\ + ["merge2", "npm:1.4.1"],\ + ["micromatch", "npm:4.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-json-stable-stringify", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-10c0.zip/node_modules/fast-json-stable-stringify/",\ + "packageDependencies": [\ + ["fast-json-stable-stringify", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-uri", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/fast-uri-npm-3.0.3-0874072625-10c0.zip/node_modules/fast-uri/",\ + "packageDependencies": [\ + ["fast-uri", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fastq", [\ + ["npm:1.17.1", {\ + "packageLocation": "../../.yarn/berry/cache/fastq-npm-1.17.1-56d4554993-10c0.zip/node_modules/fastq/",\ + "packageDependencies": [\ + ["fastq", "npm:1.17.1"],\ + ["reusify", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fdir", [\ + ["npm:6.4.2", {\ + "packageLocation": "../../.yarn/berry/cache/fdir-npm-6.4.2-83cd21b34c-10c0.zip/node_modules/fdir/",\ + "packageDependencies": [\ + ["fdir", "npm:6.4.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:6.4.2", {\ + "packageLocation": "./.yarn/__virtual__/fdir-virtual-7fc443682d/3/.yarn/berry/cache/fdir-npm-6.4.2-83cd21b34c-10c0.zip/node_modules/fdir/",\ + "packageDependencies": [\ + ["fdir", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:6.4.2"],\ + ["@types/picomatch", null],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "packagePeers": [\ + "@types/picomatch",\ + "picomatch"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["file-uri-to-path", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/file-uri-to-path-npm-1.0.0-1043ac6206-10c0.zip/node_modules/file-uri-to-path/",\ + "packageDependencies": [\ + ["file-uri-to-path", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["filename-regex", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/filename-regex-npm-2.0.1-c999dfa72c-10c0.zip/node_modules/filename-regex/",\ + "packageDependencies": [\ + ["filename-regex", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fill-range", [\ + ["npm:2.2.4", {\ + "packageLocation": "../../.yarn/berry/cache/fill-range-npm-2.2.4-274c7401db-10c0.zip/node_modules/fill-range/",\ + "packageDependencies": [\ + ["fill-range", "npm:2.2.4"],\ + ["is-number", "npm:2.1.0"],\ + ["isobject", "npm:2.1.0"],\ + ["randomatic", "npm:3.1.1"],\ + ["repeat-element", "npm:1.1.4"],\ + ["repeat-string", "npm:1.6.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/fill-range-npm-4.0.0-95a6e45784-10c0.zip/node_modules/fill-range/",\ + "packageDependencies": [\ + ["fill-range", "npm:4.0.0"],\ + ["extend-shallow", "npm:2.0.1"],\ + ["is-number", "npm:3.0.0"],\ + ["repeat-string", "npm:1.6.1"],\ + ["to-regex-range", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/fill-range-npm-7.1.1-bf491486db-10c0.zip/node_modules/fill-range/",\ + "packageDependencies": [\ + ["fill-range", "npm:7.1.1"],\ + ["to-regex-range", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["find-cache-dir", [\ + ["npm:3.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/find-cache-dir-npm-3.3.2-836e68dd83-10c0.zip/node_modules/find-cache-dir/",\ + "packageDependencies": [\ + ["find-cache-dir", "npm:3.3.2"],\ + ["commondir", "npm:1.0.1"],\ + ["make-dir", "npm:3.1.0"],\ + ["pkg-dir", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["find-up", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/find-up-npm-4.1.0-c3ccf8d855-10c0.zip/node_modules/find-up/",\ + "packageDependencies": [\ + ["find-up", "npm:4.1.0"],\ + ["locate-path", "npm:5.0.0"],\ + ["path-exists", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["for-in", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/for-in-npm-1.0.2-37e3d7aae5-10c0.zip/node_modules/for-in/",\ + "packageDependencies": [\ + ["for-in", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["for-own", [\ + ["npm:0.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/for-own-npm-0.1.5-cb55c5cc60-10c0.zip/node_modules/for-own/",\ + "packageDependencies": [\ + ["for-own", "npm:0.1.5"],\ + ["for-in", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["foreground-child", [\ + ["npm:3.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/foreground-child-npm-3.3.0-b8be745271-10c0.zip/node_modules/foreground-child/",\ + "packageDependencies": [\ + ["foreground-child", "npm:3.3.0"],\ + ["cross-spawn", "npm:7.0.3"],\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fragment-cache", [\ + ["npm:0.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/fragment-cache-npm-0.2.1-407fe74319-10c0.zip/node_modules/fragment-cache/",\ + "packageDependencies": [\ + ["fragment-cache", "npm:0.2.1"],\ + ["map-cache", "npm:0.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fs-extra", [\ + ["npm:10.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/fs-extra-npm-10.1.0-86573680ed-10c0.zip/node_modules/fs-extra/",\ + "packageDependencies": [\ + ["fs-extra", "npm:10.1.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jsonfile", "npm:6.1.0"],\ + ["universalify", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/fs-extra-npm-7.0.1-b33a5e53e9-10c0.zip/node_modules/fs-extra/",\ + "packageDependencies": [\ + ["fs-extra", "npm:7.0.1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jsonfile", "npm:4.0.0"],\ + ["universalify", "npm:0.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/fs-extra-npm-8.1.0-197473387f-10c0.zip/node_modules/fs-extra/",\ + "packageDependencies": [\ + ["fs-extra", "npm:8.1.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jsonfile", "npm:4.0.0"],\ + ["universalify", "npm:0.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fs-minipass", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-10c0.zip/node_modules/fs-minipass/",\ + "packageDependencies": [\ + ["fs-minipass", "npm:2.1.0"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/fs-minipass-npm-3.0.3-d148d6ac19-10c0.zip/node_modules/fs-minipass/",\ + "packageDependencies": [\ + ["fs-minipass", "npm:3.0.3"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fs.realpath", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/fs.realpath-npm-1.0.0-c8f05d8126-10c0.zip/node_modules/fs.realpath/",\ + "packageDependencies": [\ + ["fs.realpath", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fsevents", [\ + ["patch:fsevents@npm%3A1.2.13#optional!builtin::version=1.2.13&hash=d11327", {\ + "packageLocation": "./.yarn/unplugged/fsevents-patch-afc6995412/node_modules/fsevents/",\ + "packageDependencies": [\ + ["fsevents", "patch:fsevents@npm%3A1.2.13#optional!builtin::version=1.2.13&hash=d11327"],\ + ["bindings", "npm:1.5.0"],\ + ["nan", "npm:2.22.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1", {\ + "packageLocation": "./.yarn/unplugged/fsevents-patch-6b67494872/node_modules/fsevents/",\ + "packageDependencies": [\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["node-gyp", "npm:10.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["function-bind", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/function-bind-npm-1.1.2-7a55be9b03-10c0.zip/node_modules/function-bind/",\ + "packageDependencies": [\ + ["function-bind", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["generic-names", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/generic-names-npm-4.0.0-c188ad8a22-10c0.zip/node_modules/generic-names/",\ + "packageDependencies": [\ + ["generic-names", "npm:4.0.0"],\ + ["loader-utils", "npm:3.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-intrinsic", [\ + ["npm:1.2.4", {\ + "packageLocation": "../../.yarn/berry/cache/get-intrinsic-npm-1.2.4-1dad3427b2-10c0.zip/node_modules/get-intrinsic/",\ + "packageDependencies": [\ + ["get-intrinsic", "npm:1.2.4"],\ + ["es-errors", "npm:1.3.0"],\ + ["function-bind", "npm:1.1.2"],\ + ["has-proto", "npm:1.0.3"],\ + ["has-symbols", "npm:1.0.3"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-port", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/get-port-npm-3.2.0-4093f8843e-10c0.zip/node_modules/get-port/",\ + "packageDependencies": [\ + ["get-port", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/get-port-npm-7.1.0-4ef4f09d7c-10c0.zip/node_modules/get-port/",\ + "packageDependencies": [\ + ["get-port", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-value", [\ + ["npm:2.0.6", {\ + "packageLocation": "../../.yarn/berry/cache/get-value-npm-2.0.6-03cd422e0a-10c0.zip/node_modules/get-value/",\ + "packageDependencies": [\ + ["get-value", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob", [\ + ["npm:10.4.5", {\ + "packageLocation": "../../.yarn/berry/cache/glob-npm-10.4.5-8c63175f05-10c0.zip/node_modules/glob/",\ + "packageDependencies": [\ + ["glob", "npm:10.4.5"],\ + ["foreground-child", "npm:3.3.0"],\ + ["jackspeak", "npm:3.4.3"],\ + ["minimatch", "npm:9.0.5"],\ + ["minipass", "npm:7.1.2"],\ + ["package-json-from-dist", "npm:1.0.1"],\ + ["path-scurry", "npm:1.11.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:11.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/glob-npm-11.0.0-3be4126bf5-10c0.zip/node_modules/glob/",\ + "packageDependencies": [\ + ["glob", "npm:11.0.0"],\ + ["foreground-child", "npm:3.3.0"],\ + ["jackspeak", "npm:4.0.2"],\ + ["minimatch", "npm:10.0.1"],\ + ["minipass", "npm:7.1.2"],\ + ["package-json-from-dist", "npm:1.0.1"],\ + ["path-scurry", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.2.3", {\ + "packageLocation": "../../.yarn/berry/cache/glob-npm-7.2.3-2d866d17a5-10c0.zip/node_modules/glob/",\ + "packageDependencies": [\ + ["glob", "npm:7.2.3"],\ + ["fs.realpath", "npm:1.0.0"],\ + ["inflight", "npm:1.0.6"],\ + ["inherits", "npm:2.0.4"],\ + ["minimatch", "npm:3.1.2"],\ + ["once", "npm:1.4.0"],\ + ["path-is-absolute", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob-base", [\ + ["npm:0.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/glob-base-npm-0.3.0-974af68137-10c0.zip/node_modules/glob-base/",\ + "packageDependencies": [\ + ["glob-base", "npm:0.3.0"],\ + ["glob-parent", "npm:2.0.0"],\ + ["is-glob", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob-parent", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/glob-parent-npm-2.0.0-43401abb76-10c0.zip/node_modules/glob-parent/",\ + "packageDependencies": [\ + ["glob-parent", "npm:2.0.0"],\ + ["is-glob", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/glob-parent-npm-5.1.2-021ab32634-10c0.zip/node_modules/glob-parent/",\ + "packageDependencies": [\ + ["glob-parent", "npm:5.1.2"],\ + ["is-glob", "npm:4.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob-to-regexp", [\ + ["npm:0.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-10c0.zip/node_modules/glob-to-regexp/",\ + "packageDependencies": [\ + ["glob-to-regexp", "npm:0.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["globby", [\ + ["npm:10.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/globby-npm-10.0.1-35fa2ba87a-10c0.zip/node_modules/globby/",\ + "packageDependencies": [\ + ["globby", "npm:10.0.1"],\ + ["@types/glob", "npm:7.2.0"],\ + ["array-union", "npm:2.1.0"],\ + ["dir-glob", "npm:3.0.1"],\ + ["fast-glob", "npm:3.3.2"],\ + ["glob", "npm:7.2.3"],\ + ["ignore", "npm:5.3.2"],\ + ["merge2", "npm:1.4.1"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:11.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/globby-npm-11.1.0-bdcdf20c71-10c0.zip/node_modules/globby/",\ + "packageDependencies": [\ + ["globby", "npm:11.1.0"],\ + ["array-union", "npm:2.1.0"],\ + ["dir-glob", "npm:3.0.1"],\ + ["fast-glob", "npm:3.3.2"],\ + ["ignore", "npm:5.3.2"],\ + ["merge2", "npm:1.4.1"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["gopd", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/gopd-npm-1.0.1-10c1d0b534-10c0.zip/node_modules/gopd/",\ + "packageDependencies": [\ + ["gopd", "npm:1.0.1"],\ + ["get-intrinsic", "npm:1.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["graceful-fs", [\ + ["npm:4.2.11", {\ + "packageLocation": "../../.yarn/berry/cache/graceful-fs-npm-4.2.11-24bb648a68-10c0.zip/node_modules/graceful-fs/",\ + "packageDependencies": [\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["happy-dom", [\ + ["npm:15.7.4", {\ + "packageLocation": "../../.yarn/berry/cache/happy-dom-npm-15.7.4-babe1b542a-10c0.zip/node_modules/happy-dom/",\ + "packageDependencies": [\ + ["happy-dom", "npm:15.7.4"],\ + ["entities", "npm:4.5.0"],\ + ["webidl-conversions", "npm:7.0.0"],\ + ["whatwg-mimetype", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-flag", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/has-flag-npm-1.0.0-9e0c397172-10c0.zip/node_modules/has-flag/",\ + "packageDependencies": [\ + ["has-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/has-flag-npm-4.0.0-32af9f0536-10c0.zip/node_modules/has-flag/",\ + "packageDependencies": [\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-property-descriptors", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/has-property-descriptors-npm-1.0.2-d7077d09f1-10c0.zip/node_modules/has-property-descriptors/",\ + "packageDependencies": [\ + ["has-property-descriptors", "npm:1.0.2"],\ + ["es-define-property", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-proto", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/has-proto-npm-1.0.3-b598da2961-10c0.zip/node_modules/has-proto/",\ + "packageDependencies": [\ + ["has-proto", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-symbols", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/has-symbols-npm-1.0.3-1986bff2c4-10c0.zip/node_modules/has-symbols/",\ + "packageDependencies": [\ + ["has-symbols", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-value", [\ + ["npm:0.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/has-value-npm-0.3.1-4a15b6c29f-10c0.zip/node_modules/has-value/",\ + "packageDependencies": [\ + ["has-value", "npm:0.3.1"],\ + ["get-value", "npm:2.0.6"],\ + ["has-values", "npm:0.1.4"],\ + ["isobject", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/has-value-npm-1.0.0-19d82fd04b-10c0.zip/node_modules/has-value/",\ + "packageDependencies": [\ + ["has-value", "npm:1.0.0"],\ + ["get-value", "npm:2.0.6"],\ + ["has-values", "npm:1.0.0"],\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-values", [\ + ["npm:0.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/has-values-npm-0.1.4-6b4397786d-10c0.zip/node_modules/has-values/",\ + "packageDependencies": [\ + ["has-values", "npm:0.1.4"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/has-values-npm-1.0.0-890c077bbd-10c0.zip/node_modules/has-values/",\ + "packageDependencies": [\ + ["has-values", "npm:1.0.0"],\ + ["is-number", "npm:3.0.0"],\ + ["kind-of", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["hasown", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/hasown-npm-2.0.2-80fe6c9901-10c0.zip/node_modules/hasown/",\ + "packageDependencies": [\ + ["hasown", "npm:2.0.2"],\ + ["function-bind", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["http-cache-semantics", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/http-cache-semantics-npm-4.1.1-1120131375-10c0.zip/node_modules/http-cache-semantics/",\ + "packageDependencies": [\ + ["http-cache-semantics", "npm:4.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["http-proxy-agent", [\ + ["npm:7.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-10c0.zip/node_modules/http-proxy-agent/",\ + "packageDependencies": [\ + ["http-proxy-agent", "npm:7.0.2"],\ + ["agent-base", "npm:7.1.1"],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["https-browserify", [\ + ["npm:0.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/https-browserify-npm-0.0.1-40565f7e2a-10c0.zip/node_modules/https-browserify/",\ + "packageDependencies": [\ + ["https-browserify", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["https-proxy-agent", [\ + ["npm:7.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/https-proxy-agent-npm-7.0.5-94c14d4619-10c0.zip/node_modules/https-proxy-agent/",\ + "packageDependencies": [\ + ["https-proxy-agent", "npm:7.0.5"],\ + ["agent-base", "npm:7.1.1"],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["human-id", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/human-id-npm-1.0.2-27e57df6a3-10c0.zip/node_modules/human-id/",\ + "packageDependencies": [\ + ["human-id", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["iconv-lite", [\ + ["npm:0.4.24", {\ + "packageLocation": "../../.yarn/berry/cache/iconv-lite-npm-0.4.24-c5c4ac6695-10c0.zip/node_modules/iconv-lite/",\ + "packageDependencies": [\ + ["iconv-lite", "npm:0.4.24"],\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.6.3", {\ + "packageLocation": "../../.yarn/berry/cache/iconv-lite-npm-0.6.3-24b8aae27e-10c0.zip/node_modules/iconv-lite/",\ + "packageDependencies": [\ + ["iconv-lite", "npm:0.6.3"],\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["icss-replace-symbols", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/icss-replace-symbols-npm-1.1.0-bc11c612de-10c0.zip/node_modules/icss-replace-symbols/",\ + "packageDependencies": [\ + ["icss-replace-symbols", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["icss-utils", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/icss-utils-npm-5.1.0-8d8c062d07-10c0.zip/node_modules/icss-utils/",\ + "packageDependencies": [\ + ["icss-utils", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5b59701dbe2e8765830ed0405be068da1b8ed2f502384b0ec6d91277b638cbc5df32eb3c3674e5e9979691946388b07e3eca8b6b1aa3ba734ceb8fd87a1d51f9#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/icss-utils-virtual-5fe1317df9/3/.yarn/berry/cache/icss-utils-npm-5.1.0-8d8c062d07-10c0.zip/node_modules/icss-utils/",\ + "packageDependencies": [\ + ["icss-utils", "virtual:5b59701dbe2e8765830ed0405be068da1b8ed2f502384b0ec6d91277b638cbc5df32eb3c3674e5e9979691946388b07e3eca8b6b1aa3ba734ceb8fd87a1d51f9#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/icss-utils-virtual-54a9307029/3/.yarn/berry/cache/icss-utils-npm-5.1.0-8d8c062d07-10c0.zip/node_modules/icss-utils/",\ + "packageDependencies": [\ + ["icss-utils", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", "npm:8.4.47"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ieee754", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/ieee754-npm-1.2.1-fb63b3caeb-10c0.zip/node_modules/ieee754/",\ + "packageDependencies": [\ + ["ieee754", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ignore", [\ + ["npm:5.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/ignore-npm-5.3.2-346d3ba017-10c0.zip/node_modules/ignore/",\ + "packageDependencies": [\ + ["ignore", "npm:5.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["import-cwd", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/import-cwd-npm-3.0.0-2f801f964d-10c0.zip/node_modules/import-cwd/",\ + "packageDependencies": [\ + ["import-cwd", "npm:3.0.0"],\ + ["import-from", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["import-from", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/import-from-npm-3.0.0-8656bfd330-10c0.zip/node_modules/import-from/",\ + "packageDependencies": [\ + ["import-from", "npm:3.0.0"],\ + ["resolve-from", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["import-meta-resolve", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/import-meta-resolve-npm-3.1.1-b797edf17d-10c0.zip/node_modules/import-meta-resolve/",\ + "packageDependencies": [\ + ["import-meta-resolve", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["imurmurhash", [\ + ["npm:0.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/imurmurhash-npm-0.1.4-610c5068a0-10c0.zip/node_modules/imurmurhash/",\ + "packageDependencies": [\ + ["imurmurhash", "npm:0.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["indent-string", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/indent-string-npm-4.0.0-7b717435b2-10c0.zip/node_modules/indent-string/",\ + "packageDependencies": [\ + ["indent-string", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["indexof", [\ + ["npm:0.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/indexof-npm-0.0.1-b35b810950-10c0.zip/node_modules/indexof/",\ + "packageDependencies": [\ + ["indexof", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inflight", [\ + ["npm:1.0.6", {\ + "packageLocation": "../../.yarn/berry/cache/inflight-npm-1.0.6-ccedb4b908-10c0.zip/node_modules/inflight/",\ + "packageDependencies": [\ + ["inflight", "npm:1.0.6"],\ + ["once", "npm:1.4.0"],\ + ["wrappy", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inherits", [\ + ["npm:2.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/inherits-npm-2.0.3-401e64b080-10c0.zip/node_modules/inherits/",\ + "packageDependencies": [\ + ["inherits", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/inherits-npm-2.0.4-c66b3957a0-10c0.zip/node_modules/inherits/",\ + "packageDependencies": [\ + ["inherits", "npm:2.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["interpret", [\ + ["npm:0.6.6", {\ + "packageLocation": "../../.yarn/berry/cache/interpret-npm-0.6.6-2daedf7a76-10c0.zip/node_modules/interpret/",\ + "packageDependencies": [\ + ["interpret", "npm:0.6.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ip-address", [\ + ["npm:9.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/ip-address-npm-9.0.5-9fa024d42a-10c0.zip/node_modules/ip-address/",\ + "packageDependencies": [\ + ["ip-address", "npm:9.0.5"],\ + ["jsbn", "npm:1.1.0"],\ + ["sprintf-js", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-accessor-descriptor", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-accessor-descriptor-npm-1.0.1-0a6049222f-10c0.zip/node_modules/is-accessor-descriptor/",\ + "packageDependencies": [\ + ["is-accessor-descriptor", "npm:1.0.1"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-binary-path", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-binary-path-npm-1.0.1-9af74a6099-10c0.zip/node_modules/is-binary-path/",\ + "packageDependencies": [\ + ["is-binary-path", "npm:1.0.1"],\ + ["binary-extensions", "npm:1.13.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-binary-path-npm-2.1.0-e61d46f557-10c0.zip/node_modules/is-binary-path/",\ + "packageDependencies": [\ + ["is-binary-path", "npm:2.1.0"],\ + ["binary-extensions", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-buffer", [\ + ["npm:1.1.6", {\ + "packageLocation": "../../.yarn/berry/cache/is-buffer-npm-1.1.6-08199d9ccc-10c0.zip/node_modules/is-buffer/",\ + "packageDependencies": [\ + ["is-buffer", "npm:1.1.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-core-module", [\ + ["npm:2.15.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-core-module-npm-2.15.1-34c73a6cbd-10c0.zip/node_modules/is-core-module/",\ + "packageDependencies": [\ + ["is-core-module", "npm:2.15.1"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-data-descriptor", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-data-descriptor-npm-1.0.1-856092ded2-10c0.zip/node_modules/is-data-descriptor/",\ + "packageDependencies": [\ + ["is-data-descriptor", "npm:1.0.1"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-descriptor", [\ + ["npm:0.1.7", {\ + "packageLocation": "../../.yarn/berry/cache/is-descriptor-npm-0.1.7-6b23887719-10c0.zip/node_modules/is-descriptor/",\ + "packageDependencies": [\ + ["is-descriptor", "npm:0.1.7"],\ + ["is-accessor-descriptor", "npm:1.0.1"],\ + ["is-data-descriptor", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/is-descriptor-npm-1.0.3-038153867c-10c0.zip/node_modules/is-descriptor/",\ + "packageDependencies": [\ + ["is-descriptor", "npm:1.0.3"],\ + ["is-accessor-descriptor", "npm:1.0.1"],\ + ["is-data-descriptor", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-dotfile", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/is-dotfile-npm-1.0.3-009416f290-10c0.zip/node_modules/is-dotfile/",\ + "packageDependencies": [\ + ["is-dotfile", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-equal-shallow", [\ + ["npm:0.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/is-equal-shallow-npm-0.1.3-b7ae87b9cd-10c0.zip/node_modules/is-equal-shallow/",\ + "packageDependencies": [\ + ["is-equal-shallow", "npm:0.1.3"],\ + ["is-primitive", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-extendable", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-extendable-npm-0.1.1-322b4649ec-10c0.zip/node_modules/is-extendable/",\ + "packageDependencies": [\ + ["is-extendable", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-extendable-npm-1.0.1-7095ad8b16-10c0.zip/node_modules/is-extendable/",\ + "packageDependencies": [\ + ["is-extendable", "npm:1.0.1"],\ + ["is-plain-object", "npm:2.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-extglob", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-extglob-npm-1.0.0-6d00ab629f-10c0.zip/node_modules/is-extglob/",\ + "packageDependencies": [\ + ["is-extglob", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-extglob-npm-2.1.1-0870ea68b5-10c0.zip/node_modules/is-extglob/",\ + "packageDependencies": [\ + ["is-extglob", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-fullwidth-code-point", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-10c0.zip/node_modules/is-fullwidth-code-point/",\ + "packageDependencies": [\ + ["is-fullwidth-code-point", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-glob", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-glob-npm-2.0.1-f316041d6e-10c0.zip/node_modules/is-glob/",\ + "packageDependencies": [\ + ["is-glob", "npm:2.0.1"],\ + ["is-extglob", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/is-glob-npm-4.0.3-cb87bf1bdb-10c0.zip/node_modules/is-glob/",\ + "packageDependencies": [\ + ["is-glob", "npm:4.0.3"],\ + ["is-extglob", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-lambda", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-lambda-npm-1.0.1-7ab55bc8a8-10c0.zip/node_modules/is-lambda/",\ + "packageDependencies": [\ + ["is-lambda", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-module", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-module-npm-1.0.0-79ba918283-10c0.zip/node_modules/is-module/",\ + "packageDependencies": [\ + ["is-module", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-number", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-number-npm-2.1.0-d1e978f60f-10c0.zip/node_modules/is-number/",\ + "packageDependencies": [\ + ["is-number", "npm:2.1.0"],\ + ["kind-of", "npm:3.2.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-number-npm-3.0.0-9088035ade-10c0.zip/node_modules/is-number/",\ + "packageDependencies": [\ + ["is-number", "npm:3.0.0"],\ + ["kind-of", "npm:3.2.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-number-npm-4.0.0-27432edbd5-10c0.zip/node_modules/is-number/",\ + "packageDependencies": [\ + ["is-number", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-number-npm-7.0.0-060086935c-10c0.zip/node_modules/is-number/",\ + "packageDependencies": [\ + ["is-number", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-path-cwd", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-path-cwd-npm-2.2.0-e35e4aab5f-10c0.zip/node_modules/is-path-cwd/",\ + "packageDependencies": [\ + ["is-path-cwd", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-path-inside", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-10c0.zip/node_modules/is-path-inside/",\ + "packageDependencies": [\ + ["is-path-inside", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-plain-object", [\ + ["npm:2.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/is-plain-object-npm-2.0.4-da3265d804-10c0.zip/node_modules/is-plain-object/",\ + "packageDependencies": [\ + ["is-plain-object", "npm:2.0.4"],\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-plain-object-npm-3.0.1-15b47fb6eb-10c0.zip/node_modules/is-plain-object/",\ + "packageDependencies": [\ + ["is-plain-object", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-posix-bracket", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-posix-bracket-npm-0.1.1-b1ce5d8aba-10c0.zip/node_modules/is-posix-bracket/",\ + "packageDependencies": [\ + ["is-posix-bracket", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-primitive", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-primitive-npm-2.0.0-f3606beda7-10c0.zip/node_modules/is-primitive/",\ + "packageDependencies": [\ + ["is-primitive", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-reference", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/is-reference-npm-1.2.1-87ca1743c8-10c0.zip/node_modules/is-reference/",\ + "packageDependencies": [\ + ["is-reference", "npm:1.2.1"],\ + ["@types/estree", "npm:1.0.6"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/is-reference-npm-3.0.2-a164dd9cbd-10c0.zip/node_modules/is-reference/",\ + "packageDependencies": [\ + ["is-reference", "npm:3.0.2"],\ + ["@types/estree", "npm:1.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-subdir", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/is-subdir-npm-1.2.0-56f64ee625-10c0.zip/node_modules/is-subdir/",\ + "packageDependencies": [\ + ["is-subdir", "npm:1.2.0"],\ + ["better-path-resolve", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-windows", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/is-windows-npm-1.0.2-898cd6f3d7-10c0.zip/node_modules/is-windows/",\ + "packageDependencies": [\ + ["is-windows", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["isarray", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/isarray-npm-1.0.0-db4f547720-10c0.zip/node_modules/isarray/",\ + "packageDependencies": [\ + ["isarray", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["isexe", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-10c0.zip/node_modules/isexe/",\ + "packageDependencies": [\ + ["isexe", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/isexe-npm-3.1.1-9c0061eead-10c0.zip/node_modules/isexe/",\ + "packageDependencies": [\ + ["isexe", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["isobject", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/isobject-npm-2.1.0-2798cf0d94-10c0.zip/node_modules/isobject/",\ + "packageDependencies": [\ + ["isobject", "npm:2.1.0"],\ + ["isarray", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/isobject-npm-3.0.1-8145901fd2-10c0.zip/node_modules/isobject/",\ + "packageDependencies": [\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jackspeak", [\ + ["npm:3.4.3", {\ + "packageLocation": "../../.yarn/berry/cache/jackspeak-npm-3.4.3-546bfad080-10c0.zip/node_modules/jackspeak/",\ + "packageDependencies": [\ + ["jackspeak", "npm:3.4.3"],\ + ["@isaacs/cliui", "npm:8.0.2"],\ + ["@pkgjs/parseargs", "npm:0.11.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/jackspeak-npm-4.0.2-95b4b8a1aa-10c0.zip/node_modules/jackspeak/",\ + "packageDependencies": [\ + ["jackspeak", "npm:4.0.2"],\ + ["@isaacs/cliui", "npm:8.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-worker", [\ + ["npm:26.6.2", {\ + "packageLocation": "../../.yarn/berry/cache/jest-worker-npm-26.6.2-46cbcd449f-10c0.zip/node_modules/jest-worker/",\ + "packageDependencies": [\ + ["jest-worker", "npm:26.6.2"],\ + ["@types/node", "npm:22.8.1"],\ + ["merge-stream", "npm:2.0.0"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:27.5.1", {\ + "packageLocation": "../../.yarn/berry/cache/jest-worker-npm-27.5.1-1c110b5894-10c0.zip/node_modules/jest-worker/",\ + "packageDependencies": [\ + ["jest-worker", "npm:27.5.1"],\ + ["@types/node", "npm:22.8.1"],\ + ["merge-stream", "npm:2.0.0"],\ + ["supports-color", "npm:8.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["js-tokens", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/js-tokens-npm-4.0.0-0ac852e9e2-10c0.zip/node_modules/js-tokens/",\ + "packageDependencies": [\ + ["js-tokens", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["js-yaml", [\ + ["npm:3.14.1", {\ + "packageLocation": "../../.yarn/berry/cache/js-yaml-npm-3.14.1-b968c6095e-10c0.zip/node_modules/js-yaml/",\ + "packageDependencies": [\ + ["js-yaml", "npm:3.14.1"],\ + ["argparse", "npm:1.0.10"],\ + ["esprima", "npm:4.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jsbn", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/jsbn-npm-1.1.0-1da0181838-10c0.zip/node_modules/jsbn/",\ + "packageDependencies": [\ + ["jsbn", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["json-parse-even-better-errors", [\ + ["npm:2.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-10c0.zip/node_modules/json-parse-even-better-errors/",\ + "packageDependencies": [\ + ["json-parse-even-better-errors", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["json-schema-traverse", [\ + ["npm:0.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/json-schema-traverse-npm-0.4.1-4759091693-10c0.zip/node_modules/json-schema-traverse/",\ + "packageDependencies": [\ + ["json-schema-traverse", "npm:0.4.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-10c0.zip/node_modules/json-schema-traverse/",\ + "packageDependencies": [\ + ["json-schema-traverse", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["json5", [\ + ["npm:0.5.1", {\ + "packageLocation": "../../.yarn/berry/cache/json5-npm-0.5.1-dad9a6cdb1-10c0.zip/node_modules/json5/",\ + "packageDependencies": [\ + ["json5", "npm:0.5.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.2.3", {\ + "packageLocation": "../../.yarn/berry/cache/json5-npm-2.2.3-9962c55073-10c0.zip/node_modules/json5/",\ + "packageDependencies": [\ + ["json5", "npm:2.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jsonfile", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/jsonfile-npm-4.0.0-10ce3aea15-10c0.zip/node_modules/jsonfile/",\ + "packageDependencies": [\ + ["jsonfile", "npm:4.0.0"],\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/jsonfile-npm-6.1.0-20a4796cee-10c0.zip/node_modules/jsonfile/",\ + "packageDependencies": [\ + ["jsonfile", "npm:6.1.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["universalify", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["kind-of", [\ + ["npm:3.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/kind-of-npm-3.2.2-7deaffa5f9-10c0.zip/node_modules/kind-of/",\ + "packageDependencies": [\ + ["kind-of", "npm:3.2.2"],\ + ["is-buffer", "npm:1.1.6"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/kind-of-npm-4.0.0-69fd153375-10c0.zip/node_modules/kind-of/",\ + "packageDependencies": [\ + ["kind-of", "npm:4.0.0"],\ + ["is-buffer", "npm:1.1.6"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/kind-of-npm-6.0.3-ab15f36220-10c0.zip/node_modules/kind-of/",\ + "packageDependencies": [\ + ["kind-of", "npm:6.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["kleur", [\ + ["npm:4.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/kleur-npm-4.1.5-46b6135f41-10c0.zip/node_modules/kleur/",\ + "packageDependencies": [\ + ["kleur", "npm:4.1.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lazy-cache", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/lazy-cache-npm-1.0.4-0e91150466-10c0.zip/node_modules/lazy-cache/",\ + "packageDependencies": [\ + ["lazy-cache", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lilconfig", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/lilconfig-npm-2.1.0-a179261924-10c0.zip/node_modules/lilconfig/",\ + "packageDependencies": [\ + ["lilconfig", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["livereload", [\ + ["npm:0.9.3", {\ + "packageLocation": "../../.yarn/berry/cache/livereload-npm-0.9.3-d287d317a6-10c0.zip/node_modules/livereload/",\ + "packageDependencies": [\ + ["livereload", "npm:0.9.3"],\ + ["chokidar", "npm:3.6.0"],\ + ["livereload-js", "npm:3.4.1"],\ + ["opts", "npm:2.0.2"],\ + ["ws", "virtual:d287d317a6f1682c24b5f6841258ccd28e379d5f1f55be3fe4df3ca807dff8a38cf54d217975fbf71cba648fc5f94edfe39c154881451bb38bf284b190f0a66a#npm:7.5.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["livereload-js", [\ + ["npm:3.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/livereload-js-npm-3.4.1-9c60439402-10c0.zip/node_modules/livereload-js/",\ + "packageDependencies": [\ + ["livereload-js", "npm:3.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["loader-runner", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/loader-runner-npm-4.3.0-9ca67df372-10c0.zip/node_modules/loader-runner/",\ + "packageDependencies": [\ + ["loader-runner", "npm:4.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["loader-utils", [\ + ["npm:0.2.17", {\ + "packageLocation": "../../.yarn/berry/cache/loader-utils-npm-0.2.17-1fe62fab05-10c0.zip/node_modules/loader-utils/",\ + "packageDependencies": [\ + ["loader-utils", "npm:0.2.17"],\ + ["big.js", "npm:3.2.0"],\ + ["emojis-list", "npm:2.1.0"],\ + ["json5", "npm:0.5.1"],\ + ["object-assign", "npm:4.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/loader-utils-npm-2.0.4-ba3800585b-10c0.zip/node_modules/loader-utils/",\ + "packageDependencies": [\ + ["loader-utils", "npm:2.0.4"],\ + ["big.js", "npm:5.2.2"],\ + ["emojis-list", "npm:3.0.0"],\ + ["json5", "npm:2.2.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/loader-utils-npm-3.3.1-eed38ce75b-10c0.zip/node_modules/loader-utils/",\ + "packageDependencies": [\ + ["loader-utils", "npm:3.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["local-access", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/local-access-npm-1.1.0-aec026f6f0-10c0.zip/node_modules/local-access/",\ + "packageDependencies": [\ + ["local-access", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["locate-character", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/locate-character-npm-3.0.0-40928dccbb-10c0.zip/node_modules/locate-character/",\ + "packageDependencies": [\ + ["locate-character", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["locate-path", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/locate-path-npm-5.0.0-46580c43e4-10c0.zip/node_modules/locate-path/",\ + "packageDependencies": [\ + ["locate-path", "npm:5.0.0"],\ + ["p-locate", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash.camelcase", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-10c0.zip/node_modules/lodash.camelcase/",\ + "packageDependencies": [\ + ["lodash.camelcase", "npm:4.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash.memoize", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/lodash.memoize-npm-4.1.2-0e6250041f-10c0.zip/node_modules/lodash.memoize/",\ + "packageDependencies": [\ + ["lodash.memoize", "npm:4.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash.startcase", [\ + ["npm:4.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/lodash.startcase-npm-4.4.0-637aa8cc15-10c0.zip/node_modules/lodash.startcase/",\ + "packageDependencies": [\ + ["lodash.startcase", "npm:4.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash.uniq", [\ + ["npm:4.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/lodash.uniq-npm-4.5.0-7c270dca85-10c0.zip/node_modules/lodash.uniq/",\ + "packageDependencies": [\ + ["lodash.uniq", "npm:4.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["longest", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/longest-npm-1.0.1-78ef3a3705-10c0.zip/node_modules/longest/",\ + "packageDependencies": [\ + ["longest", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["loupe", [\ + ["npm:3.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/loupe-npm-3.1.2-58c9dbcc10-10c0.zip/node_modules/loupe/",\ + "packageDependencies": [\ + ["loupe", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lru-cache", [\ + ["npm:10.4.3", {\ + "packageLocation": "../../.yarn/berry/cache/lru-cache-npm-10.4.3-30c10b861a-10c0.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:10.4.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:11.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/lru-cache-npm-11.0.1-636ae10c75-10c0.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:11.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/lru-cache-npm-4.1.5-ede304cc43-10c0.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:4.1.5"],\ + ["pseudomap", "npm:1.0.2"],\ + ["yallist", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["magic-string", [\ + ["npm:0.30.12", {\ + "packageLocation": "../../.yarn/berry/cache/magic-string-npm-0.30.12-31dd992ec2-10c0.zip/node_modules/magic-string/",\ + "packageDependencies": [\ + ["magic-string", "npm:0.30.12"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["make-dir", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/make-dir-npm-3.1.0-d1d7505142-10c0.zip/node_modules/make-dir/",\ + "packageDependencies": [\ + ["make-dir", "npm:3.1.0"],\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["make-fetch-happen", [\ + ["npm:13.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/make-fetch-happen-npm-13.0.1-4180f2aaa8-10c0.zip/node_modules/make-fetch-happen/",\ + "packageDependencies": [\ + ["make-fetch-happen", "npm:13.0.1"],\ + ["@npmcli/agent", "npm:2.2.2"],\ + ["cacache", "npm:18.0.4"],\ + ["http-cache-semantics", "npm:4.1.1"],\ + ["is-lambda", "npm:1.0.1"],\ + ["minipass", "npm:7.1.2"],\ + ["minipass-fetch", "npm:3.0.5"],\ + ["minipass-flush", "npm:1.0.5"],\ + ["minipass-pipeline", "npm:1.2.4"],\ + ["negotiator", "npm:0.6.4"],\ + ["proc-log", "npm:4.2.0"],\ + ["promise-retry", "npm:2.0.1"],\ + ["ssri", "npm:10.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["map-cache", [\ + ["npm:0.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/map-cache-npm-0.2.2-1620199b05-10c0.zip/node_modules/map-cache/",\ + "packageDependencies": [\ + ["map-cache", "npm:0.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["map-visit", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/map-visit-npm-1.0.0-33a7988a9d-10c0.zip/node_modules/map-visit/",\ + "packageDependencies": [\ + ["map-visit", "npm:1.0.0"],\ + ["object-visit", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["math-random", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/math-random-npm-1.0.4-4cb7e85188-10c0.zip/node_modules/math-random/",\ + "packageDependencies": [\ + ["math-random", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mdn-data", [\ + ["npm:2.0.14", {\ + "packageLocation": "../../.yarn/berry/cache/mdn-data-npm-2.0.14-0acd669f0d-10c0.zip/node_modules/mdn-data/",\ + "packageDependencies": [\ + ["mdn-data", "npm:2.0.14"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.30", {\ + "packageLocation": "../../.yarn/berry/cache/mdn-data-npm-2.0.30-bf7b39c09a-10c0.zip/node_modules/mdn-data/",\ + "packageDependencies": [\ + ["mdn-data", "npm:2.0.30"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["memory-fs", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/memory-fs-npm-0.2.0-4ba3d96613-10c0.zip/node_modules/memory-fs/",\ + "packageDependencies": [\ + ["memory-fs", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/memory-fs-npm-0.3.0-82af5a072a-10c0.zip/node_modules/memory-fs/",\ + "packageDependencies": [\ + ["memory-fs", "npm:0.3.0"],\ + ["errno", "npm:0.1.8"],\ + ["readable-stream", "npm:2.3.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["merge-stream", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/merge-stream-npm-2.0.0-2ac83efea5-10c0.zip/node_modules/merge-stream/",\ + "packageDependencies": [\ + ["merge-stream", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["merge2", [\ + ["npm:1.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/merge2-npm-1.4.1-a2507bd06c-10c0.zip/node_modules/merge2/",\ + "packageDependencies": [\ + ["merge2", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["micromatch", [\ + ["npm:2.3.11", {\ + "packageLocation": "../../.yarn/berry/cache/micromatch-npm-2.3.11-dec7c96510-10c0.zip/node_modules/micromatch/",\ + "packageDependencies": [\ + ["micromatch", "npm:2.3.11"],\ + ["arr-diff", "npm:2.0.0"],\ + ["array-unique", "npm:0.2.1"],\ + ["braces", "npm:1.8.5"],\ + ["expand-brackets", "npm:0.1.5"],\ + ["extglob", "npm:0.3.2"],\ + ["filename-regex", "npm:2.0.1"],\ + ["is-extglob", "npm:1.0.0"],\ + ["is-glob", "npm:2.0.1"],\ + ["kind-of", "npm:3.2.2"],\ + ["normalize-path", "npm:2.1.1"],\ + ["object.omit", "npm:2.0.1"],\ + ["parse-glob", "npm:3.0.4"],\ + ["regex-cache", "npm:0.4.4"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.10", {\ + "packageLocation": "../../.yarn/berry/cache/micromatch-npm-3.1.10-016e80c79d-10c0.zip/node_modules/micromatch/",\ + "packageDependencies": [\ + ["micromatch", "npm:3.1.10"],\ + ["arr-diff", "npm:4.0.0"],\ + ["array-unique", "npm:0.3.2"],\ + ["braces", "npm:2.3.2"],\ + ["define-property", "npm:2.0.2"],\ + ["extend-shallow", "npm:3.0.2"],\ + ["extglob", "npm:2.0.4"],\ + ["fragment-cache", "npm:0.2.1"],\ + ["kind-of", "npm:6.0.3"],\ + ["nanomatch", "npm:1.2.13"],\ + ["object.pick", "npm:1.3.0"],\ + ["regex-not", "npm:1.0.2"],\ + ["snapdragon", "npm:0.8.2"],\ + ["to-regex", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.8", {\ + "packageLocation": "../../.yarn/berry/cache/micromatch-npm-4.0.8-c9570e4aca-10c0.zip/node_modules/micromatch/",\ + "packageDependencies": [\ + ["micromatch", "npm:4.0.8"],\ + ["braces", "npm:3.0.3"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mime", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/mime-npm-3.0.0-8d911e4c06-10c0.zip/node_modules/mime/",\ + "packageDependencies": [\ + ["mime", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mime-db", [\ + ["npm:1.52.0", {\ + "packageLocation": "../../.yarn/berry/cache/mime-db-npm-1.52.0-b5371d6fd2-10c0.zip/node_modules/mime-db/",\ + "packageDependencies": [\ + ["mime-db", "npm:1.52.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mime-types", [\ + ["npm:2.1.35", {\ + "packageLocation": "../../.yarn/berry/cache/mime-types-npm-2.1.35-dd9ea9f3e2-10c0.zip/node_modules/mime-types/",\ + "packageDependencies": [\ + ["mime-types", "npm:2.1.35"],\ + ["mime-db", "npm:1.52.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mini-css-extract-plugin", [\ + ["npm:2.9.1", {\ + "packageLocation": "../../.yarn/berry/cache/mini-css-extract-plugin-npm-2.9.1-1db25d3bb9-10c0.zip/node_modules/mini-css-extract-plugin/",\ + "packageDependencies": [\ + ["mini-css-extract-plugin", "npm:2.9.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.9.1", {\ + "packageLocation": "./.yarn/__virtual__/mini-css-extract-plugin-virtual-0f41271f41/3/.yarn/berry/cache/mini-css-extract-plugin-npm-2.9.1-1db25d3bb9-10c0.zip/node_modules/mini-css-extract-plugin/",\ + "packageDependencies": [\ + ["mini-css-extract-plugin", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.9.1"],\ + ["@types/webpack", null],\ + ["schema-utils", "npm:4.2.0"],\ + ["tapable", "npm:2.2.1"],\ + ["webpack", null]\ + ],\ + "packagePeers": [\ + "@types/webpack",\ + "webpack"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minimatch", [\ + ["npm:10.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/minimatch-npm-10.0.1-eabcc0d3a0-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["minimatch", "npm:10.0.1"],\ + ["brace-expansion", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/minimatch-npm-3.1.2-9405269906-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["minimatch", "npm:3.1.2"],\ + ["brace-expansion", "npm:1.1.11"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/minimatch-npm-9.0.5-9aa93d97fa-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["minimatch", "npm:9.0.5"],\ + ["brace-expansion", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minimist", [\ + ["npm:0.0.10", {\ + "packageLocation": "../../.yarn/berry/cache/minimist-npm-0.0.10-df9c22163e-10c0.zip/node_modules/minimist/",\ + "packageDependencies": [\ + ["minimist", "npm:0.0.10"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.2.8", {\ + "packageLocation": "../../.yarn/berry/cache/minimist-npm-1.2.8-d7af7b1dce-10c0.zip/node_modules/minimist/",\ + "packageDependencies": [\ + ["minimist", "npm:1.2.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass", [\ + ["npm:3.3.6", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-npm-3.3.6-b8d93a945b-10c0.zip/node_modules/minipass/",\ + "packageDependencies": [\ + ["minipass", "npm:3.3.6"],\ + ["yallist", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-npm-5.0.0-c64fb63c92-10c0.zip/node_modules/minipass/",\ + "packageDependencies": [\ + ["minipass", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-npm-7.1.2-3a5327d36d-10c0.zip/node_modules/minipass/",\ + "packageDependencies": [\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-collect", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-collect-npm-2.0.1-73d3907e40-10c0.zip/node_modules/minipass-collect/",\ + "packageDependencies": [\ + ["minipass-collect", "npm:2.0.1"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-fetch", [\ + ["npm:3.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-fetch-npm-3.0.5-ed78529694-10c0.zip/node_modules/minipass-fetch/",\ + "packageDependencies": [\ + ["minipass-fetch", "npm:3.0.5"],\ + ["encoding", "npm:0.1.13"],\ + ["minipass", "npm:7.1.2"],\ + ["minipass-sized", "npm:1.0.3"],\ + ["minizlib", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-flush", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-flush-npm-1.0.5-efe79d9826-10c0.zip/node_modules/minipass-flush/",\ + "packageDependencies": [\ + ["minipass-flush", "npm:1.0.5"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-pipeline", [\ + ["npm:1.2.4", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-pipeline-npm-1.2.4-5924cb077f-10c0.zip/node_modules/minipass-pipeline/",\ + "packageDependencies": [\ + ["minipass-pipeline", "npm:1.2.4"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-sized", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/minipass-sized-npm-1.0.3-306d86f432-10c0.zip/node_modules/minipass-sized/",\ + "packageDependencies": [\ + ["minipass-sized", "npm:1.0.3"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minizlib", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-10c0.zip/node_modules/minizlib/",\ + "packageDependencies": [\ + ["minizlib", "npm:2.1.2"],\ + ["minipass", "npm:3.3.6"],\ + ["yallist", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mixin-deep", [\ + ["npm:1.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/mixin-deep-npm-1.3.2-29b528e571-10c0.zip/node_modules/mixin-deep/",\ + "packageDependencies": [\ + ["mixin-deep", "npm:1.3.2"],\ + ["for-in", "npm:1.0.2"],\ + ["is-extendable", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mkdirp", [\ + ["npm:0.5.6", {\ + "packageLocation": "../../.yarn/berry/cache/mkdirp-npm-0.5.6-dcd5a6b97b-10c0.zip/node_modules/mkdirp/",\ + "packageDependencies": [\ + ["mkdirp", "npm:0.5.6"],\ + ["minimist", "npm:1.2.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-10c0.zip/node_modules/mkdirp/",\ + "packageDependencies": [\ + ["mkdirp", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mri", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/mri-npm-1.2.0-8ecee0357d-10c0.zip/node_modules/mri/",\ + "packageDependencies": [\ + ["mri", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mrmime", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/mrmime-npm-2.0.0-0326eb1458-10c0.zip/node_modules/mrmime/",\ + "packageDependencies": [\ + ["mrmime", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ms", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/ms-npm-2.0.0-9e1101a471-10c0.zip/node_modules/ms/",\ + "packageDependencies": [\ + ["ms", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/ms-npm-2.1.3-81ff3cfac1-10c0.zip/node_modules/ms/",\ + "packageDependencies": [\ + ["ms", "npm:2.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nan", [\ + ["npm:2.22.0", {\ + "packageLocation": "./.yarn/unplugged/nan-npm-2.22.0-3750ad85d9/node_modules/nan/",\ + "packageDependencies": [\ + ["nan", "npm:2.22.0"],\ + ["node-gyp", "npm:10.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nanoid", [\ + ["npm:3.3.7", {\ + "packageLocation": "../../.yarn/berry/cache/nanoid-npm-3.3.7-98824ba130-10c0.zip/node_modules/nanoid/",\ + "packageDependencies": [\ + ["nanoid", "npm:3.3.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nanomatch", [\ + ["npm:1.2.13", {\ + "packageLocation": "../../.yarn/berry/cache/nanomatch-npm-1.2.13-bc9173dbe7-10c0.zip/node_modules/nanomatch/",\ + "packageDependencies": [\ + ["nanomatch", "npm:1.2.13"],\ + ["arr-diff", "npm:4.0.0"],\ + ["array-unique", "npm:0.3.2"],\ + ["define-property", "npm:2.0.2"],\ + ["extend-shallow", "npm:3.0.2"],\ + ["fragment-cache", "npm:0.2.1"],\ + ["is-windows", "npm:1.0.2"],\ + ["kind-of", "npm:6.0.3"],\ + ["object.pick", "npm:1.3.0"],\ + ["regex-not", "npm:1.0.2"],\ + ["snapdragon", "npm:0.8.2"],\ + ["to-regex", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["negotiator", [\ + ["npm:0.6.4", {\ + "packageLocation": "../../.yarn/berry/cache/negotiator-npm-0.6.4-4a96086720-10c0.zip/node_modules/negotiator/",\ + "packageDependencies": [\ + ["negotiator", "npm:0.6.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["neo-async", [\ + ["npm:2.6.2", {\ + "packageLocation": "../../.yarn/berry/cache/neo-async-npm-2.6.2-75d6902586-10c0.zip/node_modules/neo-async/",\ + "packageDependencies": [\ + ["neo-async", "npm:2.6.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-gyp", [\ + ["npm:10.2.0", {\ + "packageLocation": "./.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/",\ + "packageDependencies": [\ + ["node-gyp", "npm:10.2.0"],\ + ["env-paths", "npm:2.2.1"],\ + ["exponential-backoff", "npm:3.1.1"],\ + ["glob", "npm:10.4.5"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["make-fetch-happen", "npm:13.0.1"],\ + ["nopt", "npm:7.2.1"],\ + ["proc-log", "npm:4.2.0"],\ + ["semver", "npm:7.6.3"],\ + ["tar", "npm:6.2.1"],\ + ["which", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-libs-browser", [\ + ["npm:0.7.0", {\ + "packageLocation": "../../.yarn/berry/cache/node-libs-browser-npm-0.7.0-3fa12aeb13-10c0.zip/node_modules/node-libs-browser/",\ + "packageDependencies": [\ + ["node-libs-browser", "npm:0.7.0"],\ + ["assert", "npm:1.5.1"],\ + ["browserify-zlib", "npm:0.1.4"],\ + ["buffer", "npm:4.9.2"],\ + ["console-browserify", "npm:1.2.0"],\ + ["constants-browserify", "npm:1.0.0"],\ + ["crypto-browserify", "npm:3.3.0"],\ + ["domain-browser", "npm:1.2.0"],\ + ["events", "npm:1.1.1"],\ + ["https-browserify", "npm:0.0.1"],\ + ["os-browserify", "npm:0.2.1"],\ + ["path-browserify", "npm:0.0.0"],\ + ["process", "npm:0.11.10"],\ + ["punycode", "npm:1.4.1"],\ + ["querystring-es3", "npm:0.2.1"],\ + ["readable-stream", "npm:2.3.8"],\ + ["stream-browserify", "npm:2.0.2"],\ + ["stream-http", "npm:2.8.3"],\ + ["string_decoder", "npm:0.10.31"],\ + ["timers-browserify", "npm:2.0.12"],\ + ["tty-browserify", "npm:0.0.0"],\ + ["url", "npm:0.11.4"],\ + ["util", "npm:0.10.4"],\ + ["vm-browserify", "npm:0.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-releases", [\ + ["npm:2.0.18", {\ + "packageLocation": "../../.yarn/berry/cache/node-releases-npm-2.0.18-51abc46668-10c0.zip/node_modules/node-releases/",\ + "packageDependencies": [\ + ["node-releases", "npm:2.0.18"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nopt", [\ + ["npm:7.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/nopt-npm-7.2.1-635b7da949-10c0.zip/node_modules/nopt/",\ + "packageDependencies": [\ + ["nopt", "npm:7.2.1"],\ + ["abbrev", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["normalize-path", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/normalize-path-npm-2.1.1-65c4766716-10c0.zip/node_modules/normalize-path/",\ + "packageDependencies": [\ + ["normalize-path", "npm:2.1.1"],\ + ["remove-trailing-separator", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/normalize-path-npm-3.0.0-658ba7d77f-10c0.zip/node_modules/normalize-path/",\ + "packageDependencies": [\ + ["normalize-path", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["normalize-url", [\ + ["npm:6.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/normalize-url-npm-6.1.0-b95bc12ece-10c0.zip/node_modules/normalize-url/",\ + "packageDependencies": [\ + ["normalize-url", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nostr-tools", [\ + ["npm:2.7.2", {\ + "packageLocation": "../../.yarn/berry/cache/nostr-tools-npm-2.7.2-cf26001bad-10c0.zip/node_modules/nostr-tools/",\ + "packageDependencies": [\ + ["nostr-tools", "npm:2.7.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:2.7.2", {\ + "packageLocation": "./.yarn/__virtual__/nostr-tools-virtual-9c928aee12/3/.yarn/berry/cache/nostr-tools-npm-2.7.2-cf26001bad-10c0.zip/node_modules/nostr-tools/",\ + "packageDependencies": [\ + ["nostr-tools", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:2.7.2"],\ + ["@noble/ciphers", "npm:0.5.3"],\ + ["@noble/curves", "npm:1.2.0"],\ + ["@noble/hashes", "npm:1.3.1"],\ + ["@scure/base", "npm:1.1.1"],\ + ["@scure/bip32", "npm:1.3.1"],\ + ["@scure/bip39", "npm:1.2.1"],\ + ["@types/typescript", null],\ + ["nostr-wasm", "npm:0.1.0"],\ + ["typescript", null]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:76e523be50b06476bcb6aed7ea98761b222aa546c03053be14bd27a5bb537ad75692e436ae40cce0a0128b1e4d788bfb69b3f70bec3d7e4955dd825baea3bf6f#npm:2.7.2", {\ + "packageLocation": "./.yarn/__virtual__/nostr-tools-virtual-6bb5fdc6cd/3/.yarn/berry/cache/nostr-tools-npm-2.7.2-cf26001bad-10c0.zip/node_modules/nostr-tools/",\ + "packageDependencies": [\ + ["nostr-tools", "virtual:76e523be50b06476bcb6aed7ea98761b222aa546c03053be14bd27a5bb537ad75692e436ae40cce0a0128b1e4d788bfb69b3f70bec3d7e4955dd825baea3bf6f#npm:2.7.2"],\ + ["@noble/ciphers", "npm:0.5.3"],\ + ["@noble/curves", "npm:1.2.0"],\ + ["@noble/hashes", "npm:1.3.1"],\ + ["@scure/base", "npm:1.1.1"],\ + ["@scure/bip32", "npm:1.3.1"],\ + ["@scure/bip39", "npm:1.2.1"],\ + ["@types/typescript", null],\ + ["nostr-wasm", "npm:0.1.0"],\ + ["typescript", "patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40"]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nostr-wasm", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/nostr-wasm-npm-0.1.0-9a06e5ac34-10c0.zip/node_modules/nostr-wasm/",\ + "packageDependencies": [\ + ["nostr-wasm", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["notemine", [\ + ["npm:0.3.2", {\ + "packageLocation": "../../.yarn/berry/cache/notemine-npm-0.3.2-af43f6cca9-10c0.zip/node_modules/notemine/",\ + "packageDependencies": [\ + ["notemine", "npm:0.3.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["workspace:.", {\ + "packageLocation": "./",\ + "packageDependencies": [\ + ["notemine", "workspace:."],\ + ["@changesets/cli", "npm:2.27.9"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["nth-check", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/nth-check-npm-2.1.1-f97afc8169-10c0.zip/node_modules/nth-check/",\ + "packageDependencies": [\ + ["nth-check", "npm:2.1.1"],\ + ["boolbase", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object-assign", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/object-assign-npm-4.1.1-1004ad6dec-10c0.zip/node_modules/object-assign/",\ + "packageDependencies": [\ + ["object-assign", "npm:4.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object-copy", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/object-copy-npm-0.1.0-e229d02f2b-10c0.zip/node_modules/object-copy/",\ + "packageDependencies": [\ + ["object-copy", "npm:0.1.0"],\ + ["copy-descriptor", "npm:0.1.1"],\ + ["define-property", "npm:0.2.5"],\ + ["kind-of", "npm:3.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object-inspect", [\ + ["npm:1.13.2", {\ + "packageLocation": "../../.yarn/berry/cache/object-inspect-npm-1.13.2-3c6e11a536-10c0.zip/node_modules/object-inspect/",\ + "packageDependencies": [\ + ["object-inspect", "npm:1.13.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object-keys", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/object-keys-npm-1.1.1-1bf2f1be93-10c0.zip/node_modules/object-keys/",\ + "packageDependencies": [\ + ["object-keys", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object-visit", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/object-visit-npm-1.0.1-c5c9057c24-10c0.zip/node_modules/object-visit/",\ + "packageDependencies": [\ + ["object-visit", "npm:1.0.1"],\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object.assign", [\ + ["npm:4.1.5", {\ + "packageLocation": "../../.yarn/berry/cache/object.assign-npm-4.1.5-aa3b2260ba-10c0.zip/node_modules/object.assign/",\ + "packageDependencies": [\ + ["object.assign", "npm:4.1.5"],\ + ["call-bind", "npm:1.0.7"],\ + ["define-properties", "npm:1.2.1"],\ + ["has-symbols", "npm:1.0.3"],\ + ["object-keys", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object.omit", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/object.omit-npm-2.0.1-f19cf0d87c-10c0.zip/node_modules/object.omit/",\ + "packageDependencies": [\ + ["object.omit", "npm:2.0.1"],\ + ["for-own", "npm:0.1.5"],\ + ["is-extendable", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["object.pick", [\ + ["npm:1.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/object.pick-npm-1.3.0-dad8eae8fb-10c0.zip/node_modules/object.pick/",\ + "packageDependencies": [\ + ["object.pick", "npm:1.3.0"],\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["once", [\ + ["npm:1.4.0", {\ + "packageLocation": "../../.yarn/berry/cache/once-npm-1.4.0-ccf03ef07a-10c0.zip/node_modules/once/",\ + "packageDependencies": [\ + ["once", "npm:1.4.0"],\ + ["wrappy", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["optimist", [\ + ["npm:0.6.1", {\ + "packageLocation": "../../.yarn/berry/cache/optimist-npm-0.6.1-b1b5ef4c06-10c0.zip/node_modules/optimist/",\ + "packageDependencies": [\ + ["optimist", "npm:0.6.1"],\ + ["minimist", "npm:0.0.10"],\ + ["wordwrap", "npm:0.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["opts", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/opts-npm-2.0.2-62d5ec5b16-10c0.zip/node_modules/opts/",\ + "packageDependencies": [\ + ["opts", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["os-browserify", [\ + ["npm:0.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/os-browserify-npm-0.2.1-586cf348b7-10c0.zip/node_modules/os-browserify/",\ + "packageDependencies": [\ + ["os-browserify", "npm:0.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["os-tmpdir", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/os-tmpdir-npm-1.0.2-e305b0689b-10c0.zip/node_modules/os-tmpdir/",\ + "packageDependencies": [\ + ["os-tmpdir", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["outdent", [\ + ["npm:0.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/outdent-npm-0.5.0-513abc4067-10c0.zip/node_modules/outdent/",\ + "packageDependencies": [\ + ["outdent", "npm:0.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-filter", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-filter-npm-2.1.0-f1136c698e-10c0.zip/node_modules/p-filter/",\ + "packageDependencies": [\ + ["p-filter", "npm:2.1.0"],\ + ["p-map", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-finally", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-finally-npm-1.0.0-35fbaa57c6-10c0.zip/node_modules/p-finally/",\ + "packageDependencies": [\ + ["p-finally", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-limit", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-limit-npm-2.3.0-94a0310039-10c0.zip/node_modules/p-limit/",\ + "packageDependencies": [\ + ["p-limit", "npm:2.3.0"],\ + ["p-try", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-locate", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-locate-npm-4.1.0-eec6872537-10c0.zip/node_modules/p-locate/",\ + "packageDependencies": [\ + ["p-locate", "npm:4.1.0"],\ + ["p-limit", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-map", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-map-npm-2.1.0-d9e865dc7c-10c0.zip/node_modules/p-map/",\ + "packageDependencies": [\ + ["p-map", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-map-npm-4.0.0-4677ae07c7-10c0.zip/node_modules/p-map/",\ + "packageDependencies": [\ + ["p-map", "npm:4.0.0"],\ + ["aggregate-error", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-queue", [\ + ["npm:6.6.2", {\ + "packageLocation": "../../.yarn/berry/cache/p-queue-npm-6.6.2-b173c5bfa8-10c0.zip/node_modules/p-queue/",\ + "packageDependencies": [\ + ["p-queue", "npm:6.6.2"],\ + ["eventemitter3", "npm:4.0.7"],\ + ["p-timeout", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-timeout", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-timeout-npm-3.2.0-7fdb33f733-10c0.zip/node_modules/p-timeout/",\ + "packageDependencies": [\ + ["p-timeout", "npm:3.2.0"],\ + ["p-finally", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-try", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/p-try-npm-2.2.0-e0390dbaf8-10c0.zip/node_modules/p-try/",\ + "packageDependencies": [\ + ["p-try", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["package-json-from-dist", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/package-json-from-dist-npm-1.0.1-4631a88465-10c0.zip/node_modules/package-json-from-dist/",\ + "packageDependencies": [\ + ["package-json-from-dist", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["package-manager-detector", [\ + ["npm:0.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/package-manager-detector-npm-0.2.2-f2c943847a-10c0.zip/node_modules/package-manager-detector/",\ + "packageDependencies": [\ + ["package-manager-detector", "npm:0.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pako", [\ + ["npm:0.2.9", {\ + "packageLocation": "../../.yarn/berry/cache/pako-npm-0.2.9-c88ac0d326-10c0.zip/node_modules/pako/",\ + "packageDependencies": [\ + ["pako", "npm:0.2.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["parse-glob", [\ + ["npm:3.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/parse-glob-npm-3.0.4-8cc6318690-10c0.zip/node_modules/parse-glob/",\ + "packageDependencies": [\ + ["parse-glob", "npm:3.0.4"],\ + ["glob-base", "npm:0.3.0"],\ + ["is-dotfile", "npm:1.0.3"],\ + ["is-extglob", "npm:1.0.0"],\ + ["is-glob", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pascalcase", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/pascalcase-npm-0.1.1-d04964fcda-10c0.zip/node_modules/pascalcase/",\ + "packageDependencies": [\ + ["pascalcase", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-browserify", [\ + ["npm:0.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/path-browserify-npm-0.0.0-cfe9f9afa5-10c0.zip/node_modules/path-browserify/",\ + "packageDependencies": [\ + ["path-browserify", "npm:0.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-exists", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/path-exists-npm-4.0.0-e9e4f63eb0-10c0.zip/node_modules/path-exists/",\ + "packageDependencies": [\ + ["path-exists", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-is-absolute", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/path-is-absolute-npm-1.0.1-31bc695ffd-10c0.zip/node_modules/path-is-absolute/",\ + "packageDependencies": [\ + ["path-is-absolute", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-key", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/path-key-npm-3.1.1-0e66ea8321-10c0.zip/node_modules/path-key/",\ + "packageDependencies": [\ + ["path-key", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-parse", [\ + ["npm:1.0.7", {\ + "packageLocation": "../../.yarn/berry/cache/path-parse-npm-1.0.7-09564527b7-10c0.zip/node_modules/path-parse/",\ + "packageDependencies": [\ + ["path-parse", "npm:1.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-scurry", [\ + ["npm:1.11.1", {\ + "packageLocation": "../../.yarn/berry/cache/path-scurry-npm-1.11.1-aaf8c339af-10c0.zip/node_modules/path-scurry/",\ + "packageDependencies": [\ + ["path-scurry", "npm:1.11.1"],\ + ["lru-cache", "npm:10.4.3"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/path-scurry-npm-2.0.0-5a556e8161-10c0.zip/node_modules/path-scurry/",\ + "packageDependencies": [\ + ["path-scurry", "npm:2.0.0"],\ + ["lru-cache", "npm:11.0.1"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-type", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/path-type-npm-4.0.0-10d47fc86a-10c0.zip/node_modules/path-type/",\ + "packageDependencies": [\ + ["path-type", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pathe", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/pathe-npm-1.1.2-b80d94db55-10c0.zip/node_modules/pathe/",\ + "packageDependencies": [\ + ["pathe", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pathval", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/pathval-npm-2.0.0-e9fc9a6282-10c0.zip/node_modules/pathval/",\ + "packageDependencies": [\ + ["pathval", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pbkdf2-compat", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/pbkdf2-compat-npm-2.0.1-7a8f176aa3-10c0.zip/node_modules/pbkdf2-compat/",\ + "packageDependencies": [\ + ["pbkdf2-compat", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["periscopic", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/periscopic-npm-3.1.0-247cb75ac7-10c0.zip/node_modules/periscopic/",\ + "packageDependencies": [\ + ["periscopic", "npm:3.1.0"],\ + ["@types/estree", "npm:1.0.6"],\ + ["estree-walker", "npm:3.0.3"],\ + ["is-reference", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["picocolors", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/picocolors-npm-1.1.1-4fede47cf1-10c0.zip/node_modules/picocolors/",\ + "packageDependencies": [\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["picomatch", [\ + ["npm:2.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/picomatch-npm-2.3.1-c782cfd986-10c0.zip/node_modules/picomatch/",\ + "packageDependencies": [\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/picomatch-npm-4.0.2-e93516ddf2-10c0.zip/node_modules/picomatch/",\ + "packageDependencies": [\ + ["picomatch", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pify", [\ + ["npm:4.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/pify-npm-4.0.1-062756097b-10c0.zip/node_modules/pify/",\ + "packageDependencies": [\ + ["pify", "npm:4.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/pify-npm-5.0.0-f5abe8ab8d-10c0.zip/node_modules/pify/",\ + "packageDependencies": [\ + ["pify", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pkg-dir", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-10c0.zip/node_modules/pkg-dir/",\ + "packageDependencies": [\ + ["pkg-dir", "npm:4.2.0"],\ + ["find-up", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["posix-character-classes", [\ + ["npm:0.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/posix-character-classes-npm-0.1.1-3e228a6e15-10c0.zip/node_modules/posix-character-classes/",\ + "packageDependencies": [\ + ["posix-character-classes", "npm:0.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss", [\ + ["npm:8.4.47", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-npm-8.4.47-2f4d4be1fa-10c0.zip/node_modules/postcss/",\ + "packageDependencies": [\ + ["postcss", "npm:8.4.47"],\ + ["nanoid", "npm:3.3.7"],\ + ["picocolors", "npm:1.1.1"],\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-calc", [\ + ["npm:8.2.4", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-calc-npm-8.2.4-9d59948567-10c0.zip/node_modules/postcss-calc/",\ + "packageDependencies": [\ + ["postcss-calc", "npm:8.2.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:8.2.4", {\ + "packageLocation": "./.yarn/__virtual__/postcss-calc-virtual-5fca27f104/3/.yarn/berry/cache/postcss-calc-npm-8.2.4-9d59948567-10c0.zip/node_modules/postcss-calc/",\ + "packageDependencies": [\ + ["postcss-calc", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:8.2.4"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-colormin", [\ + ["npm:5.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-colormin-npm-5.3.1-a1990fcc4b-10c0.zip/node_modules/postcss-colormin/",\ + "packageDependencies": [\ + ["postcss-colormin", "npm:5.3.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.3.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-colormin-virtual-7fbf88be57/3/.yarn/berry/cache/postcss-colormin-npm-5.3.1-a1990fcc4b-10c0.zip/node_modules/postcss-colormin/",\ + "packageDependencies": [\ + ["postcss-colormin", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.3.1"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["caniuse-api", "npm:3.0.0"],\ + ["colord", "npm:2.9.3"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-convert-values", [\ + ["npm:5.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-convert-values-npm-5.1.3-3ce12e6ef0-10c0.zip/node_modules/postcss-convert-values/",\ + "packageDependencies": [\ + ["postcss-convert-values", "npm:5.1.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.3", {\ + "packageLocation": "./.yarn/__virtual__/postcss-convert-values-virtual-77b9354c72/3/.yarn/berry/cache/postcss-convert-values-npm-5.1.3-3ce12e6ef0-10c0.zip/node_modules/postcss-convert-values/",\ + "packageDependencies": [\ + ["postcss-convert-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.3"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-discard-comments", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-discard-comments-npm-5.1.2-9f30a2d082-10c0.zip/node_modules/postcss-discard-comments/",\ + "packageDependencies": [\ + ["postcss-discard-comments", "npm:5.1.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.2", {\ + "packageLocation": "./.yarn/__virtual__/postcss-discard-comments-virtual-a41f57b284/3/.yarn/berry/cache/postcss-discard-comments-npm-5.1.2-9f30a2d082-10c0.zip/node_modules/postcss-discard-comments/",\ + "packageDependencies": [\ + ["postcss-discard-comments", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.2"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-discard-duplicates", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-discard-duplicates-npm-5.1.0-c9479e6afc-10c0.zip/node_modules/postcss-discard-duplicates/",\ + "packageDependencies": [\ + ["postcss-discard-duplicates", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-discard-duplicates-virtual-6cf92286ca/3/.yarn/berry/cache/postcss-discard-duplicates-npm-5.1.0-c9479e6afc-10c0.zip/node_modules/postcss-discard-duplicates/",\ + "packageDependencies": [\ + ["postcss-discard-duplicates", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-discard-empty", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-discard-empty-npm-5.1.1-7a8ea765fa-10c0.zip/node_modules/postcss-discard-empty/",\ + "packageDependencies": [\ + ["postcss-discard-empty", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-discard-empty-virtual-7b455d4ea2/3/.yarn/berry/cache/postcss-discard-empty-npm-5.1.1-7a8ea765fa-10c0.zip/node_modules/postcss-discard-empty/",\ + "packageDependencies": [\ + ["postcss-discard-empty", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-discard-overridden", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-discard-overridden-npm-5.1.0-0d3b10779a-10c0.zip/node_modules/postcss-discard-overridden/",\ + "packageDependencies": [\ + ["postcss-discard-overridden", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-discard-overridden-virtual-c27f504597/3/.yarn/berry/cache/postcss-discard-overridden-npm-5.1.0-0d3b10779a-10c0.zip/node_modules/postcss-discard-overridden/",\ + "packageDependencies": [\ + ["postcss-discard-overridden", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-load-config", [\ + ["npm:3.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-load-config-npm-3.1.4-1cb8a7e276-10c0.zip/node_modules/postcss-load-config/",\ + "packageDependencies": [\ + ["postcss-load-config", "npm:3.1.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:3.1.4", {\ + "packageLocation": "./.yarn/__virtual__/postcss-load-config-virtual-669d22a959/3/.yarn/berry/cache/postcss-load-config-npm-3.1.4-1cb8a7e276-10c0.zip/node_modules/postcss-load-config/",\ + "packageDependencies": [\ + ["postcss-load-config", "virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:3.1.4"],\ + ["@types/postcss", null],\ + ["@types/ts-node", null],\ + ["lilconfig", "npm:2.1.0"],\ + ["postcss", null],\ + ["ts-node", null],\ + ["yaml", "npm:1.10.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "@types/ts-node",\ + "postcss",\ + "ts-node"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-merge-longhand", [\ + ["npm:5.1.7", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-merge-longhand-npm-5.1.7-8fd86b0b8a-10c0.zip/node_modules/postcss-merge-longhand/",\ + "packageDependencies": [\ + ["postcss-merge-longhand", "npm:5.1.7"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.7", {\ + "packageLocation": "./.yarn/__virtual__/postcss-merge-longhand-virtual-d2e6df995b/3/.yarn/berry/cache/postcss-merge-longhand-npm-5.1.7-8fd86b0b8a-10c0.zip/node_modules/postcss-merge-longhand/",\ + "packageDependencies": [\ + ["postcss-merge-longhand", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.7"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"],\ + ["stylehacks", "virtual:d2e6df995ba739c27d7d6025bd0a64fd3fe456a9b90027a9ac78537b01e5ef25e4298826d3c19321e64e9dc2fd294e5ab7de5bfa921924c78729bb6fa0dc5073#npm:5.1.1"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-merge-rules", [\ + ["npm:5.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-merge-rules-npm-5.1.4-064af4c904-10c0.zip/node_modules/postcss-merge-rules/",\ + "packageDependencies": [\ + ["postcss-merge-rules", "npm:5.1.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.4", {\ + "packageLocation": "./.yarn/__virtual__/postcss-merge-rules-virtual-ae6b4a4193/3/.yarn/berry/cache/postcss-merge-rules-npm-5.1.4-064af4c904-10c0.zip/node_modules/postcss-merge-rules/",\ + "packageDependencies": [\ + ["postcss-merge-rules", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.4"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["caniuse-api", "npm:3.0.0"],\ + ["cssnano-utils", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0"],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-minify-font-values", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-minify-font-values-npm-5.1.0-8f34fc7a1f-10c0.zip/node_modules/postcss-minify-font-values/",\ + "packageDependencies": [\ + ["postcss-minify-font-values", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-minify-font-values-virtual-5187e11814/3/.yarn/berry/cache/postcss-minify-font-values-npm-5.1.0-8f34fc7a1f-10c0.zip/node_modules/postcss-minify-font-values/",\ + "packageDependencies": [\ + ["postcss-minify-font-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-minify-gradients", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-minify-gradients-npm-5.1.1-ec88a4bfbc-10c0.zip/node_modules/postcss-minify-gradients/",\ + "packageDependencies": [\ + ["postcss-minify-gradients", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-minify-gradients-virtual-e32f56b2f5/3/.yarn/berry/cache/postcss-minify-gradients-npm-5.1.1-ec88a4bfbc-10c0.zip/node_modules/postcss-minify-gradients/",\ + "packageDependencies": [\ + ["postcss-minify-gradients", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["colord", "npm:2.9.3"],\ + ["cssnano-utils", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-minify-params", [\ + ["npm:5.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-minify-params-npm-5.1.4-e2313887a4-10c0.zip/node_modules/postcss-minify-params/",\ + "packageDependencies": [\ + ["postcss-minify-params", "npm:5.1.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.4", {\ + "packageLocation": "./.yarn/__virtual__/postcss-minify-params-virtual-2d080b5a7c/3/.yarn/berry/cache/postcss-minify-params-npm-5.1.4-e2313887a4-10c0.zip/node_modules/postcss-minify-params/",\ + "packageDependencies": [\ + ["postcss-minify-params", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.4"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["cssnano-utils", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-minify-selectors", [\ + ["npm:5.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-minify-selectors-npm-5.2.1-33a6509bbc-10c0.zip/node_modules/postcss-minify-selectors/",\ + "packageDependencies": [\ + ["postcss-minify-selectors", "npm:5.2.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.2.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-minify-selectors-virtual-a4a2afe1d8/3/.yarn/berry/cache/postcss-minify-selectors-npm-5.2.1-33a6509bbc-10c0.zip/node_modules/postcss-minify-selectors/",\ + "packageDependencies": [\ + ["postcss-minify-selectors", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.2.1"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-modules", [\ + ["npm:4.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-modules-npm-4.3.1-85d6d65d8e-10c0.zip/node_modules/postcss-modules/",\ + "packageDependencies": [\ + ["postcss-modules", "npm:4.3.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:4.3.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-virtual-931a10be26/3/.yarn/berry/cache/postcss-modules-npm-4.3.1-85d6d65d8e-10c0.zip/node_modules/postcss-modules/",\ + "packageDependencies": [\ + ["postcss-modules", "virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:4.3.1"],\ + ["@types/postcss", null],\ + ["generic-names", "npm:4.0.0"],\ + ["icss-replace-symbols", "npm:1.1.0"],\ + ["lodash.camelcase", "npm:4.3.0"],\ + ["postcss", null],\ + ["postcss-modules-extract-imports", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:3.1.0"],\ + ["postcss-modules-local-by-default", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:4.0.5"],\ + ["postcss-modules-scope", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:3.2.0"],\ + ["postcss-modules-values", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:4.0.0"],\ + ["string-hash", "npm:1.1.3"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-modules-extract-imports", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-modules-extract-imports-npm-3.1.0-501aab09e8-10c0.zip/node_modules/postcss-modules-extract-imports/",\ + "packageDependencies": [\ + ["postcss-modules-extract-imports", "npm:3.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:3.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-extract-imports-virtual-e87bdceab9/3/.yarn/berry/cache/postcss-modules-extract-imports-npm-3.1.0-501aab09e8-10c0.zip/node_modules/postcss-modules-extract-imports/",\ + "packageDependencies": [\ + ["postcss-modules-extract-imports", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:3.1.0"],\ + ["@types/postcss", null],\ + ["postcss", "npm:8.4.47"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:3.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-extract-imports-virtual-d4dc5ccc56/3/.yarn/berry/cache/postcss-modules-extract-imports-npm-3.1.0-501aab09e8-10c0.zip/node_modules/postcss-modules-extract-imports/",\ + "packageDependencies": [\ + ["postcss-modules-extract-imports", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:3.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-modules-local-by-default", [\ + ["npm:4.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-modules-local-by-default-npm-4.0.5-1a623b43f9-10c0.zip/node_modules/postcss-modules-local-by-default/",\ + "packageDependencies": [\ + ["postcss-modules-local-by-default", "npm:4.0.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:4.0.5", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-local-by-default-virtual-957a6f7480/3/.yarn/berry/cache/postcss-modules-local-by-default-npm-4.0.5-1a623b43f9-10c0.zip/node_modules/postcss-modules-local-by-default/",\ + "packageDependencies": [\ + ["postcss-modules-local-by-default", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:4.0.5"],\ + ["@types/postcss", null],\ + ["icss-utils", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:5.1.0"],\ + ["postcss", "npm:8.4.47"],\ + ["postcss-selector-parser", "npm:6.1.2"],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:4.0.5", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-local-by-default-virtual-5b59701dbe/3/.yarn/berry/cache/postcss-modules-local-by-default-npm-4.0.5-1a623b43f9-10c0.zip/node_modules/postcss-modules-local-by-default/",\ + "packageDependencies": [\ + ["postcss-modules-local-by-default", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:4.0.5"],\ + ["@types/postcss", null],\ + ["icss-utils", "virtual:5b59701dbe2e8765830ed0405be068da1b8ed2f502384b0ec6d91277b638cbc5df32eb3c3674e5e9979691946388b07e3eca8b6b1aa3ba734ceb8fd87a1d51f9#npm:5.1.0"],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-modules-scope", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-modules-scope-npm-3.2.0-a03c18262e-10c0.zip/node_modules/postcss-modules-scope/",\ + "packageDependencies": [\ + ["postcss-modules-scope", "npm:3.2.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:3.2.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-scope-virtual-cd75797117/3/.yarn/berry/cache/postcss-modules-scope-npm-3.2.0-a03c18262e-10c0.zip/node_modules/postcss-modules-scope/",\ + "packageDependencies": [\ + ["postcss-modules-scope", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:3.2.0"],\ + ["@types/postcss", null],\ + ["postcss", "npm:8.4.47"],\ + ["postcss-selector-parser", "npm:6.1.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:3.2.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-scope-virtual-f00b2abf4f/3/.yarn/berry/cache/postcss-modules-scope-npm-3.2.0-a03c18262e-10c0.zip/node_modules/postcss-modules-scope/",\ + "packageDependencies": [\ + ["postcss-modules-scope", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:3.2.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-modules-values", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-10c0.zip/node_modules/postcss-modules-values/",\ + "packageDependencies": [\ + ["postcss-modules-values", "npm:4.0.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:4.0.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-values-virtual-feccc15a0b/3/.yarn/berry/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-10c0.zip/node_modules/postcss-modules-values/",\ + "packageDependencies": [\ + ["postcss-modules-values", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:4.0.0"],\ + ["@types/postcss", null],\ + ["icss-utils", "virtual:74a54b0b691fe1ca6353d6741a2a044d2a654be3ea3759606392cbae1a306e675f4821c518f89454cc97ca8306cea8b4bfc8abe6d717c8a7f17ef8394433b62c#npm:5.1.0"],\ + ["postcss", "npm:8.4.47"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:4.0.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-modules-values-virtual-ce430eba5c/3/.yarn/berry/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-10c0.zip/node_modules/postcss-modules-values/",\ + "packageDependencies": [\ + ["postcss-modules-values", "virtual:931a10be26d7906363a60e83b5eaf03b0edd332688aa3b6341250f2911805bab04baa2150c70fc1620b8a1d0f2a4a21481906730e45233e7d3aa7e335084d402#npm:4.0.0"],\ + ["@types/postcss", null],\ + ["icss-utils", "virtual:5b59701dbe2e8765830ed0405be068da1b8ed2f502384b0ec6d91277b638cbc5df32eb3c3674e5e9979691946388b07e3eca8b6b1aa3ba734ceb8fd87a1d51f9#npm:5.1.0"],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-charset", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-charset-npm-5.1.0-13c3339544-10c0.zip/node_modules/postcss-normalize-charset/",\ + "packageDependencies": [\ + ["postcss-normalize-charset", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-charset-virtual-eb362ea639/3/.yarn/berry/cache/postcss-normalize-charset-npm-5.1.0-13c3339544-10c0.zip/node_modules/postcss-normalize-charset/",\ + "packageDependencies": [\ + ["postcss-normalize-charset", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-display-values", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-display-values-npm-5.1.0-ae5985a0b0-10c0.zip/node_modules/postcss-normalize-display-values/",\ + "packageDependencies": [\ + ["postcss-normalize-display-values", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-display-values-virtual-fb926be43c/3/.yarn/berry/cache/postcss-normalize-display-values-npm-5.1.0-ae5985a0b0-10c0.zip/node_modules/postcss-normalize-display-values/",\ + "packageDependencies": [\ + ["postcss-normalize-display-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-positions", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-positions-npm-5.1.1-82275c9405-10c0.zip/node_modules/postcss-normalize-positions/",\ + "packageDependencies": [\ + ["postcss-normalize-positions", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-positions-virtual-1211290333/3/.yarn/berry/cache/postcss-normalize-positions-npm-5.1.1-82275c9405-10c0.zip/node_modules/postcss-normalize-positions/",\ + "packageDependencies": [\ + ["postcss-normalize-positions", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-repeat-style", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-repeat-style-npm-5.1.1-dd2adac3b3-10c0.zip/node_modules/postcss-normalize-repeat-style/",\ + "packageDependencies": [\ + ["postcss-normalize-repeat-style", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-repeat-style-virtual-4a56a196c5/3/.yarn/berry/cache/postcss-normalize-repeat-style-npm-5.1.1-dd2adac3b3-10c0.zip/node_modules/postcss-normalize-repeat-style/",\ + "packageDependencies": [\ + ["postcss-normalize-repeat-style", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-string", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-string-npm-5.1.0-bf32e478d0-10c0.zip/node_modules/postcss-normalize-string/",\ + "packageDependencies": [\ + ["postcss-normalize-string", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-string-virtual-a414914dcd/3/.yarn/berry/cache/postcss-normalize-string-npm-5.1.0-bf32e478d0-10c0.zip/node_modules/postcss-normalize-string/",\ + "packageDependencies": [\ + ["postcss-normalize-string", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-timing-functions", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-timing-functions-npm-5.1.0-fa42b95b44-10c0.zip/node_modules/postcss-normalize-timing-functions/",\ + "packageDependencies": [\ + ["postcss-normalize-timing-functions", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-timing-functions-virtual-0557180d66/3/.yarn/berry/cache/postcss-normalize-timing-functions-npm-5.1.0-fa42b95b44-10c0.zip/node_modules/postcss-normalize-timing-functions/",\ + "packageDependencies": [\ + ["postcss-normalize-timing-functions", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-unicode", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-unicode-npm-5.1.1-1a2f9f5f45-10c0.zip/node_modules/postcss-normalize-unicode/",\ + "packageDependencies": [\ + ["postcss-normalize-unicode", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-unicode-virtual-d87a78d5bb/3/.yarn/berry/cache/postcss-normalize-unicode-npm-5.1.1-1a2f9f5f45-10c0.zip/node_modules/postcss-normalize-unicode/",\ + "packageDependencies": [\ + ["postcss-normalize-unicode", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-url", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-url-npm-5.1.0-82c6c0bb7b-10c0.zip/node_modules/postcss-normalize-url/",\ + "packageDependencies": [\ + ["postcss-normalize-url", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-url-virtual-0733135a9a/3/.yarn/berry/cache/postcss-normalize-url-npm-5.1.0-82c6c0bb7b-10c0.zip/node_modules/postcss-normalize-url/",\ + "packageDependencies": [\ + ["postcss-normalize-url", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["normalize-url", "npm:6.1.0"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-normalize-whitespace", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-normalize-whitespace-npm-5.1.1-ff5cb53565-10c0.zip/node_modules/postcss-normalize-whitespace/",\ + "packageDependencies": [\ + ["postcss-normalize-whitespace", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-normalize-whitespace-virtual-9085d321db/3/.yarn/berry/cache/postcss-normalize-whitespace-npm-5.1.1-ff5cb53565-10c0.zip/node_modules/postcss-normalize-whitespace/",\ + "packageDependencies": [\ + ["postcss-normalize-whitespace", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-ordered-values", [\ + ["npm:5.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-ordered-values-npm-5.1.3-c12ebfb39c-10c0.zip/node_modules/postcss-ordered-values/",\ + "packageDependencies": [\ + ["postcss-ordered-values", "npm:5.1.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.3", {\ + "packageLocation": "./.yarn/__virtual__/postcss-ordered-values-virtual-42ea270329/3/.yarn/berry/cache/postcss-ordered-values-npm-5.1.3-c12ebfb39c-10c0.zip/node_modules/postcss-ordered-values/",\ + "packageDependencies": [\ + ["postcss-ordered-values", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.3"],\ + ["@types/postcss", null],\ + ["cssnano-utils", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:3.1.0"],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-reduce-initial", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-reduce-initial-npm-5.1.2-39a9b0def3-10c0.zip/node_modules/postcss-reduce-initial/",\ + "packageDependencies": [\ + ["postcss-reduce-initial", "npm:5.1.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.2", {\ + "packageLocation": "./.yarn/__virtual__/postcss-reduce-initial-virtual-9698062378/3/.yarn/berry/cache/postcss-reduce-initial-npm-5.1.2-39a9b0def3-10c0.zip/node_modules/postcss-reduce-initial/",\ + "packageDependencies": [\ + ["postcss-reduce-initial", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.2"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["caniuse-api", "npm:3.0.0"],\ + ["postcss", null]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-reduce-transforms", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-reduce-transforms-npm-5.1.0-f02f02d8ba-10c0.zip/node_modules/postcss-reduce-transforms/",\ + "packageDependencies": [\ + ["postcss-reduce-transforms", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-reduce-transforms-virtual-a0ca0072bc/3/.yarn/berry/cache/postcss-reduce-transforms-npm-5.1.0-f02f02d8ba-10c0.zip/node_modules/postcss-reduce-transforms/",\ + "packageDependencies": [\ + ["postcss-reduce-transforms", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-selector-parser", [\ + ["npm:6.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-selector-parser-npm-6.1.2-46a8e03b00-10c0.zip/node_modules/postcss-selector-parser/",\ + "packageDependencies": [\ + ["postcss-selector-parser", "npm:6.1.2"],\ + ["cssesc", "npm:3.0.0"],\ + ["util-deprecate", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-svgo", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-svgo-npm-5.1.0-6165516934-10c0.zip/node_modules/postcss-svgo/",\ + "packageDependencies": [\ + ["postcss-svgo", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/postcss-svgo-virtual-b91275e149/3/.yarn/berry/cache/postcss-svgo-npm-5.1.0-6165516934-10c0.zip/node_modules/postcss-svgo/",\ + "packageDependencies": [\ + ["postcss-svgo", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.0"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-value-parser", "npm:4.2.0"],\ + ["svgo", "npm:2.8.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-unique-selectors", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-unique-selectors-npm-5.1.1-ed729740f2-10c0.zip/node_modules/postcss-unique-selectors/",\ + "packageDependencies": [\ + ["postcss-unique-selectors", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/postcss-unique-selectors-virtual-f1431aee65/3/.yarn/berry/cache/postcss-unique-selectors-npm-5.1.1-ed729740f2-10c0.zip/node_modules/postcss-unique-selectors/",\ + "packageDependencies": [\ + ["postcss-unique-selectors", "virtual:63ac8dd0a206cb1619d434e6f4e50313bbb68bd0c53fd71392ce70739efba1256cbb92d834afb670a626d7292d33149e8e00712294e5ce3d7aab8b7cd2a5d63e#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postcss-value-parser", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/postcss-value-parser-npm-4.2.0-3cef602a6a-10c0.zip/node_modules/postcss-value-parser/",\ + "packageDependencies": [\ + ["postcss-value-parser", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["preserve", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/preserve-npm-0.2.0-6217a135d1-10c0.zip/node_modules/preserve/",\ + "packageDependencies": [\ + ["preserve", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["prettier", [\ + ["npm:2.8.8", {\ + "packageLocation": "../../.yarn/berry/cache/prettier-npm-2.8.8-430828a36c-10c0.zip/node_modules/prettier/",\ + "packageDependencies": [\ + ["prettier", "npm:2.8.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["proc-log", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/proc-log-npm-4.2.0-4d65296a9d-10c0.zip/node_modules/proc-log/",\ + "packageDependencies": [\ + ["proc-log", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["process", [\ + ["npm:0.11.10", {\ + "packageLocation": "../../.yarn/berry/cache/process-npm-0.11.10-aeb3b641ae-10c0.zip/node_modules/process/",\ + "packageDependencies": [\ + ["process", "npm:0.11.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["process-nextick-args", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/process-nextick-args-npm-2.0.1-b8d7971609-10c0.zip/node_modules/process-nextick-args/",\ + "packageDependencies": [\ + ["process-nextick-args", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["promise-retry", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/promise-retry-npm-2.0.1-871f0b01b7-10c0.zip/node_modules/promise-retry/",\ + "packageDependencies": [\ + ["promise-retry", "npm:2.0.1"],\ + ["err-code", "npm:2.0.3"],\ + ["retry", "npm:0.12.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["promise.series", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/promise.series-npm-0.2.0-286288dd11-10c0.zip/node_modules/promise.series/",\ + "packageDependencies": [\ + ["promise.series", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["prr", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/prr-npm-1.0.1-608d442761-10c0.zip/node_modules/prr/",\ + "packageDependencies": [\ + ["prr", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pseudomap", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/pseudomap-npm-1.0.2-0d0e40fee0-10c0.zip/node_modules/pseudomap/",\ + "packageDependencies": [\ + ["pseudomap", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["punycode", [\ + ["npm:1.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/punycode-npm-1.4.1-be4c23e6d2-10c0.zip/node_modules/punycode/",\ + "packageDependencies": [\ + ["punycode", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/punycode-npm-2.3.1-97543c420d-10c0.zip/node_modules/punycode/",\ + "packageDependencies": [\ + ["punycode", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["qs", [\ + ["npm:6.13.0", {\ + "packageLocation": "../../.yarn/berry/cache/qs-npm-6.13.0-53676ddc84-10c0.zip/node_modules/qs/",\ + "packageDependencies": [\ + ["qs", "npm:6.13.0"],\ + ["side-channel", "npm:1.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["querystring-es3", [\ + ["npm:0.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/querystring-es3-npm-0.2.1-f4632f2760-10c0.zip/node_modules/querystring-es3/",\ + "packageDependencies": [\ + ["querystring-es3", "npm:0.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["queue-microtask", [\ + ["npm:1.2.3", {\ + "packageLocation": "../../.yarn/berry/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-10c0.zip/node_modules/queue-microtask/",\ + "packageDependencies": [\ + ["queue-microtask", "npm:1.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["randomatic", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/randomatic-npm-3.1.1-149177375b-10c0.zip/node_modules/randomatic/",\ + "packageDependencies": [\ + ["randomatic", "npm:3.1.1"],\ + ["is-number", "npm:4.0.0"],\ + ["kind-of", "npm:6.0.3"],\ + ["math-random", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["randombytes", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/randombytes-npm-2.1.0-e3da76bccf-10c0.zip/node_modules/randombytes/",\ + "packageDependencies": [\ + ["randombytes", "npm:2.1.0"],\ + ["safe-buffer", "npm:5.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["read-yaml-file", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/read-yaml-file-npm-1.1.0-52eaf1c9d4-10c0.zip/node_modules/read-yaml-file/",\ + "packageDependencies": [\ + ["read-yaml-file", "npm:1.1.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["js-yaml", "npm:3.14.1"],\ + ["pify", "npm:4.0.1"],\ + ["strip-bom", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["readable-stream", [\ + ["npm:2.3.8", {\ + "packageLocation": "../../.yarn/berry/cache/readable-stream-npm-2.3.8-67a94c2cb1-10c0.zip/node_modules/readable-stream/",\ + "packageDependencies": [\ + ["readable-stream", "npm:2.3.8"],\ + ["core-util-is", "npm:1.0.3"],\ + ["inherits", "npm:2.0.4"],\ + ["isarray", "npm:1.0.0"],\ + ["process-nextick-args", "npm:2.0.1"],\ + ["safe-buffer", "npm:5.1.2"],\ + ["string_decoder", "npm:1.1.1"],\ + ["util-deprecate", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["readdirp", [\ + ["npm:2.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/readdirp-npm-2.2.1-33cb5df2b8-10c0.zip/node_modules/readdirp/",\ + "packageDependencies": [\ + ["readdirp", "npm:2.2.1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["micromatch", "npm:3.1.10"],\ + ["readable-stream", "npm:2.3.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.6.0", {\ + "packageLocation": "../../.yarn/berry/cache/readdirp-npm-3.6.0-f950cc74ab-10c0.zip/node_modules/readdirp/",\ + "packageDependencies": [\ + ["readdirp", "npm:3.6.0"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["regenerator-runtime", [\ + ["npm:0.14.1", {\ + "packageLocation": "../../.yarn/berry/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-10c0.zip/node_modules/regenerator-runtime/",\ + "packageDependencies": [\ + ["regenerator-runtime", "npm:0.14.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["regex-cache", [\ + ["npm:0.4.4", {\ + "packageLocation": "../../.yarn/berry/cache/regex-cache-npm-0.4.4-ef2672a5a0-10c0.zip/node_modules/regex-cache/",\ + "packageDependencies": [\ + ["regex-cache", "npm:0.4.4"],\ + ["is-equal-shallow", "npm:0.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["regex-not", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/regex-not-npm-1.0.2-06a03c9206-10c0.zip/node_modules/regex-not/",\ + "packageDependencies": [\ + ["regex-not", "npm:1.0.2"],\ + ["extend-shallow", "npm:3.0.2"],\ + ["safe-regex", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["remove-trailing-separator", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/remove-trailing-separator-npm-1.1.0-16d7231316-10c0.zip/node_modules/remove-trailing-separator/",\ + "packageDependencies": [\ + ["remove-trailing-separator", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["repeat-element", [\ + ["npm:1.1.4", {\ + "packageLocation": "../../.yarn/berry/cache/repeat-element-npm-1.1.4-7e649ab5b1-10c0.zip/node_modules/repeat-element/",\ + "packageDependencies": [\ + ["repeat-element", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["repeat-string", [\ + ["npm:1.6.1", {\ + "packageLocation": "../../.yarn/berry/cache/repeat-string-npm-1.6.1-bc8e388655-10c0.zip/node_modules/repeat-string/",\ + "packageDependencies": [\ + ["repeat-string", "npm:1.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["require-from-string", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/require-from-string-npm-2.0.2-8557e0db12-10c0.zip/node_modules/require-from-string/",\ + "packageDependencies": [\ + ["require-from-string", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve", [\ + ["patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d", {\ + "packageLocation": "../../.yarn/berry/cache/resolve-patch-4254c24959-10c0.zip/node_modules/resolve/",\ + "packageDependencies": [\ + ["resolve", "patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"],\ + ["is-core-module", "npm:2.15.1"],\ + ["path-parse", "npm:1.0.7"],\ + ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve-from", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/resolve-from-npm-5.0.0-15c9db4d33-10c0.zip/node_modules/resolve-from/",\ + "packageDependencies": [\ + ["resolve-from", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve-url", [\ + ["npm:0.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/resolve-url-npm-0.2.1-39edb8f908-10c0.zip/node_modules/resolve-url/",\ + "packageDependencies": [\ + ["resolve-url", "npm:0.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve.exports", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/resolve.exports-npm-2.0.2-f59b42bbe5-10c0.zip/node_modules/resolve.exports/",\ + "packageDependencies": [\ + ["resolve.exports", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ret", [\ + ["npm:0.1.15", {\ + "packageLocation": "../../.yarn/berry/cache/ret-npm-0.1.15-0d3c19de76-10c0.zip/node_modules/ret/",\ + "packageDependencies": [\ + ["ret", "npm:0.1.15"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["retry", [\ + ["npm:0.12.0", {\ + "packageLocation": "../../.yarn/berry/cache/retry-npm-0.12.0-72ac7fb4cc-10c0.zip/node_modules/retry/",\ + "packageDependencies": [\ + ["retry", "npm:0.12.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["reusify", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/reusify-npm-1.0.4-95ac4aec11-10c0.zip/node_modules/reusify/",\ + "packageDependencies": [\ + ["reusify", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["right-align", [\ + ["npm:0.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/right-align-npm-0.1.3-32d33857fa-10c0.zip/node_modules/right-align/",\ + "packageDependencies": [\ + ["right-align", "npm:0.1.3"],\ + ["align-text", "npm:0.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rimraf", [\ + ["npm:3.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/rimraf-npm-3.0.2-2cb7dac69a-10c0.zip/node_modules/rimraf/",\ + "packageDependencies": [\ + ["rimraf", "npm:3.0.2"],\ + ["glob", "npm:7.2.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/rimraf-npm-6.0.1-2d0b0aeb1b-10c0.zip/node_modules/rimraf/",\ + "packageDependencies": [\ + ["rimraf", "npm:6.0.1"],\ + ["glob", "npm:11.0.0"],\ + ["package-json-from-dist", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ripemd160", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/ripemd160-npm-0.2.0-00ba25c2b0-10c0.zip/node_modules/ripemd160/",\ + "packageDependencies": [\ + ["ripemd160", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup", [\ + ["npm:3.29.5", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-npm-3.29.5-4622371c71-10c0.zip/node_modules/rollup/",\ + "packageDependencies": [\ + ["rollup", "npm:3.29.5"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.24.0", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-npm-4.24.0-e772e759c0-10c0.zip/node_modules/rollup/",\ + "packageDependencies": [\ + ["rollup", "npm:4.24.0"],\ + ["@rollup/rollup-android-arm-eabi", "npm:4.24.0"],\ + ["@rollup/rollup-android-arm64", "npm:4.24.0"],\ + ["@rollup/rollup-darwin-arm64", "npm:4.24.0"],\ + ["@rollup/rollup-darwin-x64", "npm:4.24.0"],\ + ["@rollup/rollup-linux-arm-gnueabihf", "npm:4.24.0"],\ + ["@rollup/rollup-linux-arm-musleabihf", "npm:4.24.0"],\ + ["@rollup/rollup-linux-arm64-gnu", "npm:4.24.0"],\ + ["@rollup/rollup-linux-arm64-musl", "npm:4.24.0"],\ + ["@rollup/rollup-linux-powerpc64le-gnu", "npm:4.24.0"],\ + ["@rollup/rollup-linux-riscv64-gnu", "npm:4.24.0"],\ + ["@rollup/rollup-linux-s390x-gnu", "npm:4.24.0"],\ + ["@rollup/rollup-linux-x64-gnu", "npm:4.24.0"],\ + ["@rollup/rollup-linux-x64-musl", "npm:4.24.0"],\ + ["@rollup/rollup-win32-arm64-msvc", "npm:4.24.0"],\ + ["@rollup/rollup-win32-ia32-msvc", "npm:4.24.0"],\ + ["@rollup/rollup-win32-x64-msvc", "npm:4.24.0"],\ + ["@types/estree", "npm:1.0.6"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-copy", [\ + ["npm:3.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-copy-npm-3.5.0-a5e02864e9-10c0.zip/node_modules/rollup-plugin-copy/",\ + "packageDependencies": [\ + ["rollup-plugin-copy", "npm:3.5.0"],\ + ["@types/fs-extra", "npm:8.1.5"],\ + ["colorette", "npm:1.4.0"],\ + ["fs-extra", "npm:8.1.0"],\ + ["globby", "npm:10.0.1"],\ + ["is-plain-object", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-css-only", [\ + ["npm:4.5.2", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-css-only-npm-4.5.2-79083b45fa-10c0.zip/node_modules/rollup-plugin-css-only/",\ + "packageDependencies": [\ + ["rollup-plugin-css-only", "npm:4.5.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:4.5.2", {\ + "packageLocation": "./.yarn/__virtual__/rollup-plugin-css-only-virtual-6ba3d9671e/3/.yarn/berry/cache/rollup-plugin-css-only-npm-4.5.2-79083b45fa-10c0.zip/node_modules/rollup-plugin-css-only/",\ + "packageDependencies": [\ + ["rollup-plugin-css-only", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:4.5.2"],\ + ["@rollup/pluginutils", "virtual:750d527d164e7cf93732549e45611aacfe22c9d53a1f5ee6b485ed0411735b12f7439deadb51c7a2b0c3c228e0a49aa33453ddeec8a8a581e8a12f3b852cb660#npm:5.1.3"],\ + ["@types/rollup", null],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-livereload", [\ + ["npm:2.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-livereload-npm-2.0.5-aca78c4661-10c0.zip/node_modules/rollup-plugin-livereload/",\ + "packageDependencies": [\ + ["rollup-plugin-livereload", "npm:2.0.5"],\ + ["livereload", "npm:0.9.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-postcss", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-postcss-npm-4.0.2-6f4a722324-10c0.zip/node_modules/rollup-plugin-postcss/",\ + "packageDependencies": [\ + ["rollup-plugin-postcss", "npm:4.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:4.0.2", {\ + "packageLocation": "./.yarn/__virtual__/rollup-plugin-postcss-virtual-6d08e3d681/3/.yarn/berry/cache/rollup-plugin-postcss-npm-4.0.2-6f4a722324-10c0.zip/node_modules/rollup-plugin-postcss/",\ + "packageDependencies": [\ + ["rollup-plugin-postcss", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:4.0.2"],\ + ["@types/postcss", null],\ + ["chalk", "npm:4.1.2"],\ + ["concat-with-sourcemaps", "npm:1.1.0"],\ + ["cssnano", "virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:5.1.15"],\ + ["import-cwd", "npm:3.0.0"],\ + ["p-queue", "npm:6.6.2"],\ + ["pify", "npm:5.0.0"],\ + ["postcss", null],\ + ["postcss-load-config", "virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:3.1.4"],\ + ["postcss-modules", "virtual:6d08e3d681ca5130b01763c7f624880309cc4e3194670515e36384e22fe8c04e5ae89f1af5d692adcd1c61d93c7f92394cafa510790a19d6b635107194949cda#npm:4.3.1"],\ + ["promise.series", "npm:0.2.0"],\ + ["resolve", "patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"],\ + ["rollup-pluginutils", "npm:2.8.2"],\ + ["safe-identifier", "npm:0.4.2"],\ + ["style-inject", "npm:0.3.0"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-svelte", [\ + ["npm:7.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-svelte-npm-7.2.2-259e388070-10c0.zip/node_modules/rollup-plugin-svelte/",\ + "packageDependencies": [\ + ["rollup-plugin-svelte", "npm:7.2.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:7.2.2", {\ + "packageLocation": "./.yarn/__virtual__/rollup-plugin-svelte-virtual-4370a66f88/3/.yarn/berry/cache/rollup-plugin-svelte-npm-7.2.2-259e388070-10c0.zip/node_modules/rollup-plugin-svelte/",\ + "packageDependencies": [\ + ["rollup-plugin-svelte", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:7.2.2"],\ + ["@rollup/pluginutils", "npm:4.2.1"],\ + ["@types/rollup", null],\ + ["@types/svelte", null],\ + ["resolve.exports", "npm:2.0.2"],\ + ["rollup", "npm:3.29.5"],\ + ["svelte", "npm:3.59.2"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "@types/svelte",\ + "rollup",\ + "svelte"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-terser", [\ + ["npm:7.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-terser-npm-7.0.2-3f55469f5a-10c0.zip/node_modules/rollup-plugin-terser/",\ + "packageDependencies": [\ + ["rollup-plugin-terser", "npm:7.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:7.0.2", {\ + "packageLocation": "./.yarn/__virtual__/rollup-plugin-terser-virtual-a04180f316/3/.yarn/berry/cache/rollup-plugin-terser-npm-7.0.2-3f55469f5a-10c0.zip/node_modules/rollup-plugin-terser/",\ + "packageDependencies": [\ + ["rollup-plugin-terser", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:7.0.2"],\ + ["@babel/code-frame", "npm:7.26.0"],\ + ["@types/rollup", null],\ + ["jest-worker", "npm:26.6.2"],\ + ["rollup", "npm:3.29.5"],\ + ["serialize-javascript", "npm:4.0.0"],\ + ["terser", "npm:5.36.0"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-typescript2", [\ + ["npm:0.36.0", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-typescript2-npm-0.36.0-abc88896cb-10c0.zip/node_modules/rollup-plugin-typescript2/",\ + "packageDependencies": [\ + ["rollup-plugin-typescript2", "npm:0.36.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:0.36.0", {\ + "packageLocation": "./.yarn/__virtual__/rollup-plugin-typescript2-virtual-8898c83fd5/3/.yarn/berry/cache/rollup-plugin-typescript2-npm-0.36.0-abc88896cb-10c0.zip/node_modules/rollup-plugin-typescript2/",\ + "packageDependencies": [\ + ["rollup-plugin-typescript2", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:0.36.0"],\ + ["@rollup/pluginutils", "npm:4.2.1"],\ + ["@types/rollup", null],\ + ["@types/typescript", null],\ + ["find-cache-dir", "npm:3.3.2"],\ + ["fs-extra", "npm:10.1.0"],\ + ["rollup", "npm:3.29.5"],\ + ["semver", "npm:7.6.3"],\ + ["tslib", "npm:2.8.0"],\ + ["typescript", null]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "@types/typescript",\ + "rollup",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-plugin-web-worker-loader", [\ + ["npm:1.6.1", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-plugin-web-worker-loader-npm-1.6.1-ee2e4494aa-10c0.zip/node_modules/rollup-plugin-web-worker-loader/",\ + "packageDependencies": [\ + ["rollup-plugin-web-worker-loader", "npm:1.6.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:1.6.1", {\ + "packageLocation": "./.yarn/__virtual__/rollup-plugin-web-worker-loader-virtual-351e4fd809/3/.yarn/berry/cache/rollup-plugin-web-worker-loader-npm-1.6.1-ee2e4494aa-10c0.zip/node_modules/rollup-plugin-web-worker-loader/",\ + "packageDependencies": [\ + ["rollup-plugin-web-worker-loader", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:1.6.1"],\ + ["@types/rollup", null],\ + ["rollup", "npm:3.29.5"]\ + ],\ + "packagePeers": [\ + "@types/rollup",\ + "rollup"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rollup-pluginutils", [\ + ["npm:2.8.2", {\ + "packageLocation": "../../.yarn/berry/cache/rollup-pluginutils-npm-2.8.2-f554dd6ac5-10c0.zip/node_modules/rollup-pluginutils/",\ + "packageDependencies": [\ + ["rollup-pluginutils", "npm:2.8.2"],\ + ["estree-walker", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["run-parallel", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/run-parallel-npm-1.2.0-3f47ff2034-10c0.zip/node_modules/run-parallel/",\ + "packageDependencies": [\ + ["run-parallel", "npm:1.2.0"],\ + ["queue-microtask", "npm:1.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rxjs", [\ + ["npm:7.8.1", {\ + "packageLocation": "../../.yarn/berry/cache/rxjs-npm-7.8.1-41c443a75b-10c0.zip/node_modules/rxjs/",\ + "packageDependencies": [\ + ["rxjs", "npm:7.8.1"],\ + ["tslib", "npm:2.8.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sade", [\ + ["npm:1.8.1", {\ + "packageLocation": "../../.yarn/berry/cache/sade-npm-1.8.1-4759dc74c1-10c0.zip/node_modules/sade/",\ + "packageDependencies": [\ + ["sade", "npm:1.8.1"],\ + ["mri", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safe-buffer", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/safe-buffer-npm-5.1.2-c27fedf6c4-10c0.zip/node_modules/safe-buffer/",\ + "packageDependencies": [\ + ["safe-buffer", "npm:5.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/safe-buffer-npm-5.2.1-3481c8aa9b-10c0.zip/node_modules/safe-buffer/",\ + "packageDependencies": [\ + ["safe-buffer", "npm:5.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safe-identifier", [\ + ["npm:0.4.2", {\ + "packageLocation": "../../.yarn/berry/cache/safe-identifier-npm-0.4.2-57e7a2b138-10c0.zip/node_modules/safe-identifier/",\ + "packageDependencies": [\ + ["safe-identifier", "npm:0.4.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safe-regex", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/safe-regex-npm-1.1.0-a908e8515c-10c0.zip/node_modules/safe-regex/",\ + "packageDependencies": [\ + ["safe-regex", "npm:1.1.0"],\ + ["ret", "npm:0.1.15"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safer-buffer", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/safer-buffer-npm-2.1.2-8d5c0b705e-10c0.zip/node_modules/safer-buffer/",\ + "packageDependencies": [\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["schema-utils", [\ + ["npm:3.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/schema-utils-npm-3.3.0-f2b36937f1-10c0.zip/node_modules/schema-utils/",\ + "packageDependencies": [\ + ["schema-utils", "npm:3.3.0"],\ + ["@types/json-schema", "npm:7.0.15"],\ + ["ajv", "npm:6.12.6"],\ + ["ajv-keywords", "virtual:f2b36937f163b579815d3163513b3330d7a31aaf0599eea66346382b8838395c613f4204e9809cc2ff6bba09c17ab0c34b37deadcb147de7e2f5e535d6ccc245#npm:3.5.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/schema-utils-npm-4.2.0-e822c5b02e-10c0.zip/node_modules/schema-utils/",\ + "packageDependencies": [\ + ["schema-utils", "npm:4.2.0"],\ + ["@types/json-schema", "npm:7.0.15"],\ + ["ajv", "npm:8.17.1"],\ + ["ajv-formats", "virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:2.1.1"],\ + ["ajv-keywords", "virtual:e822c5b02ef2b3c5fb9c8d88d5e0ca208365bff76f80510f4ccf9b1de44e2078264bcb00d3cdd5e193c256e9ab81e27c34fcfb1ad3a0e8c1dc8fa0066c78c468#npm:5.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["semiver", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/semiver-npm-1.1.0-74aef11f2f-10c0.zip/node_modules/semiver/",\ + "packageDependencies": [\ + ["semiver", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["semver", [\ + ["npm:6.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/semver-npm-6.3.1-bcba31fdbe-10c0.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.6.3", {\ + "packageLocation": "../../.yarn/berry/cache/semver-npm-7.6.3-57e82c14d5-10c0.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["serialize-javascript", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/serialize-javascript-npm-4.0.0-b4aeff413b-10c0.zip/node_modules/serialize-javascript/",\ + "packageDependencies": [\ + ["serialize-javascript", "npm:4.0.0"],\ + ["randombytes", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/serialize-javascript-npm-6.0.2-cc09461d45-10c0.zip/node_modules/serialize-javascript/",\ + "packageDependencies": [\ + ["serialize-javascript", "npm:6.0.2"],\ + ["randombytes", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["set-function-length", [\ + ["npm:1.2.2", {\ + "packageLocation": "../../.yarn/berry/cache/set-function-length-npm-1.2.2-243073748b-10c0.zip/node_modules/set-function-length/",\ + "packageDependencies": [\ + ["set-function-length", "npm:1.2.2"],\ + ["define-data-property", "npm:1.1.4"],\ + ["es-errors", "npm:1.3.0"],\ + ["function-bind", "npm:1.1.2"],\ + ["get-intrinsic", "npm:1.2.4"],\ + ["gopd", "npm:1.0.1"],\ + ["has-property-descriptors", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["set-value", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/set-value-npm-2.0.1-35da5f8180-10c0.zip/node_modules/set-value/",\ + "packageDependencies": [\ + ["set-value", "npm:2.0.1"],\ + ["extend-shallow", "npm:2.0.1"],\ + ["is-extendable", "npm:0.1.1"],\ + ["is-plain-object", "npm:2.0.4"],\ + ["split-string", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["setimmediate", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../.yarn/berry/cache/setimmediate-npm-1.0.5-54587459b6-10c0.zip/node_modules/setimmediate/",\ + "packageDependencies": [\ + ["setimmediate", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sha.js", [\ + ["npm:2.2.6", {\ + "packageLocation": "../../.yarn/berry/cache/sha.js-npm-2.2.6-f467b71567-10c0.zip/node_modules/sha.js/",\ + "packageDependencies": [\ + ["sha.js", "npm:2.2.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["shebang-command", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/shebang-command-npm-1.2.0-8990ba5d1d-10c0.zip/node_modules/shebang-command/",\ + "packageDependencies": [\ + ["shebang-command", "npm:1.2.0"],\ + ["shebang-regex", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/shebang-command-npm-2.0.0-eb2b01921d-10c0.zip/node_modules/shebang-command/",\ + "packageDependencies": [\ + ["shebang-command", "npm:2.0.0"],\ + ["shebang-regex", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["shebang-regex", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/shebang-regex-npm-1.0.0-c3612b74e9-10c0.zip/node_modules/shebang-regex/",\ + "packageDependencies": [\ + ["shebang-regex", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/shebang-regex-npm-3.0.0-899a0cd65e-10c0.zip/node_modules/shebang-regex/",\ + "packageDependencies": [\ + ["shebang-regex", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["side-channel", [\ + ["npm:1.0.6", {\ + "packageLocation": "../../.yarn/berry/cache/side-channel-npm-1.0.6-511657386f-10c0.zip/node_modules/side-channel/",\ + "packageDependencies": [\ + ["side-channel", "npm:1.0.6"],\ + ["call-bind", "npm:1.0.7"],\ + ["es-errors", "npm:1.3.0"],\ + ["get-intrinsic", "npm:1.2.4"],\ + ["object-inspect", "npm:1.13.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["siginfo", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/siginfo-npm-2.0.0-9bbac931f8-10c0.zip/node_modules/siginfo/",\ + "packageDependencies": [\ + ["siginfo", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["signal-exit", [\ + ["npm:3.0.7", {\ + "packageLocation": "../../.yarn/berry/cache/signal-exit-npm-3.0.7-bd270458a3-10c0.zip/node_modules/signal-exit/",\ + "packageDependencies": [\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/signal-exit-npm-4.1.0-61fb957687-10c0.zip/node_modules/signal-exit/",\ + "packageDependencies": [\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sirv", [\ + ["npm:2.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/sirv-npm-2.0.4-cace6fe955-10c0.zip/node_modules/sirv/",\ + "packageDependencies": [\ + ["sirv", "npm:2.0.4"],\ + ["@polka/url", "npm:1.0.0-next.28"],\ + ["mrmime", "npm:2.0.0"],\ + ["totalist", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/sirv-npm-3.0.0-5773cccdab-10c0.zip/node_modules/sirv/",\ + "packageDependencies": [\ + ["sirv", "npm:3.0.0"],\ + ["@polka/url", "npm:1.0.0-next.28"],\ + ["mrmime", "npm:2.0.0"],\ + ["totalist", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sirv-cli", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/sirv-cli-npm-2.0.2-28b0baab72-10c0.zip/node_modules/sirv-cli/",\ + "packageDependencies": [\ + ["sirv-cli", "npm:2.0.2"],\ + ["console-clear", "npm:1.1.1"],\ + ["get-port", "npm:3.2.0"],\ + ["kleur", "npm:4.1.5"],\ + ["local-access", "npm:1.1.0"],\ + ["sade", "npm:1.8.1"],\ + ["semiver", "npm:1.1.0"],\ + ["sirv", "npm:2.0.4"],\ + ["tinydate", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["slash", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/slash-npm-3.0.0-b87de2279a-10c0.zip/node_modules/slash/",\ + "packageDependencies": [\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["smart-buffer", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/smart-buffer-npm-4.2.0-5ac3f668bb-10c0.zip/node_modules/smart-buffer/",\ + "packageDependencies": [\ + ["smart-buffer", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["smob", [\ + ["npm:1.5.0", {\ + "packageLocation": "../../.yarn/berry/cache/smob-npm-1.5.0-acdaaf382d-10c0.zip/node_modules/smob/",\ + "packageDependencies": [\ + ["smob", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["snapdragon", [\ + ["npm:0.8.2", {\ + "packageLocation": "../../.yarn/berry/cache/snapdragon-npm-0.8.2-2bcc47d217-10c0.zip/node_modules/snapdragon/",\ + "packageDependencies": [\ + ["snapdragon", "npm:0.8.2"],\ + ["base", "npm:0.11.2"],\ + ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"],\ + ["define-property", "npm:0.2.5"],\ + ["extend-shallow", "npm:2.0.1"],\ + ["map-cache", "npm:0.2.2"],\ + ["source-map", "npm:0.5.7"],\ + ["source-map-resolve", "npm:0.5.3"],\ + ["use", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["snapdragon-node", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/snapdragon-node-npm-2.1.1-78bc70e8e2-10c0.zip/node_modules/snapdragon-node/",\ + "packageDependencies": [\ + ["snapdragon-node", "npm:2.1.1"],\ + ["define-property", "npm:1.0.0"],\ + ["isobject", "npm:3.0.1"],\ + ["snapdragon-util", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["snapdragon-util", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/snapdragon-util-npm-3.0.1-36b5a7829d-10c0.zip/node_modules/snapdragon-util/",\ + "packageDependencies": [\ + ["snapdragon-util", "npm:3.0.1"],\ + ["kind-of", "npm:3.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["socks", [\ + ["npm:2.8.3", {\ + "packageLocation": "../../.yarn/berry/cache/socks-npm-2.8.3-3532b59899-10c0.zip/node_modules/socks/",\ + "packageDependencies": [\ + ["socks", "npm:2.8.3"],\ + ["ip-address", "npm:9.0.5"],\ + ["smart-buffer", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["socks-proxy-agent", [\ + ["npm:8.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/socks-proxy-agent-npm-8.0.4-991722041a-10c0.zip/node_modules/socks-proxy-agent/",\ + "packageDependencies": [\ + ["socks-proxy-agent", "npm:8.0.4"],\ + ["agent-base", "npm:7.1.1"],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["socks", "npm:2.8.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-list-map", [\ + ["npm:0.1.8", {\ + "packageLocation": "../../.yarn/berry/cache/source-list-map-npm-0.1.8-5243616e04-10c0.zip/node_modules/source-list-map/",\ + "packageDependencies": [\ + ["source-list-map", "npm:0.1.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map", [\ + ["npm:0.4.4", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-npm-0.4.4-59e8684985-10c0.zip/node_modules/source-map/",\ + "packageDependencies": [\ + ["source-map", "npm:0.4.4"],\ + ["amdefine", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.5.7", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-npm-0.5.7-7c3f035429-10c0.zip/node_modules/source-map/",\ + "packageDependencies": [\ + ["source-map", "npm:0.5.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.6.1", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-npm-0.6.1-1a3621db16-10c0.zip/node_modules/source-map/",\ + "packageDependencies": [\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.7.4", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-npm-0.7.4-bc8d018ab6-10c0.zip/node_modules/source-map/",\ + "packageDependencies": [\ + ["source-map", "npm:0.7.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map-js", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-js-npm-1.2.1-b9a47d7e1a-10c0.zip/node_modules/source-map-js/",\ + "packageDependencies": [\ + ["source-map-js", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map-resolve", [\ + ["npm:0.5.3", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-resolve-npm-0.5.3-6502ae65ba-10c0.zip/node_modules/source-map-resolve/",\ + "packageDependencies": [\ + ["source-map-resolve", "npm:0.5.3"],\ + ["atob", "npm:2.1.2"],\ + ["decode-uri-component", "npm:0.2.2"],\ + ["resolve-url", "npm:0.2.1"],\ + ["source-map-url", "npm:0.4.1"],\ + ["urix", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map-support", [\ + ["npm:0.5.21", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-support-npm-0.5.21-09ca99e250-10c0.zip/node_modules/source-map-support/",\ + "packageDependencies": [\ + ["source-map-support", "npm:0.5.21"],\ + ["buffer-from", "npm:1.1.2"],\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map-url", [\ + ["npm:0.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/source-map-url-npm-0.4.1-747a1f6eba-10c0.zip/node_modules/source-map-url/",\ + "packageDependencies": [\ + ["source-map-url", "npm:0.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["spawndamnit", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/spawndamnit-npm-2.0.0-fbea5414ee-10c0.zip/node_modules/spawndamnit/",\ + "packageDependencies": [\ + ["spawndamnit", "npm:2.0.0"],\ + ["cross-spawn", "npm:5.1.0"],\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["split-string", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/split-string-npm-3.1.0-df5d83450e-10c0.zip/node_modules/split-string/",\ + "packageDependencies": [\ + ["split-string", "npm:3.1.0"],\ + ["extend-shallow", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sprintf-js", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/sprintf-js-npm-1.0.3-73f0a322fa-10c0.zip/node_modules/sprintf-js/",\ + "packageDependencies": [\ + ["sprintf-js", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/sprintf-js-npm-1.1.3-b99efd75b2-10c0.zip/node_modules/sprintf-js/",\ + "packageDependencies": [\ + ["sprintf-js", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ssri", [\ + ["npm:10.0.6", {\ + "packageLocation": "../../.yarn/berry/cache/ssri-npm-10.0.6-6b8eaec5ce-10c0.zip/node_modules/ssri/",\ + "packageDependencies": [\ + ["ssri", "npm:10.0.6"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["stable", [\ + ["npm:0.1.8", {\ + "packageLocation": "../../.yarn/berry/cache/stable-npm-0.1.8-feb4e06de8-10c0.zip/node_modules/stable/",\ + "packageDependencies": [\ + ["stable", "npm:0.1.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["stackback", [\ + ["npm:0.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/stackback-npm-0.0.2-73273dc92e-10c0.zip/node_modules/stackback/",\ + "packageDependencies": [\ + ["stackback", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["static-extend", [\ + ["npm:0.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/static-extend-npm-0.1.2-2720ee6882-10c0.zip/node_modules/static-extend/",\ + "packageDependencies": [\ + ["static-extend", "npm:0.1.2"],\ + ["define-property", "npm:0.2.5"],\ + ["object-copy", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["std-env", [\ + ["npm:3.7.0", {\ + "packageLocation": "../../.yarn/berry/cache/std-env-npm-3.7.0-5261c3c3c3-10c0.zip/node_modules/std-env/",\ + "packageDependencies": [\ + ["std-env", "npm:3.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["stream-browserify", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/stream-browserify-npm-2.0.2-145ceec889-10c0.zip/node_modules/stream-browserify/",\ + "packageDependencies": [\ + ["stream-browserify", "npm:2.0.2"],\ + ["inherits", "npm:2.0.4"],\ + ["readable-stream", "npm:2.3.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["stream-http", [\ + ["npm:2.8.3", {\ + "packageLocation": "../../.yarn/berry/cache/stream-http-npm-2.8.3-7691e2a9d5-10c0.zip/node_modules/stream-http/",\ + "packageDependencies": [\ + ["stream-http", "npm:2.8.3"],\ + ["builtin-status-codes", "npm:3.0.0"],\ + ["inherits", "npm:2.0.4"],\ + ["readable-stream", "npm:2.3.8"],\ + ["to-arraybuffer", "npm:1.0.1"],\ + ["xtend", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string-hash", [\ + ["npm:1.1.3", {\ + "packageLocation": "../../.yarn/berry/cache/string-hash-npm-1.1.3-3cb8892e7c-10c0.zip/node_modules/string-hash/",\ + "packageDependencies": [\ + ["string-hash", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string-width", [\ + ["npm:4.2.3", {\ + "packageLocation": "../../.yarn/berry/cache/string-width-npm-4.2.3-2c27177bae-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["string-width", "npm:4.2.3"],\ + ["emoji-regex", "npm:8.0.0"],\ + ["is-fullwidth-code-point", "npm:3.0.0"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/string-width-npm-5.1.2-bf60531341-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["string-width", "npm:5.1.2"],\ + ["eastasianwidth", "npm:0.2.0"],\ + ["emoji-regex", "npm:9.2.2"],\ + ["strip-ansi", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string_decoder", [\ + ["npm:0.10.31", {\ + "packageLocation": "../../.yarn/berry/cache/string_decoder-npm-0.10.31-851f3f7302-10c0.zip/node_modules/string_decoder/",\ + "packageDependencies": [\ + ["string_decoder", "npm:0.10.31"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/string_decoder-npm-1.1.1-e46a6c1353-10c0.zip/node_modules/string_decoder/",\ + "packageDependencies": [\ + ["string_decoder", "npm:1.1.1"],\ + ["safe-buffer", "npm:5.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-ansi", [\ + ["npm:6.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/strip-ansi-npm-6.0.1-caddc7cb40-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["strip-ansi", "npm:6.0.1"],\ + ["ansi-regex", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/strip-ansi-npm-7.1.0-7453b80b79-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["strip-ansi", "npm:7.1.0"],\ + ["ansi-regex", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-bom", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/strip-bom-npm-3.0.0-71e8f81ff9-10c0.zip/node_modules/strip-bom/",\ + "packageDependencies": [\ + ["strip-bom", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-comments", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/strip-comments-npm-2.0.1-7f4e6e5047-10c0.zip/node_modules/strip-comments/",\ + "packageDependencies": [\ + ["strip-comments", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["style-inject", [\ + ["npm:0.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/style-inject-npm-0.3.0-e2042d3aac-10c0.zip/node_modules/style-inject/",\ + "packageDependencies": [\ + ["style-inject", "npm:0.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["stylehacks", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/stylehacks-npm-5.1.1-1ee6c88174-10c0.zip/node_modules/stylehacks/",\ + "packageDependencies": [\ + ["stylehacks", "npm:5.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:d2e6df995ba739c27d7d6025bd0a64fd3fe456a9b90027a9ac78537b01e5ef25e4298826d3c19321e64e9dc2fd294e5ab7de5bfa921924c78729bb6fa0dc5073#npm:5.1.1", {\ + "packageLocation": "./.yarn/__virtual__/stylehacks-virtual-ac5a854e7c/3/.yarn/berry/cache/stylehacks-npm-5.1.1-1ee6c88174-10c0.zip/node_modules/stylehacks/",\ + "packageDependencies": [\ + ["stylehacks", "virtual:d2e6df995ba739c27d7d6025bd0a64fd3fe456a9b90027a9ac78537b01e5ef25e4298826d3c19321e64e9dc2fd294e5ab7de5bfa921924c78729bb6fa0dc5073#npm:5.1.1"],\ + ["@types/postcss", null],\ + ["browserslist", "npm:4.24.2"],\ + ["postcss", null],\ + ["postcss-selector-parser", "npm:6.1.2"]\ + ],\ + "packagePeers": [\ + "@types/postcss",\ + "postcss"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["supports-color", [\ + ["npm:3.2.3", {\ + "packageLocation": "../../.yarn/berry/cache/supports-color-npm-3.2.3-117b06af49-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["supports-color", "npm:3.2.3"],\ + ["has-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/supports-color-npm-7.2.0-606bfcf7da-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["supports-color", "npm:7.2.0"],\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/supports-color-npm-8.1.1-289e937149-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["supports-color", "npm:8.1.1"],\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["supports-preserve-symlinks-flag", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-10c0.zip/node_modules/supports-preserve-symlinks-flag/",\ + "packageDependencies": [\ + ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["svelte", [\ + ["npm:3.59.2", {\ + "packageLocation": "../../.yarn/berry/cache/svelte-npm-3.59.2-a73aa43ac6-10c0.zip/node_modules/svelte/",\ + "packageDependencies": [\ + ["svelte", "npm:3.59.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.2.19", {\ + "packageLocation": "../../.yarn/berry/cache/svelte-npm-4.2.19-76d73d0a72-10c0.zip/node_modules/svelte/",\ + "packageDependencies": [\ + ["svelte", "npm:4.2.19"],\ + ["@ampproject/remapping", "npm:2.3.0"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@types/estree", "npm:1.0.6"],\ + ["acorn", "npm:8.13.0"],\ + ["aria-query", "npm:5.3.2"],\ + ["axobject-query", "npm:4.1.0"],\ + ["code-red", "npm:1.0.4"],\ + ["css-tree", "npm:2.3.1"],\ + ["estree-walker", "npm:3.0.3"],\ + ["is-reference", "npm:3.0.2"],\ + ["locate-character", "npm:3.0.0"],\ + ["magic-string", "npm:0.30.12"],\ + ["periscopic", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["svelte-dev-helper", [\ + ["npm:1.1.9", {\ + "packageLocation": "../../.yarn/berry/cache/svelte-dev-helper-npm-1.1.9-0d89e4735c-10c0.zip/node_modules/svelte-dev-helper/",\ + "packageDependencies": [\ + ["svelte-dev-helper", "npm:1.1.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["svelte-hmr", [\ + ["npm:0.14.12", {\ + "packageLocation": "../../.yarn/berry/cache/svelte-hmr-npm-0.14.12-8ba5965da8-10c0.zip/node_modules/svelte-hmr/",\ + "packageDependencies": [\ + ["svelte-hmr", "npm:0.14.12"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:9426291872b1017e9e8510b42f7248f3e18e00ddd198c0262e1d03b68caaa75dfbcba9fd7a47977e96ffb23a7bb54203e58ea132452d61b0f4c5658fe6b8cc67#npm:0.14.12", {\ + "packageLocation": "./.yarn/__virtual__/svelte-hmr-virtual-6e14d8670f/3/.yarn/berry/cache/svelte-hmr-npm-0.14.12-8ba5965da8-10c0.zip/node_modules/svelte-hmr/",\ + "packageDependencies": [\ + ["svelte-hmr", "virtual:9426291872b1017e9e8510b42f7248f3e18e00ddd198c0262e1d03b68caaa75dfbcba9fd7a47977e96ffb23a7bb54203e58ea132452d61b0f4c5658fe6b8cc67#npm:0.14.12"],\ + ["@types/svelte", null],\ + ["svelte", "npm:4.2.19"]\ + ],\ + "packagePeers": [\ + "@types/svelte",\ + "svelte"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["svelte-loader", [\ + ["npm:3.2.4", {\ + "packageLocation": "../../.yarn/berry/cache/svelte-loader-npm-3.2.4-870c4c929d-10c0.zip/node_modules/svelte-loader/",\ + "packageDependencies": [\ + ["svelte-loader", "npm:3.2.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:3.2.4", {\ + "packageLocation": "./.yarn/__virtual__/svelte-loader-virtual-9426291872/3/.yarn/berry/cache/svelte-loader-npm-3.2.4-870c4c929d-10c0.zip/node_modules/svelte-loader/",\ + "packageDependencies": [\ + ["svelte-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:3.2.4"],\ + ["@types/svelte", null],\ + ["loader-utils", "npm:2.0.4"],\ + ["svelte", "npm:4.2.19"],\ + ["svelte-dev-helper", "npm:1.1.9"],\ + ["svelte-hmr", "virtual:9426291872b1017e9e8510b42f7248f3e18e00ddd198c0262e1d03b68caaa75dfbcba9fd7a47977e96ffb23a7bb54203e58ea132452d61b0f4c5658fe6b8cc67#npm:0.14.12"]\ + ],\ + "packagePeers": [\ + "@types/svelte",\ + "svelte"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["svelte-preprocess", [\ + ["npm:6.0.2", {\ + "packageLocation": "./.yarn/unplugged/svelte-preprocess-virtual-14139bc95d/node_modules/svelte-preprocess/",\ + "packageDependencies": [\ + ["svelte-preprocess", "npm:6.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:6.0.2", {\ + "packageLocation": "./.yarn/unplugged/svelte-preprocess-virtual-14139bc95d/node_modules/svelte-preprocess/",\ + "packageDependencies": [\ + ["svelte-preprocess", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:6.0.2"],\ + ["@babel/core", null],\ + ["@types/babel__core", null],\ + ["@types/coffeescript", null],\ + ["@types/less", null],\ + ["@types/postcss", null],\ + ["@types/postcss-load-config", null],\ + ["@types/pug", null],\ + ["@types/sass", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/svelte", null],\ + ["@types/typescript", null],\ + ["coffeescript", null],\ + ["less", null],\ + ["postcss", null],\ + ["postcss-load-config", null],\ + ["pug", null],\ + ["sass", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["svelte", "npm:3.59.2"],\ + ["typescript", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core",\ + "@types/coffeescript",\ + "@types/less",\ + "@types/postcss-load-config",\ + "@types/postcss",\ + "@types/pug",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/svelte",\ + "@types/typescript",\ + "coffeescript",\ + "less",\ + "postcss-load-config",\ + "postcss",\ + "pug",\ + "sass",\ + "stylus",\ + "sugarss",\ + "svelte",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["svgo", [\ + ["npm:2.8.0", {\ + "packageLocation": "../../.yarn/berry/cache/svgo-npm-2.8.0-43b4f3debe-10c0.zip/node_modules/svgo/",\ + "packageDependencies": [\ + ["svgo", "npm:2.8.0"],\ + ["@trysound/sax", "npm:0.2.0"],\ + ["commander", "npm:7.2.0"],\ + ["css-select", "npm:4.3.0"],\ + ["css-tree", "npm:1.1.3"],\ + ["csso", "npm:4.2.0"],\ + ["picocolors", "npm:1.1.1"],\ + ["stable", "npm:0.1.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tapable", [\ + ["npm:0.1.10", {\ + "packageLocation": "../../.yarn/berry/cache/tapable-npm-0.1.10-94511b25cb-10c0.zip/node_modules/tapable/",\ + "packageDependencies": [\ + ["tapable", "npm:0.1.10"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/tapable-npm-2.2.1-8cf5ff3039-10c0.zip/node_modules/tapable/",\ + "packageDependencies": [\ + ["tapable", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tar", [\ + ["npm:6.2.1", {\ + "packageLocation": "../../.yarn/berry/cache/tar-npm-6.2.1-237800bb20-10c0.zip/node_modules/tar/",\ + "packageDependencies": [\ + ["tar", "npm:6.2.1"],\ + ["chownr", "npm:2.0.0"],\ + ["fs-minipass", "npm:2.1.0"],\ + ["minipass", "npm:5.0.0"],\ + ["minizlib", "npm:2.1.2"],\ + ["mkdirp", "npm:1.0.4"],\ + ["yallist", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["term-size", [\ + ["npm:2.2.1", {\ + "packageLocation": "./.yarn/unplugged/term-size-npm-2.2.1-77ce7141d0/node_modules/term-size/",\ + "packageDependencies": [\ + ["term-size", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["terser", [\ + ["npm:5.36.0", {\ + "packageLocation": "../../.yarn/berry/cache/terser-npm-5.36.0-e5678e2258-10c0.zip/node_modules/terser/",\ + "packageDependencies": [\ + ["terser", "npm:5.36.0"],\ + ["@jridgewell/source-map", "npm:0.3.6"],\ + ["acorn", "npm:8.13.0"],\ + ["commander", "npm:2.20.3"],\ + ["source-map-support", "npm:0.5.21"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["terser-webpack-plugin", [\ + ["npm:5.3.10", {\ + "packageLocation": "../../.yarn/berry/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-10c0.zip/node_modules/terser-webpack-plugin/",\ + "packageDependencies": [\ + ["terser-webpack-plugin", "npm:5.3.10"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:a30eb07853fb4327b539fbe6d1a8e64a6bbc42d4aef9af6899bb0e5b7383c1f34a01762dd241c3be355113817444fe398510e7ba3bfe85e0d91ab55b7c3d7a7e#npm:5.3.10", {\ + "packageLocation": "./.yarn/__virtual__/terser-webpack-plugin-virtual-251453b026/3/.yarn/berry/cache/terser-webpack-plugin-npm-5.3.10-3bde1920fb-10c0.zip/node_modules/terser-webpack-plugin/",\ + "packageDependencies": [\ + ["terser-webpack-plugin", "virtual:a30eb07853fb4327b539fbe6d1a8e64a6bbc42d4aef9af6899bb0e5b7383c1f34a01762dd241c3be355113817444fe398510e7ba3bfe85e0d91ab55b7c3d7a7e#npm:5.3.10"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@swc/core", null],\ + ["@types/esbuild", null],\ + ["@types/swc__core", null],\ + ["@types/uglify-js", null],\ + ["@types/webpack", null],\ + ["esbuild", null],\ + ["jest-worker", "npm:27.5.1"],\ + ["schema-utils", "npm:3.3.0"],\ + ["serialize-javascript", "npm:6.0.2"],\ + ["terser", "npm:5.36.0"],\ + ["uglify-js", null],\ + ["webpack", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.94.0"]\ + ],\ + "packagePeers": [\ + "@swc/core",\ + "@types/esbuild",\ + "@types/swc__core",\ + "@types/uglify-js",\ + "@types/webpack",\ + "esbuild",\ + "uglify-js",\ + "webpack"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["timers-browserify", [\ + ["npm:2.0.12", {\ + "packageLocation": "../../.yarn/berry/cache/timers-browserify-npm-2.0.12-ad02d37cc3-10c0.zip/node_modules/timers-browserify/",\ + "packageDependencies": [\ + ["timers-browserify", "npm:2.0.12"],\ + ["setimmediate", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinybench", [\ + ["npm:2.9.0", {\ + "packageLocation": "../../.yarn/berry/cache/tinybench-npm-2.9.0-2861a048db-10c0.zip/node_modules/tinybench/",\ + "packageDependencies": [\ + ["tinybench", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinydate", [\ + ["npm:1.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/tinydate-npm-1.3.0-73c251f97d-10c0.zip/node_modules/tinydate/",\ + "packageDependencies": [\ + ["tinydate", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyexec", [\ + ["npm:0.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/tinyexec-npm-0.3.1-13938c6dae-10c0.zip/node_modules/tinyexec/",\ + "packageDependencies": [\ + ["tinyexec", "npm:0.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinypool", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/tinypool-npm-1.0.1-d26e93a818-10c0.zip/node_modules/tinypool/",\ + "packageDependencies": [\ + ["tinypool", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyrainbow", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../.yarn/berry/cache/tinyrainbow-npm-1.2.0-456cccee06-10c0.zip/node_modules/tinyrainbow/",\ + "packageDependencies": [\ + ["tinyrainbow", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tinyspy", [\ + ["npm:3.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/tinyspy-npm-3.0.2-4f17593a18-10c0.zip/node_modules/tinyspy/",\ + "packageDependencies": [\ + ["tinyspy", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tmp", [\ + ["npm:0.0.33", {\ + "packageLocation": "../../.yarn/berry/cache/tmp-npm-0.0.33-bcbf65df2a-10c0.zip/node_modules/tmp/",\ + "packageDependencies": [\ + ["tmp", "npm:0.0.33"],\ + ["os-tmpdir", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["to-arraybuffer", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/to-arraybuffer-npm-1.0.1-a57b097c21-10c0.zip/node_modules/to-arraybuffer/",\ + "packageDependencies": [\ + ["to-arraybuffer", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["to-object-path", [\ + ["npm:0.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/to-object-path-npm-0.3.0-241b5ffa9c-10c0.zip/node_modules/to-object-path/",\ + "packageDependencies": [\ + ["to-object-path", "npm:0.3.0"],\ + ["kind-of", "npm:3.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["to-regex", [\ + ["npm:3.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/to-regex-npm-3.0.2-3af893c972-10c0.zip/node_modules/to-regex/",\ + "packageDependencies": [\ + ["to-regex", "npm:3.0.2"],\ + ["define-property", "npm:2.0.2"],\ + ["extend-shallow", "npm:3.0.2"],\ + ["regex-not", "npm:1.0.2"],\ + ["safe-regex", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["to-regex-range", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/to-regex-range-npm-2.1.1-60af4c593e-10c0.zip/node_modules/to-regex-range/",\ + "packageDependencies": [\ + ["to-regex-range", "npm:2.1.1"],\ + ["is-number", "npm:3.0.0"],\ + ["repeat-string", "npm:1.6.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/to-regex-range-npm-5.0.1-f1e8263b00-10c0.zip/node_modules/to-regex-range/",\ + "packageDependencies": [\ + ["to-regex-range", "npm:5.0.1"],\ + ["is-number", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["totalist", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/totalist-npm-3.0.1-91e71f3baa-10c0.zip/node_modules/totalist/",\ + "packageDependencies": [\ + ["totalist", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ts-loader", [\ + ["npm:9.5.1", {\ + "packageLocation": "../../.yarn/berry/cache/ts-loader-npm-9.5.1-c8a0456e30-10c0.zip/node_modules/ts-loader/",\ + "packageDependencies": [\ + ["ts-loader", "npm:9.5.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:9.5.1", {\ + "packageLocation": "./.yarn/__virtual__/ts-loader-virtual-403d72e85a/3/.yarn/berry/cache/ts-loader-npm-9.5.1-c8a0456e30-10c0.zip/node_modules/ts-loader/",\ + "packageDependencies": [\ + ["ts-loader", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:9.5.1"],\ + ["@types/typescript", null],\ + ["@types/webpack", null],\ + ["chalk", "npm:4.1.2"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["micromatch", "npm:4.0.8"],\ + ["semver", "npm:7.6.3"],\ + ["source-map", "npm:0.7.4"],\ + ["typescript", "patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40"],\ + ["webpack", null]\ + ],\ + "packagePeers": [\ + "@types/typescript",\ + "@types/webpack",\ + "typescript",\ + "webpack"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tslib", [\ + ["npm:2.8.0", {\ + "packageLocation": "../../.yarn/berry/cache/tslib-npm-2.8.0-6ce3ffdd05-10c0.zip/node_modules/tslib/",\ + "packageDependencies": [\ + ["tslib", "npm:2.8.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tty-browserify", [\ + ["npm:0.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/tty-browserify-npm-0.0.0-684371f6ca-10c0.zip/node_modules/tty-browserify/",\ + "packageDependencies": [\ + ["tty-browserify", "npm:0.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["typescript", [\ + ["patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40", {\ + "packageLocation": "../../.yarn/berry/cache/typescript-patch-9bf73ea0aa-10c0.zip/node_modules/typescript/",\ + "packageDependencies": [\ + ["typescript", "patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["uglify-js", [\ + ["npm:2.7.5", {\ + "packageLocation": "../../.yarn/berry/cache/uglify-js-npm-2.7.5-aec3f39f56-10c0.zip/node_modules/uglify-js/",\ + "packageDependencies": [\ + ["uglify-js", "npm:2.7.5"],\ + ["async", "npm:0.2.10"],\ + ["source-map", "npm:0.5.7"],\ + ["uglify-to-browserify", "npm:1.0.2"],\ + ["yargs", "npm:3.10.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["uglify-to-browserify", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/uglify-to-browserify-npm-1.0.2-eb12e36aec-10c0.zip/node_modules/uglify-to-browserify/",\ + "packageDependencies": [\ + ["uglify-to-browserify", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["undici-types", [\ + ["npm:6.19.8", {\ + "packageLocation": "../../.yarn/berry/cache/undici-types-npm-6.19.8-9f12285b7a-10c0.zip/node_modules/undici-types/",\ + "packageDependencies": [\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["union-value", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/union-value-npm-1.0.1-76c6e8a88f-10c0.zip/node_modules/union-value/",\ + "packageDependencies": [\ + ["union-value", "npm:1.0.1"],\ + ["arr-union", "npm:3.1.0"],\ + ["get-value", "npm:2.0.6"],\ + ["is-extendable", "npm:0.1.1"],\ + ["set-value", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["unique-filename", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/unique-filename-npm-3.0.0-77d68e0a45-10c0.zip/node_modules/unique-filename/",\ + "packageDependencies": [\ + ["unique-filename", "npm:3.0.0"],\ + ["unique-slug", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["unique-slug", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/unique-slug-npm-4.0.0-e6b08f28aa-10c0.zip/node_modules/unique-slug/",\ + "packageDependencies": [\ + ["unique-slug", "npm:4.0.0"],\ + ["imurmurhash", "npm:0.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["universalify", [\ + ["npm:0.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/universalify-npm-0.1.2-9b22d31d2d-10c0.zip/node_modules/universalify/",\ + "packageDependencies": [\ + ["universalify", "npm:0.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "../../.yarn/berry/cache/universalify-npm-2.0.1-040ba5a21e-10c0.zip/node_modules/universalify/",\ + "packageDependencies": [\ + ["universalify", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["unset-value", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/unset-value-npm-1.0.0-2af803b920-10c0.zip/node_modules/unset-value/",\ + "packageDependencies": [\ + ["unset-value", "npm:1.0.0"],\ + ["has-value", "npm:0.3.1"],\ + ["isobject", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["update-browserslist-db", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/update-browserslist-db-npm-1.1.1-16e34017b1-10c0.zip/node_modules/update-browserslist-db/",\ + "packageDependencies": [\ + ["update-browserslist-db", "npm:1.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:0bc5f13e3b070c660ccf3396ff30b6fc44ede2343c6543d593ce4624807ab1bafdbcd764ac20b4d55e6854e63e2568f1c6d09371eb639766b95e2d401b5b05cb#npm:1.1.1", {\ + "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-594dc17320/3/.yarn/berry/cache/update-browserslist-db-npm-1.1.1-16e34017b1-10c0.zip/node_modules/update-browserslist-db/",\ + "packageDependencies": [\ + ["update-browserslist-db", "virtual:0bc5f13e3b070c660ccf3396ff30b6fc44ede2343c6543d593ce4624807ab1bafdbcd764ac20b4d55e6854e63e2568f1c6d09371eb639766b95e2d401b5b05cb#npm:1.1.1"],\ + ["@types/browserslist", null],\ + ["browserslist", "npm:4.24.2"],\ + ["escalade", "npm:3.2.0"],\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "packagePeers": [\ + "@types/browserslist",\ + "browserslist"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["uri-js", [\ + ["npm:4.4.1", {\ + "packageLocation": "../../.yarn/berry/cache/uri-js-npm-4.4.1-66d11cbcaf-10c0.zip/node_modules/uri-js/",\ + "packageDependencies": [\ + ["uri-js", "npm:4.4.1"],\ + ["punycode", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["urix", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/urix-npm-0.1.0-bd5e55a13a-10c0.zip/node_modules/urix/",\ + "packageDependencies": [\ + ["urix", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["url", [\ + ["npm:0.11.4", {\ + "packageLocation": "../../.yarn/berry/cache/url-npm-0.11.4-706538be7c-10c0.zip/node_modules/url/",\ + "packageDependencies": [\ + ["url", "npm:0.11.4"],\ + ["punycode", "npm:1.4.1"],\ + ["qs", "npm:6.13.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["use", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/use-npm-3.1.1-7ba643714c-10c0.zip/node_modules/use/",\ + "packageDependencies": [\ + ["use", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["util", [\ + ["npm:0.10.4", {\ + "packageLocation": "../../.yarn/berry/cache/util-npm-0.10.4-7c577db41a-10c0.zip/node_modules/util/",\ + "packageDependencies": [\ + ["util", "npm:0.10.4"],\ + ["inherits", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["util-deprecate", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/util-deprecate-npm-1.0.2-e3fe1a219c-10c0.zip/node_modules/util-deprecate/",\ + "packageDependencies": [\ + ["util-deprecate", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vite", [\ + ["npm:5.4.10", {\ + "packageLocation": "../../.yarn/berry/cache/vite-npm-5.4.10-30d2e3a4e2-10c0.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "npm:5.4.10"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-a258f647fa/3/.yarn/berry/cache/vite-npm-5.4.10-30d2e3a4e2-10c0.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10"],\ + ["@types/less", null],\ + ["@types/lightningcss", null],\ + ["@types/node", "npm:22.5.5"],\ + ["@types/sass", null],\ + ["@types/sass-embedded", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/terser", null],\ + ["esbuild", "npm:0.21.5"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["less", null],\ + ["lightningcss", null],\ + ["postcss", "npm:8.4.47"],\ + ["rollup", "npm:4.24.0"],\ + ["sass", null],\ + ["sass-embedded", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["terser", "npm:5.36.0"]\ + ],\ + "packagePeers": [\ + "@types/less",\ + "@types/lightningcss",\ + "@types/node",\ + "@types/sass-embedded",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/terser",\ + "less",\ + "lightningcss",\ + "sass-embedded",\ + "sass",\ + "stylus",\ + "sugarss",\ + "terser"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:5.4.10", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-188739487a/3/.yarn/berry/cache/vite-npm-5.4.10-30d2e3a4e2-10c0.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:5.4.10"],\ + ["@types/less", null],\ + ["@types/lightningcss", null],\ + ["@types/node", "npm:22.5.5"],\ + ["@types/sass", null],\ + ["@types/sass-embedded", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/terser", null],\ + ["esbuild", "npm:0.21.5"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["less", null],\ + ["lightningcss", null],\ + ["postcss", "npm:8.4.47"],\ + ["rollup", "npm:4.24.0"],\ + ["sass", null],\ + ["sass-embedded", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["terser", null]\ + ],\ + "packagePeers": [\ + "@types/less",\ + "@types/lightningcss",\ + "@types/node",\ + "@types/sass-embedded",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/terser",\ + "less",\ + "lightningcss",\ + "sass-embedded",\ + "sass",\ + "stylus",\ + "sugarss",\ + "terser"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:ed03a7aaf4a0407e5bc95e96b20006302c3bef9d0b2da597b0d0023d3b23df044cd2d4225dc5a7a366308da964c370368a5d855a11777bea860a955292beb3b8#npm:5.4.10", {\ + "packageLocation": "./.yarn/__virtual__/vite-virtual-badcaaa0a7/3/.yarn/berry/cache/vite-npm-5.4.10-30d2e3a4e2-10c0.zip/node_modules/vite/",\ + "packageDependencies": [\ + ["vite", "virtual:ed03a7aaf4a0407e5bc95e96b20006302c3bef9d0b2da597b0d0023d3b23df044cd2d4225dc5a7a366308da964c370368a5d855a11777bea860a955292beb3b8#npm:5.4.10"],\ + ["@types/less", null],\ + ["@types/lightningcss", null],\ + ["@types/node", null],\ + ["@types/sass", null],\ + ["@types/sass-embedded", null],\ + ["@types/stylus", null],\ + ["@types/sugarss", null],\ + ["@types/terser", null],\ + ["esbuild", "npm:0.21.5"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["less", null],\ + ["lightningcss", null],\ + ["postcss", "npm:8.4.47"],\ + ["rollup", "npm:4.24.0"],\ + ["sass", null],\ + ["sass-embedded", null],\ + ["stylus", null],\ + ["sugarss", null],\ + ["terser", null]\ + ],\ + "packagePeers": [\ + "@types/less",\ + "@types/lightningcss",\ + "@types/node",\ + "@types/sass-embedded",\ + "@types/sass",\ + "@types/stylus",\ + "@types/sugarss",\ + "@types/terser",\ + "less",\ + "lightningcss",\ + "sass-embedded",\ + "sass",\ + "stylus",\ + "sugarss",\ + "terser"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vite-node", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/vite-node-npm-2.1.1-ed03a7aaf4-10c0.zip/node_modules/vite-node/",\ + "packageDependencies": [\ + ["vite-node", "npm:2.1.1"],\ + ["cac", "npm:6.7.14"],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["pathe", "npm:1.1.2"],\ + ["vite", "virtual:ed03a7aaf4a0407e5bc95e96b20006302c3bef9d0b2da597b0d0023d3b23df044cd2d4225dc5a7a366308da964c370368a5d855a11777bea860a955292beb3b8#npm:5.4.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vitefu", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/vitefu-npm-1.0.3-8a57600f67-10c0.zip/node_modules/vitefu/",\ + "packageDependencies": [\ + ["vitefu", "npm:1.0.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:b889bcd70dc10003816fb705414b5b4562aafbcc61f0c8e100a2c52d60df150cb17f4cf1023cc022fb6ed397f307defa024d662c527cadfa64e40d90936f2de3#npm:1.0.3", {\ + "packageLocation": "./.yarn/__virtual__/vitefu-virtual-93e4d68b18/3/.yarn/berry/cache/vitefu-npm-1.0.3-8a57600f67-10c0.zip/node_modules/vitefu/",\ + "packageDependencies": [\ + ["vitefu", "virtual:b889bcd70dc10003816fb705414b5b4562aafbcc61f0c8e100a2c52d60df150cb17f4cf1023cc022fb6ed397f307defa024d662c527cadfa64e40d90936f2de3#npm:1.0.3"],\ + ["@types/vite", null],\ + ["vite", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:5.4.10"]\ + ],\ + "packagePeers": [\ + "@types/vite",\ + "vite"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vitest", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../.yarn/berry/cache/vitest-npm-2.1.1-74ca7d77ee-10c0.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["vitest", "npm:2.1.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1", {\ + "packageLocation": "./.yarn/__virtual__/vitest-virtual-e338eda9da/3/.yarn/berry/cache/vitest-npm-2.1.1-74ca7d77ee-10c0.zip/node_modules/vitest/",\ + "packageDependencies": [\ + ["vitest", "virtual:17a0a3611fd709434f6ac9198db2d23bfb7274c1aea80ee514f1c0c8f690be34e5e26728c5d01209f992c8cbb0f666d66f3cb11360296e13e34fdd94d339f22a#npm:2.1.1"],\ + ["@edge-runtime/vm", null],\ + ["@types/edge-runtime__vm", null],\ + ["@types/happy-dom", null],\ + ["@types/jsdom", null],\ + ["@types/node", "npm:22.5.5"],\ + ["@types/vitest__browser", null],\ + ["@types/vitest__ui", null],\ + ["@vitest/browser", null],\ + ["@vitest/expect", "npm:2.1.1"],\ + ["@vitest/mocker", "virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:2.1.1"],\ + ["@vitest/pretty-format", "npm:2.1.3"],\ + ["@vitest/runner", "npm:2.1.1"],\ + ["@vitest/snapshot", "npm:2.1.1"],\ + ["@vitest/spy", "npm:2.1.1"],\ + ["@vitest/ui", null],\ + ["@vitest/utils", "npm:2.1.1"],\ + ["chai", "npm:5.1.2"],\ + ["debug", "virtual:c9e1a4b59e37cb479517edede3bf2093b28c0ca1a9d0e517f3c345075bd1e468980b94b4957e389116607ee7155441dfd7d09e19a4229d5d09bcf06244401590#npm:4.3.7"],\ + ["happy-dom", "npm:15.7.4"],\ + ["jsdom", null],\ + ["magic-string", "npm:0.30.12"],\ + ["pathe", "npm:1.1.2"],\ + ["std-env", "npm:3.7.0"],\ + ["tinybench", "npm:2.9.0"],\ + ["tinyexec", "npm:0.3.1"],\ + ["tinypool", "npm:1.0.1"],\ + ["tinyrainbow", "npm:1.2.0"],\ + ["vite", "virtual:e338eda9da9187c8283e71560549dc701c8a97dce65200c255fb79e3ed01b384621e3932f0a7bb667b5a3872c5be5de54ea64c62fc7df6e492011cdbcadf87a0#npm:5.4.10"],\ + ["vite-node", "npm:2.1.1"],\ + ["why-is-node-running", "npm:2.3.0"]\ + ],\ + "packagePeers": [\ + "@edge-runtime/vm",\ + "@types/edge-runtime__vm",\ + "@types/happy-dom",\ + "@types/jsdom",\ + "@types/node",\ + "@types/vitest__browser",\ + "@types/vitest__ui",\ + "@vitest/browser",\ + "@vitest/ui",\ + "happy-dom",\ + "jsdom"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["vm-browserify", [\ + ["npm:0.0.4", {\ + "packageLocation": "../../.yarn/berry/cache/vm-browserify-npm-0.0.4-98fb115333-10c0.zip/node_modules/vm-browserify/",\ + "packageDependencies": [\ + ["vm-browserify", "npm:0.0.4"],\ + ["indexof", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["watchpack", [\ + ["npm:0.2.9", {\ + "packageLocation": "../../.yarn/berry/cache/watchpack-npm-0.2.9-3a117f6db6-10c0.zip/node_modules/watchpack/",\ + "packageDependencies": [\ + ["watchpack", "npm:0.2.9"],\ + ["async", "npm:0.9.2"],\ + ["chokidar", "npm:1.7.0"],\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.4.2", {\ + "packageLocation": "../../.yarn/berry/cache/watchpack-npm-2.4.2-3e587d5d5b-10c0.zip/node_modules/watchpack/",\ + "packageDependencies": [\ + ["watchpack", "npm:2.4.2"],\ + ["glob-to-regexp", "npm:0.4.1"],\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["web-worker", [\ + ["npm:1.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/web-worker-npm-1.3.0-871f7e24cd-10c0.zip/node_modules/web-worker/",\ + "packageDependencies": [\ + ["web-worker", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["webidl-conversions", [\ + ["npm:7.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/webidl-conversions-npm-7.0.0-e8c8e30c68-10c0.zip/node_modules/webidl-conversions/",\ + "packageDependencies": [\ + ["webidl-conversions", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["webpack", [\ + ["npm:1.15.0", {\ + "packageLocation": "../../.yarn/berry/cache/webpack-npm-1.15.0-d9d862ad54-10c0.zip/node_modules/webpack/",\ + "packageDependencies": [\ + ["webpack", "npm:1.15.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["npm:5.94.0", {\ + "packageLocation": "../../.yarn/berry/cache/webpack-npm-5.94.0-d1e43de389-10c0.zip/node_modules/webpack/",\ + "packageDependencies": [\ + ["webpack", "npm:5.94.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:1b181a7d5dbc134ec18ab29ab56ea2ffd330897941fbb6d51772a6d3f0e8672a6f0487a6f50bc4394fa6acaa6a18c9eeed5e010dea536a20f2635c13d3b7c6c3#npm:1.15.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-c8fc8efc92/3/.yarn/berry/cache/webpack-npm-1.15.0-d9d862ad54-10c0.zip/node_modules/webpack/",\ + "packageDependencies": [\ + ["webpack", "virtual:1b181a7d5dbc134ec18ab29ab56ea2ffd330897941fbb6d51772a6d3f0e8672a6f0487a6f50bc4394fa6acaa6a18c9eeed5e010dea536a20f2635c13d3b7c6c3#npm:1.15.0"],\ + ["@types/webpack-cli", null],\ + ["@types/webpack-command", null],\ + ["acorn", "npm:3.3.0"],\ + ["async", "npm:1.5.2"],\ + ["clone", "npm:1.0.4"],\ + ["enhanced-resolve", "npm:0.9.1"],\ + ["interpret", "npm:0.6.6"],\ + ["loader-utils", "npm:0.2.17"],\ + ["memory-fs", "npm:0.3.0"],\ + ["mkdirp", "npm:0.5.6"],\ + ["node-libs-browser", "npm:0.7.0"],\ + ["optimist", "npm:0.6.1"],\ + ["supports-color", "npm:3.2.3"],\ + ["tapable", "npm:0.1.10"],\ + ["uglify-js", "npm:2.7.5"],\ + ["watchpack", "npm:0.2.9"],\ + ["webpack-cli", null],\ + ["webpack-command", null],\ + ["webpack-core", "npm:0.6.9"]\ + ],\ + "packagePeers": [\ + "@types/webpack-cli",\ + "@types/webpack-command",\ + "webpack-cli",\ + "webpack-command"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.94.0", {\ + "packageLocation": "./.yarn/__virtual__/webpack-virtual-a30eb07853/3/.yarn/berry/cache/webpack-npm-5.94.0-d1e43de389-10c0.zip/node_modules/webpack/",\ + "packageDependencies": [\ + ["webpack", "virtual:5597b724d52a3cd8e735ad2e565bec0f01199dd466b01a131de45192b315f15eb8f7a1213a3aba70a2bf1b5d0531ab86895768bf92d2914014f01b6401df1abc#npm:5.94.0"],\ + ["@types/estree", "npm:1.0.6"],\ + ["@types/webpack-cli", null],\ + ["@webassemblyjs/ast", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-edit", "npm:1.12.1"],\ + ["@webassemblyjs/wasm-parser", "npm:1.12.1"],\ + ["acorn", "npm:8.13.0"],\ + ["acorn-import-attributes", "virtual:a30eb07853fb4327b539fbe6d1a8e64a6bbc42d4aef9af6899bb0e5b7383c1f34a01762dd241c3be355113817444fe398510e7ba3bfe85e0d91ab55b7c3d7a7e#npm:1.9.5"],\ + ["browserslist", "npm:4.24.2"],\ + ["chrome-trace-event", "npm:1.0.4"],\ + ["enhanced-resolve", "npm:5.17.1"],\ + ["es-module-lexer", "npm:1.5.4"],\ + ["eslint-scope", "npm:5.1.1"],\ + ["events", "npm:3.3.0"],\ + ["glob-to-regexp", "npm:0.4.1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["json-parse-even-better-errors", "npm:2.3.1"],\ + ["loader-runner", "npm:4.3.0"],\ + ["mime-types", "npm:2.1.35"],\ + ["neo-async", "npm:2.6.2"],\ + ["schema-utils", "npm:3.3.0"],\ + ["tapable", "npm:2.2.1"],\ + ["terser-webpack-plugin", "virtual:a30eb07853fb4327b539fbe6d1a8e64a6bbc42d4aef9af6899bb0e5b7383c1f34a01762dd241c3be355113817444fe398510e7ba3bfe85e0d91ab55b7c3d7a7e#npm:5.3.10"],\ + ["watchpack", "npm:2.4.2"],\ + ["webpack-cli", null],\ + ["webpack-sources", "npm:3.2.3"]\ + ],\ + "packagePeers": [\ + "@types/webpack-cli",\ + "webpack-cli"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["webpack-core", [\ + ["npm:0.6.9", {\ + "packageLocation": "../../.yarn/berry/cache/webpack-core-npm-0.6.9-68807a1f0b-10c0.zip/node_modules/webpack-core/",\ + "packageDependencies": [\ + ["webpack-core", "npm:0.6.9"],\ + ["source-list-map", "npm:0.1.8"],\ + ["source-map", "npm:0.4.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["webpack-env", [\ + ["npm:0.8.0", {\ + "packageLocation": "../../.yarn/berry/cache/webpack-env-npm-0.8.0-1b181a7d5d-10c0.zip/node_modules/webpack-env/",\ + "packageDependencies": [\ + ["webpack-env", "npm:0.8.0"],\ + ["webpack", "virtual:1b181a7d5dbc134ec18ab29ab56ea2ffd330897941fbb6d51772a6d3f0e8672a6f0487a6f50bc4394fa6acaa6a18c9eeed5e010dea536a20f2635c13d3b7c6c3#npm:1.15.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["webpack-sources", [\ + ["npm:3.2.3", {\ + "packageLocation": "../../.yarn/berry/cache/webpack-sources-npm-3.2.3-6bfb5d9563-10c0.zip/node_modules/webpack-sources/",\ + "packageDependencies": [\ + ["webpack-sources", "npm:3.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["whatwg-mimetype", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/whatwg-mimetype-npm-3.0.0-5b617710c1-10c0.zip/node_modules/whatwg-mimetype/",\ + "packageDependencies": [\ + ["whatwg-mimetype", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["which", [\ + ["npm:1.3.1", {\ + "packageLocation": "../../.yarn/berry/cache/which-npm-1.3.1-f0ebb8bdd8-10c0.zip/node_modules/which/",\ + "packageDependencies": [\ + ["which", "npm:1.3.1"],\ + ["isexe", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-10c0.zip/node_modules/which/",\ + "packageDependencies": [\ + ["which", "npm:2.0.2"],\ + ["isexe", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/which-npm-4.0.0-dd31cd4928-10c0.zip/node_modules/which/",\ + "packageDependencies": [\ + ["which", "npm:4.0.0"],\ + ["isexe", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["why-is-node-running", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../.yarn/berry/cache/why-is-node-running-npm-2.3.0-011cf61a18-10c0.zip/node_modules/why-is-node-running/",\ + "packageDependencies": [\ + ["why-is-node-running", "npm:2.3.0"],\ + ["siginfo", "npm:2.0.0"],\ + ["stackback", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["window-size", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/window-size-npm-0.1.0-d8173244c7-10c0.zip/node_modules/window-size/",\ + "packageDependencies": [\ + ["window-size", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wordwrap", [\ + ["npm:0.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/wordwrap-npm-0.0.2-b1271ec0a5-10c0.zip/node_modules/wordwrap/",\ + "packageDependencies": [\ + ["wordwrap", "npm:0.0.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.0.3", {\ + "packageLocation": "../../.yarn/berry/cache/wordwrap-npm-0.0.3-ab90803074-10c0.zip/node_modules/wordwrap/",\ + "packageDependencies": [\ + ["wordwrap", "npm:0.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wrap-ansi", [\ + ["npm:7.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["wrap-ansi", "npm:7.0.0"],\ + ["ansi-styles", "npm:4.3.0"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.1.0", {\ + "packageLocation": "../../.yarn/berry/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["wrap-ansi", "npm:8.1.0"],\ + ["ansi-styles", "npm:6.2.1"],\ + ["string-width", "npm:5.1.2"],\ + ["strip-ansi", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wrappy", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/wrappy-npm-1.0.2-916de4d4b3-10c0.zip/node_modules/wrappy/",\ + "packageDependencies": [\ + ["wrappy", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ws", [\ + ["npm:7.5.10", {\ + "packageLocation": "../../.yarn/berry/cache/ws-npm-7.5.10-878ccb886b-10c0.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "npm:7.5.10"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:d287d317a6f1682c24b5f6841258ccd28e379d5f1f55be3fe4df3ca807dff8a38cf54d217975fbf71cba648fc5f94edfe39c154881451bb38bf284b190f0a66a#npm:7.5.10", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-f35ed1d810/3/.yarn/berry/cache/ws-npm-7.5.10-878ccb886b-10c0.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "virtual:d287d317a6f1682c24b5f6841258ccd28e379d5f1f55be3fe4df3ca807dff8a38cf54d217975fbf71cba648fc5f94edfe39c154881451bb38bf284b190f0a66a#npm:7.5.10"],\ + ["@types/bufferutil", null],\ + ["@types/utf-8-validate", null],\ + ["bufferutil", null],\ + ["utf-8-validate", null]\ + ],\ + "packagePeers": [\ + "@types/bufferutil",\ + "@types/utf-8-validate",\ + "bufferutil",\ + "utf-8-validate"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["xtend", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../.yarn/berry/cache/xtend-npm-4.0.2-7f2375736e-10c0.zip/node_modules/xtend/",\ + "packageDependencies": [\ + ["xtend", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yallist", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../.yarn/berry/cache/yallist-npm-2.1.2-2e38c366a3-10c0.zip/node_modules/yallist/",\ + "packageDependencies": [\ + ["yallist", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-10c0.zip/node_modules/yallist/",\ + "packageDependencies": [\ + ["yallist", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yaml", [\ + ["npm:1.10.2", {\ + "packageLocation": "../../.yarn/berry/cache/yaml-npm-1.10.2-0e780aebdf-10c0.zip/node_modules/yaml/",\ + "packageDependencies": [\ + ["yaml", "npm:1.10.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yargs", [\ + ["npm:3.10.0", {\ + "packageLocation": "../../.yarn/berry/cache/yargs-npm-3.10.0-d3e22d8123-10c0.zip/node_modules/yargs/",\ + "packageDependencies": [\ + ["yargs", "npm:3.10.0"],\ + ["camelcase", "npm:1.2.1"],\ + ["cliui", "npm:2.1.0"],\ + ["decamelize", "npm:1.2.0"],\ + ["window-size", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]]\ + ]\ +}'; + +function $$SETUP_STATE(hydrateRuntimeState, basePath) { + return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +} + +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const os = require('os'); +const events = require('events'); +const nodeUtils = require('util'); +const stream = require('stream'); +const zlib = require('zlib'); +const require$$0 = require('module'); +const StringDecoder = require('string_decoder'); +const url = require('url'); +const buffer = require('buffer'); +const readline = require('readline'); +const assert = require('assert'); + +const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; + +function _interopNamespace(e) { + if (e && e.__esModule) return e; + const n = Object.create(null); + if (e) { + for (const k in e) { + if (k !== 'default') { + const d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: () => e[k] + }); + } + } + } + n.default = e; + return Object.freeze(n); +} + +const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); +const path__default = /*#__PURE__*/_interopDefaultLegacy(path); +const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); +const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); +const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); +const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); +const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer); +const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); + +const S_IFMT = 61440; +const S_IFDIR = 16384; +const S_IFREG = 32768; +const S_IFLNK = 40960; +const SAFE_TIME = 456789e3; + +function makeError$1(code, message) { + return Object.assign(new Error(`${code}: ${message}`), { code }); +} +function EBUSY(message) { + return makeError$1(`EBUSY`, message); +} +function ENOSYS(message, reason) { + return makeError$1(`ENOSYS`, `${message}, ${reason}`); +} +function EINVAL(reason) { + return makeError$1(`EINVAL`, `invalid argument, ${reason}`); +} +function EBADF(reason) { + return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); +} +function ENOENT(reason) { + return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); +} +function ENOTDIR(reason) { + return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); +} +function EISDIR(reason) { + return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); +} +function EEXIST(reason) { + return makeError$1(`EEXIST`, `file already exists, ${reason}`); +} +function EROFS(reason) { + return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); +} +function ENOTEMPTY(reason) { + return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); +} +function EOPNOTSUPP(reason) { + return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); +} +function ERR_DIR_CLOSED() { + return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); +} + +const DEFAULT_MODE = S_IFREG | 420; +class StatEntry { + uid = 0; + gid = 0; + size = 0; + blksize = 0; + atimeMs = 0; + mtimeMs = 0; + ctimeMs = 0; + birthtimeMs = 0; + atime = /* @__PURE__ */ new Date(0); + mtime = /* @__PURE__ */ new Date(0); + ctime = /* @__PURE__ */ new Date(0); + birthtime = /* @__PURE__ */ new Date(0); + dev = 0; + ino = 0; + mode = DEFAULT_MODE; + nlink = 1; + rdev = 0; + blocks = 1; + isBlockDevice() { + return false; + } + isCharacterDevice() { + return false; + } + isDirectory() { + return (this.mode & S_IFMT) === S_IFDIR; + } + isFIFO() { + return false; + } + isFile() { + return (this.mode & S_IFMT) === S_IFREG; + } + isSocket() { + return false; + } + isSymbolicLink() { + return (this.mode & S_IFMT) === S_IFLNK; + } +} +class BigIntStatsEntry { + uid = BigInt(0); + gid = BigInt(0); + size = BigInt(0); + blksize = BigInt(0); + atimeMs = BigInt(0); + mtimeMs = BigInt(0); + ctimeMs = BigInt(0); + birthtimeMs = BigInt(0); + atimeNs = BigInt(0); + mtimeNs = BigInt(0); + ctimeNs = BigInt(0); + birthtimeNs = BigInt(0); + atime = /* @__PURE__ */ new Date(0); + mtime = /* @__PURE__ */ new Date(0); + ctime = /* @__PURE__ */ new Date(0); + birthtime = /* @__PURE__ */ new Date(0); + dev = BigInt(0); + ino = BigInt(0); + mode = BigInt(DEFAULT_MODE); + nlink = BigInt(1); + rdev = BigInt(0); + blocks = BigInt(1); + isBlockDevice() { + return false; + } + isCharacterDevice() { + return false; + } + isDirectory() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); + } + isFIFO() { + return false; + } + isFile() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); + } + isSocket() { + return false; + } + isSymbolicLink() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); + } +} +function makeDefaultStats() { + return new StatEntry(); +} +function clearStats(stats) { + for (const key in stats) { + if (Object.hasOwn(stats, key)) { + const element = stats[key]; + if (typeof element === `number`) { + stats[key] = 0; + } else if (typeof element === `bigint`) { + stats[key] = BigInt(0); + } else if (nodeUtils__namespace.types.isDate(element)) { + stats[key] = /* @__PURE__ */ new Date(0); + } + } + } + return stats; +} +function convertToBigIntStats(stats) { + const bigintStats = new BigIntStatsEntry(); + for (const key in stats) { + if (Object.hasOwn(stats, key)) { + const element = stats[key]; + if (typeof element === `number`) { + bigintStats[key] = BigInt(element); + } else if (nodeUtils__namespace.types.isDate(element)) { + bigintStats[key] = new Date(element); + } + } + } + bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); + bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); + bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); + bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); + return bigintStats; +} +function areStatsEqual(a, b) { + if (a.atimeMs !== b.atimeMs) + return false; + if (a.birthtimeMs !== b.birthtimeMs) + return false; + if (a.blksize !== b.blksize) + return false; + if (a.blocks !== b.blocks) + return false; + if (a.ctimeMs !== b.ctimeMs) + return false; + if (a.dev !== b.dev) + return false; + if (a.gid !== b.gid) + return false; + if (a.ino !== b.ino) + return false; + if (a.isBlockDevice() !== b.isBlockDevice()) + return false; + if (a.isCharacterDevice() !== b.isCharacterDevice()) + return false; + if (a.isDirectory() !== b.isDirectory()) + return false; + if (a.isFIFO() !== b.isFIFO()) + return false; + if (a.isFile() !== b.isFile()) + return false; + if (a.isSocket() !== b.isSocket()) + return false; + if (a.isSymbolicLink() !== b.isSymbolicLink()) + return false; + if (a.mode !== b.mode) + return false; + if (a.mtimeMs !== b.mtimeMs) + return false; + if (a.nlink !== b.nlink) + return false; + if (a.rdev !== b.rdev) + return false; + if (a.size !== b.size) + return false; + if (a.uid !== b.uid) + return false; + const aN = a; + const bN = b; + if (aN.atimeNs !== bN.atimeNs) + return false; + if (aN.mtimeNs !== bN.mtimeNs) + return false; + if (aN.ctimeNs !== bN.ctimeNs) + return false; + if (aN.birthtimeNs !== bN.birthtimeNs) + return false; + return true; +} + +const PortablePath = { + root: `/`, + dot: `.`, + parent: `..` +}; +const Filename = { + home: `~`, + nodeModules: `node_modules`, + manifest: `package.json`, + lockfile: `yarn.lock`, + virtual: `__virtual__`, + /** + * @deprecated + */ + pnpJs: `.pnp.js`, + pnpCjs: `.pnp.cjs`, + pnpData: `.pnp.data.json`, + pnpEsmLoader: `.pnp.loader.mjs`, + rc: `.yarnrc.yml`, + env: `.env` +}; +const npath = Object.create(path__default.default); +const ppath = Object.create(path__default.default.posix); +npath.cwd = () => process.cwd(); +ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; +if (process.platform === `win32`) { + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return path__default.default.posix.resolve(...segments); + } else { + return path__default.default.posix.resolve(ppath.cwd(), ...segments); + } + }; +} +const contains = function(pathUtils, from, to) { + from = pathUtils.normalize(from); + to = pathUtils.normalize(to); + if (from === to) + return `.`; + if (!from.endsWith(pathUtils.sep)) + from = from + pathUtils.sep; + if (to.startsWith(from)) { + return to.slice(from.length); + } else { + return null; + } +}; +npath.contains = (from, to) => contains(npath, from, to); +ppath.contains = (from, to) => contains(ppath, from, to); +const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; +const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; +const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; +const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; +function fromPortablePathWin32(p) { + let portablePathMatch, uncPortablePathMatch; + if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) + p = portablePathMatch[1]; + else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) + p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; + else + return p; + return p.replace(/\//g, `\\`); +} +function toPortablePathWin32(p) { + p = p.replace(/\\/g, `/`); + let windowsPathMatch, uncWindowsPathMatch; + if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) + p = `/${windowsPathMatch[1]}`; + else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) + p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; + return p; +} +const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; +const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; +npath.fromPortablePath = fromPortablePath; +npath.toPortablePath = toPortablePath; +function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); +} + +const defaultTime = new Date(SAFE_TIME * 1e3); +const defaultTimeMs = defaultTime.getTime(); +async function copyPromise(destinationFs, destination, sourceFs, source, opts) { + const normalizedDestination = destinationFs.pathUtils.normalize(destination); + const normalizedSource = sourceFs.pathUtils.normalize(source); + const prelayout = []; + const postlayout = []; + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); + await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); + await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); + for (const operation of prelayout) + await operation(); + await Promise.all(postlayout.map((operation) => { + return operation(); + })); +} +async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { + const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; + const sourceStat = await sourceFs.lstatPromise(source); + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; + let updated; + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isFile(): + { + updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + default: { + throw new Error(`Unsupported file type (${sourceStat.mode})`); + } + } + if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { + if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { + postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); + updated = true; + } + if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { + postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); + updated = true; + } + } + return updated; +} +async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p); + } catch (e) { + return null; + } +} +async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + let updated = false; + if (destinationStat === null) { + prelayout.push(async () => { + try { + await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); + } catch (err) { + if (err.code !== `EEXIST`) { + throw err; + } + } + }); + updated = true; + } + const entries = await sourceFs.readdirPromise(source); + const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; + if (opts.stableSort) { + for (const entry of entries.sort()) { + if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { + updated = true; + } + } + } else { + const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { + await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); + })); + if (entriesUpdateStatus.some((status) => status)) { + updated = true; + } + } + return updated; +} +async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { + const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); + const defaultMode = 420; + const sourceMode = sourceStat.mode & 511; + const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; + const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); + let AtomicBehavior; + ((AtomicBehavior2) => { + AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; + AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; + })(AtomicBehavior || (AtomicBehavior = {})); + let atomicBehavior = 1 /* Rename */; + let indexStat = await maybeLStat(destinationFs, indexPath); + if (destinationStat) { + const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; + const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; + if (isDestinationHardlinkedFromIndex) { + if (isIndexModified && linkStrategy.autoRepair) { + atomicBehavior = 0 /* Lock */; + indexStat = null; + } + } + if (!isDestinationHardlinkedFromIndex) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + } + const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; + let tempPathCleaned = false; + prelayout.push(async () => { + if (!indexStat) { + if (atomicBehavior === 0 /* Lock */) { + await destinationFs.lockPromise(indexPath, async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(indexPath, content); + }); + } + if (atomicBehavior === 1 /* Rename */ && tempPath) { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(tempPath, content); + try { + await destinationFs.linkPromise(tempPath, indexPath); + } catch (err) { + if (err.code === `EEXIST`) { + tempPathCleaned = true; + await destinationFs.unlinkPromise(tempPath); + } else { + throw err; + } + } + } + } + if (!destinationStat) { + await destinationFs.linkPromise(indexPath, destination); + } + }); + postlayout.push(async () => { + if (!indexStat) { + await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); + if (sourceMode !== defaultMode) { + await destinationFs.chmodPromise(indexPath, sourceMode); + } + } + if (tempPath && !tempPathCleaned) { + await destinationFs.unlinkPromise(tempPath); + } + }); + return false; +} +async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(destination, content); + }); + return true; +} +async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (opts.linkStrategy?.type === `HardlinkFromIndex`) { + return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); + } else { + return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } +} +async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); + }); + return true; +} + +class CustomDir { + constructor(path, nextDirent, opts = {}) { + this.path = path; + this.nextDirent = nextDirent; + this.opts = opts; + } + closed = false; + throwIfClosed() { + if (this.closed) { + throw ERR_DIR_CLOSED(); + } + } + async *[Symbol.asyncIterator]() { + try { + let dirent; + while ((dirent = await this.read()) !== null) { + yield dirent; + } + } finally { + await this.close(); + } + } + read(cb) { + const dirent = this.readSync(); + if (typeof cb !== `undefined`) + return cb(null, dirent); + return Promise.resolve(dirent); + } + readSync() { + this.throwIfClosed(); + return this.nextDirent(); + } + close(cb) { + this.closeSync(); + if (typeof cb !== `undefined`) + return cb(null); + return Promise.resolve(); + } + closeSync() { + this.throwIfClosed(); + this.opts.onClose?.(); + this.closed = true; + } +} +function opendir(fakeFs, path, entries, opts) { + const nextDirent = () => { + const filename = entries.shift(); + if (typeof filename === `undefined`) + return null; + const entryPath = fakeFs.pathUtils.join(path, filename); + return Object.assign(fakeFs.statSync(entryPath), { + name: filename, + path: void 0 + }); + }; + return new CustomDir(path, nextDirent, opts); +} + +function assertStatus(current, expected) { + if (current !== expected) { + throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); + } +} +class CustomStatWatcher extends events.EventEmitter { + fakeFs; + path; + bigint; + status = "ready" /* Ready */; + changeListeners = /* @__PURE__ */ new Map(); + lastStats; + startTimeout = null; + static create(fakeFs, path, opts) { + const statWatcher = new CustomStatWatcher(fakeFs, path, opts); + statWatcher.start(); + return statWatcher; + } + constructor(fakeFs, path, { bigint = false } = {}) { + super(); + this.fakeFs = fakeFs; + this.path = path; + this.bigint = bigint; + this.lastStats = this.stat(); + } + start() { + assertStatus(this.status, "ready" /* Ready */); + this.status = "running" /* Running */; + this.startTimeout = setTimeout(() => { + this.startTimeout = null; + if (!this.fakeFs.existsSync(this.path)) { + this.emit("change" /* Change */, this.lastStats, this.lastStats); + } + }, 3); + } + stop() { + assertStatus(this.status, "running" /* Running */); + this.status = "stopped" /* Stopped */; + if (this.startTimeout !== null) { + clearTimeout(this.startTimeout); + this.startTimeout = null; + } + this.emit("stop" /* Stop */); + } + stat() { + try { + return this.fakeFs.statSync(this.path, { bigint: this.bigint }); + } catch (error) { + const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); + return clearStats(statInstance); + } + } + /** + * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. + * + * @param opts.persistent Decides whether the interval should be immediately unref-ed. + */ + makeInterval(opts) { + const interval = setInterval(() => { + const currentStats = this.stat(); + const previousStats = this.lastStats; + if (areStatsEqual(currentStats, previousStats)) + return; + this.lastStats = currentStats; + this.emit("change" /* Change */, currentStats, previousStats); + }, opts.interval); + return opts.persistent ? interval : interval.unref(); + } + /** + * Registers a listener and assigns it an interval. + */ + registerChangeListener(listener, opts) { + this.addListener("change" /* Change */, listener); + this.changeListeners.set(listener, this.makeInterval(opts)); + } + /** + * Unregisters the listener and clears the assigned interval. + */ + unregisterChangeListener(listener) { + this.removeListener("change" /* Change */, listener); + const interval = this.changeListeners.get(listener); + if (typeof interval !== `undefined`) + clearInterval(interval); + this.changeListeners.delete(listener); + } + /** + * Unregisters all listeners and clears all assigned intervals. + */ + unregisterAllChangeListeners() { + for (const listener of this.changeListeners.keys()) { + this.unregisterChangeListener(listener); + } + } + hasChangeListeners() { + return this.changeListeners.size > 0; + } + /** + * Refs all stored intervals. + */ + ref() { + for (const interval of this.changeListeners.values()) + interval.ref(); + return this; + } + /** + * Unrefs all stored intervals. + */ + unref() { + for (const interval of this.changeListeners.values()) + interval.unref(); + return this; + } +} + +const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap(); +function watchFile(fakeFs, path, a, b) { + let bigint; + let persistent; + let interval; + let listener; + switch (typeof a) { + case `function`: + { + bigint = false; + persistent = true; + interval = 5007; + listener = a; + } + break; + default: + { + ({ + bigint = false, + persistent = true, + interval = 5007 + } = a); + listener = b; + } + break; + } + let statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map()); + let statWatcher = statWatchers.get(path); + if (typeof statWatcher === `undefined`) { + statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint }); + statWatchers.set(path, statWatcher); + } + statWatcher.registerChangeListener(listener, { persistent, interval }); + return statWatcher; +} +function unwatchFile(fakeFs, path, cb) { + const statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + return; + const statWatcher = statWatchers.get(path); + if (typeof statWatcher === `undefined`) + return; + if (typeof cb === `undefined`) + statWatcher.unregisterAllChangeListeners(); + else + statWatcher.unregisterChangeListener(cb); + if (!statWatcher.hasChangeListeners()) { + statWatcher.stop(); + statWatchers.delete(path); + } +} +function unwatchAllFiles(fakeFs) { + const statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + return; + for (const path of statWatchers.keys()) { + unwatchFile(fakeFs, path); + } +} + +class FakeFS { + pathUtils; + constructor(pathUtils) { + this.pathUtils = pathUtils; + } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init]; + while (stack.length > 0) { + const p = stack.shift(); + const entry = await this.lstatPromise(p); + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p); + if (stableSort) { + for (const entry2 of entries.sort()) { + stack.push(this.pathUtils.join(p, entry2)); + } + } else { + throw new Error(`Not supported`); + } + } else { + yield p; + } + } + } + async checksumFilePromise(path, { algorithm = `sha512` } = {}) { + const fd = await this.openPromise(path, `r`); + try { + const CHUNK_SIZE = 65536; + const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); + const hash = crypto.createHash(algorithm); + let bytesRead = 0; + while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) + hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); + return hash.digest(`hex`); + } finally { + await this.closePromise(fd); + } + } + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat; + try { + stat = await this.lstatPromise(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) { + const entries = await this.readdirPromise(p); + await Promise.all(entries.map((entry) => { + return this.removePromise(this.pathUtils.resolve(p, entry)); + })); + } + for (let t = 0; t <= maxRetries; t++) { + try { + await this.rmdirPromise(p); + break; + } catch (error) { + if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { + throw error; + } else if (t < maxRetries) { + await new Promise((resolve) => setTimeout(resolve, t * 100)); + } + } + } + } else { + await this.unlinkPromise(p); + } + } + removeSync(p, { recursive = true } = {}) { + let stat; + try { + stat = this.lstatSync(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)); + this.rmdirSync(p); + } else { + this.unlinkSync(p); + } + } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + await this.chmodPromise(subPath, chmod); + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]); + } else { + const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); + await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + this.chmodSync(subPath, chmod); + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]); + } else { + const parentStat = this.statSync(this.pathUtils.dirname(subPath)); + this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { + return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); + } + copySync(destination, source, { baseFs = this, overwrite = true } = {}) { + const stat = baseFs.lstatSync(source); + const exists = this.existsSync(destination); + if (stat.isDirectory()) { + this.mkdirpSync(destination); + const directoryListing = baseFs.readdirSync(source); + for (const entry of directoryListing) { + this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const content = baseFs.readFileSync(source); + this.writeFileSync(destination, content); + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const target = baseFs.readlinkSync(source); + this.symlinkSync(convertPath(this.pathUtils, target), destination); + } + } else { + throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); + } + const mode = stat.mode & 511; + this.chmodSync(destination, mode); + } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content, opts); + } else { + return this.changeFileTextPromise(p, content, opts); + } + } + async changeFileBufferPromise(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = await this.readFilePromise(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + await this.writeFilePromise(p, content, { mode }); + } + async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { + let current = ``; + try { + current = await this.readFilePromise(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + await this.writeFilePromise(p, normalizedContent, { mode }); + } + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content, opts); + } else { + return this.changeFileTextSync(p, content, opts); + } + } + changeFileBufferSync(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = this.readFileSync(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + this.writeFileSync(p, content, { mode }); + } + changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { + let current = ``; + try { + current = this.readFileSync(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + this.writeFileSync(p, normalizedContent, { mode }); + } + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP); + await this.removePromise(fromP); + } else { + throw error; + } + } + } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP); + this.removeSync(fromP); + } else { + throw error; + } + } + } + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock`; + const interval = 1e3 / 60; + const startTime = Date.now(); + let fd = null; + const isAlive = async () => { + let pid; + try { + [pid] = await this.readJsonPromise(lockPath); + } catch (error) { + return Date.now() - startTime < 500; + } + try { + process.kill(pid, 0); + return true; + } catch (error) { + return false; + } + }; + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`); + } catch (error) { + if (error.code === `EEXIST`) { + if (!await isAlive()) { + try { + await this.unlinkPromise(lockPath); + continue; + } catch (error2) { + } + } + if (Date.now() - startTime < 60 * 1e3) { + await new Promise((resolve) => setTimeout(resolve, interval)); + } else { + throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + } + } else { + throw error; + } + } + } + await this.writePromise(fd, JSON.stringify([process.pid])); + try { + return await callback(); + } finally { + try { + await this.closePromise(fd); + await this.unlinkPromise(lockPath); + } catch (error) { + } + } + } + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + async writeJsonPromise(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} +`); + } + writeJsonSync(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return this.writeFileSync(p, `${JSON.stringify(data, null, space)} +`); + } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p); + const result = await cb(); + if (typeof result !== `undefined`) + p = result; + await this.lutimesPromise(p, stat.atime, stat.mtime); + } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p); + const result = cb(); + if (typeof result !== `undefined`) + p = result; + this.lutimesSync(p, stat.atime, stat.mtime); + } +} +class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath); + } +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return os.EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} + +class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); + } + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()); + } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode); + } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode); + } + async opendirPromise(p, opts) { + return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); + } + opendirSync(p, opts) { + return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); + } + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + return this.baseFs.closePromise(fd); + } + closeSync(fd) { + this.baseFs.closeSync(fd); + } + createReadStream(p, opts) { + return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); + } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); + } + async realpathPromise(p) { + return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); + } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); + } + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)); + } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)); + } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode); + } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode); + } + async statPromise(p, opts) { + return this.baseFs.statPromise(this.mapToBase(p), opts); + } + statSync(p, opts) { + return this.baseFs.statSync(this.mapToBase(p), opts); + } + async fstatPromise(fd, opts) { + return this.baseFs.fstatPromise(fd, opts); + } + fstatSync(fd, opts) { + return this.baseFs.fstatSync(fd, opts); + } + lstatPromise(p, opts) { + return this.baseFs.lstatPromise(this.mapToBase(p), opts); + } + lstatSync(p, opts) { + return this.baseFs.lstatSync(this.mapToBase(p), opts); + } + async fchmodPromise(fd, mask) { + return this.baseFs.fchmodPromise(fd, mask); + } + fchmodSync(fd, mask) { + return this.baseFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask); + } + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask); + } + async fchownPromise(fd, uid, gid) { + return this.baseFs.fchownPromise(fd, uid, gid); + } + fchownSync(fd, uid, gid) { + return this.baseFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); + } + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid); + } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); + } + renameSync(oldP, newP) { + return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); + } + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); + } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); + } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); + } + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)); + } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)); + } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); + } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); + } + lutimesSync(p, atime, mtime) { + return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts); + } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts); + } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts); + } + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts); + } + async rmPromise(p, opts) { + return this.baseFs.rmPromise(this.mapToBase(p), opts); + } + rmSync(p, opts) { + return this.baseFs.rmSync(this.mapToBase(p), opts); + } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); + } + linkSync(existingP, newP) { + return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); + } + async symlinkPromise(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); + } + symlinkSync(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkSync(mappedTarget, mappedP, type); + } + async readFilePromise(p, encoding) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); + } + readFileSync(p, encoding) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); + } + readdirPromise(p, opts) { + return this.baseFs.readdirPromise(this.mapToBase(p), opts); + } + readdirSync(p, opts) { + return this.baseFs.readdirSync(this.mapToBase(p), opts); + } + async readlinkPromise(p) { + return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); + } + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); + } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len); + } + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len); + } + async ftruncatePromise(fd, len) { + return this.baseFs.ftruncatePromise(fd, len); + } + ftruncateSync(fd, len) { + return this.baseFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb); + } + fsMapToBase(p) { + if (typeof p === `number`) { + return p; + } else { + return this.mapToBase(p); + } + } +} + +function direntToPortable(dirent) { + const portableDirent = dirent; + if (typeof dirent.path === `string`) + portableDirent.path = npath.toPortablePath(dirent.path); + return portableDirent; +} +class NodeFS extends BasePortableFakeFS { + realFs; + constructor(realFs = fs__default.default) { + super(); + this.realFs = realFs; + } + getExtractHint() { + return false; + } + getRealPath() { + return PortablePath.root; + } + resolve(p) { + return ppath.resolve(p); + } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); + }); + } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); + } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }).then((dir) => { + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + }); + } + opendirSync(p, opts) { + const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { + if (error) { + reject(error); + } else { + resolve(bytesRead); + } + }); + }); + } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); + } else { + return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); + } + }); + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset); + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)); + }); + } + closeSync(fd) { + this.realFs.closeSync(fd); + } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createReadStream(realPath, opts); + } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createWriteStream(realPath, opts); + } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + realpathSync(p) { + return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); + } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve); + }); + } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode); + } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); + }); + } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)); + } + async statPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + statSync(p, opts) { + if (opts) { + return this.realFs.statSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.statSync(npath.fromPortablePath(p)); + } + } + async fstatPromise(fd, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.fstat(fd, this.makeCallback(resolve, reject)); + } + }); + } + fstatSync(fd, opts) { + if (opts) { + return this.realFs.fstatSync(fd, opts); + } else { + return this.realFs.fstatSync(fd); + } + } + async lstatPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + lstatSync(p, opts) { + if (opts) { + return this.realFs.lstatSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.lstatSync(npath.fromPortablePath(p)); + } + } + async fchmodPromise(fd, mask) { + return await new Promise((resolve, reject) => { + this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); + }); + } + fchmodSync(fd, mask) { + return this.realFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); + }); + } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask); + } + async fchownPromise(fd, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); + }); + } + fchownSync(fd, uid, gid) { + return this.realFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); + }); + } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); + } + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + renameSync(oldP, newP) { + return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); + } + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + appendFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts); + } else { + this.realFs.appendFileSync(fsNativePath, content); + } + } + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + writeFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts); + } else { + this.realFs.writeFileSync(fsNativePath, content); + } + } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }); + } + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)); + } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + lutimesSync(p, atime, mtime) { + this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + }); + } + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); + } + async rmPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmSync(p, opts) { + return this.realFs.rmSync(npath.fromPortablePath(p), opts); + } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + linkSync(existingP, newP) { + return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); + } + async symlinkPromise(target, p, type) { + return await new Promise((resolve, reject) => { + this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); + }); + } + symlinkSync(target, p, type) { + return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); + }); + } + readFileSync(p, encoding) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + return this.realFs.readFileSync(fsNativePath, encoding); + } + async readdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + readdirSync(p, opts) { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)); + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + readlinkSync(p) { + return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); + }); + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len); + } + async ftruncatePromise(fd, len) { + return await new Promise((resolve, reject) => { + this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); + }); + } + ftruncateSync(fd, len) { + return this.realFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); + } + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }; + } +} + +const MOUNT_MASK = 4278190080; +class MountFS extends BasePortableFakeFS { + baseFs; + mountInstances; + fdMap = /* @__PURE__ */ new Map(); + nextFd = 3; + factoryPromise; + factorySync; + filter; + getMountPoint; + magic; + maxAge; + maxOpenFiles; + typeCheck; + isMount = /* @__PURE__ */ new Set(); + notMount = /* @__PURE__ */ new Set(); + realPaths = /* @__PURE__ */ new Map(); + constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) { + if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127)) + throw new Error(`The magic byte must be set to a round value between 1 and 127 included`); + super(); + this.baseFs = baseFs; + this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null; + this.factoryPromise = factoryPromise; + this.factorySync = factorySync; + this.filter = filter; + this.getMountPoint = getMountPoint; + this.magic = magicByte << 24; + this.maxAge = maxAge; + this.maxOpenFiles = maxOpenFiles; + this.typeCheck = typeCheck; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + saveAndClose() { + unwatchAllFiles(this); + if (this.mountInstances) { + for (const [path, { childFs }] of this.mountInstances.entries()) { + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + } + } + } + discardAndClose() { + unwatchAllFiles(this); + if (this.mountInstances) { + for (const [path, { childFs }] of this.mountInstances.entries()) { + childFs.discardAndClose?.(); + this.mountInstances.delete(path); + } + } + } + resolve(p) { + return this.baseFs.resolve(p); + } + remapFd(mountFs, fd) { + const remappedFd = this.nextFd++ | this.magic; + this.fdMap.set(remappedFd, [mountFs, fd]); + return remappedFd; + } + async openPromise(p, flags, mode) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.openPromise(p, flags, mode); + }, async (mountFs, { subPath }) => { + return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode)); + }); + } + openSync(p, flags, mode) { + return this.makeCallSync(p, () => { + return this.baseFs.openSync(p, flags, mode); + }, (mountFs, { subPath }) => { + return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode)); + }); + } + async opendirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.opendirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.opendirPromise(subPath, opts); + }, { + requireSubpath: false + }); + } + opendirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.opendirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.opendirSync(subPath, opts); + }, { + requireSubpath: false + }); + } + async readPromise(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + const [mountFs, realFd] = entry; + return await mountFs.readPromise(realFd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.readSync(fd, buffer, offset, length, position); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`readSync`); + const [mountFs, realFd] = entry; + return mountFs.readSync(realFd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`write`); + const [mountFs, realFd] = entry; + if (typeof buffer === `string`) { + return await mountFs.writePromise(realFd, buffer, offset); + } else { + return await mountFs.writePromise(realFd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`writeSync`); + const [mountFs, realFd] = entry; + if (typeof buffer === `string`) { + return mountFs.writeSync(realFd, buffer, offset); + } else { + return mountFs.writeSync(realFd, buffer, offset, length, position); + } + } + async closePromise(fd) { + if ((fd & MOUNT_MASK) !== this.magic) + return await this.baseFs.closePromise(fd); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`close`); + this.fdMap.delete(fd); + const [mountFs, realFd] = entry; + return await mountFs.closePromise(realFd); + } + closeSync(fd) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.closeSync(fd); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`closeSync`); + this.fdMap.delete(fd); + const [mountFs, realFd] = entry; + return mountFs.closeSync(realFd); + } + createReadStream(p, opts) { + if (p === null) + return this.baseFs.createReadStream(p, opts); + return this.makeCallSync(p, () => { + return this.baseFs.createReadStream(p, opts); + }, (mountFs, { archivePath, subPath }) => { + const stream = mountFs.createReadStream(subPath, opts); + stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); + return stream; + }); + } + createWriteStream(p, opts) { + if (p === null) + return this.baseFs.createWriteStream(p, opts); + return this.makeCallSync(p, () => { + return this.baseFs.createWriteStream(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.createWriteStream(subPath, opts); + }); + } + async realpathPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.realpathPromise(p); + }, async (mountFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath); + if (typeof realArchivePath === `undefined`) { + realArchivePath = await this.baseFs.realpathPromise(archivePath); + this.realPaths.set(archivePath, realArchivePath); + } + return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath))); + }); + } + realpathSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.realpathSync(p); + }, (mountFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath); + if (typeof realArchivePath === `undefined`) { + realArchivePath = this.baseFs.realpathSync(archivePath); + this.realPaths.set(archivePath, realArchivePath); + } + return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath))); + }); + } + async existsPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.existsPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.existsPromise(subPath); + }); + } + existsSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.existsSync(p); + }, (mountFs, { subPath }) => { + return mountFs.existsSync(subPath); + }); + } + async accessPromise(p, mode) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.accessPromise(p, mode); + }, async (mountFs, { subPath }) => { + return await mountFs.accessPromise(subPath, mode); + }); + } + accessSync(p, mode) { + return this.makeCallSync(p, () => { + return this.baseFs.accessSync(p, mode); + }, (mountFs, { subPath }) => { + return mountFs.accessSync(subPath, mode); + }); + } + async statPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.statPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.statPromise(subPath, opts); + }); + } + statSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.statSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.statSync(subPath, opts); + }); + } + async fstatPromise(fd, opts) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fstatPromise(fd, opts); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstat`); + const [mountFs, realFd] = entry; + return mountFs.fstatPromise(realFd, opts); + } + fstatSync(fd, opts) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fstatSync(fd, opts); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstatSync`); + const [mountFs, realFd] = entry; + return mountFs.fstatSync(realFd, opts); + } + async lstatPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.lstatPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.lstatPromise(subPath, opts); + }); + } + lstatSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.lstatSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.lstatSync(subPath, opts); + }); + } + async fchmodPromise(fd, mask) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchmodPromise(fd, mask); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchmod`); + const [mountFs, realFd] = entry; + return mountFs.fchmodPromise(realFd, mask); + } + fchmodSync(fd, mask) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchmodSync(fd, mask); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchmodSync`); + const [mountFs, realFd] = entry; + return mountFs.fchmodSync(realFd, mask); + } + async chmodPromise(p, mask) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.chmodPromise(p, mask); + }, async (mountFs, { subPath }) => { + return await mountFs.chmodPromise(subPath, mask); + }); + } + chmodSync(p, mask) { + return this.makeCallSync(p, () => { + return this.baseFs.chmodSync(p, mask); + }, (mountFs, { subPath }) => { + return mountFs.chmodSync(subPath, mask); + }); + } + async fchownPromise(fd, uid, gid) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchownPromise(fd, uid, gid); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchown`); + const [zipFs, realFd] = entry; + return zipFs.fchownPromise(realFd, uid, gid); + } + fchownSync(fd, uid, gid) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchownSync(fd, uid, gid); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchownSync`); + const [zipFs, realFd] = entry; + return zipFs.fchownSync(realFd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.chownPromise(p, uid, gid); + }, async (mountFs, { subPath }) => { + return await mountFs.chownPromise(subPath, uid, gid); + }); + } + chownSync(p, uid, gid) { + return this.makeCallSync(p, () => { + return this.baseFs.chownSync(p, uid, gid); + }, (mountFs, { subPath }) => { + return mountFs.chownSync(subPath, uid, gid); + }); + } + async renamePromise(oldP, newP) { + return await this.makeCallPromise(oldP, async () => { + return await this.makeCallPromise(newP, async () => { + return await this.baseFs.renamePromise(oldP, newP); + }, async () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }); + }, async (mountFsO, { subPath: subPathO }) => { + return await this.makeCallPromise(newP, async () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }, async (mountFsN, { subPath: subPathN }) => { + if (mountFsO !== mountFsN) { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + } else { + return await mountFsO.renamePromise(subPathO, subPathN); + } + }); + }); + } + renameSync(oldP, newP) { + return this.makeCallSync(oldP, () => { + return this.makeCallSync(newP, () => { + return this.baseFs.renameSync(oldP, newP); + }, () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }); + }, (mountFsO, { subPath: subPathO }) => { + return this.makeCallSync(newP, () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }, (mountFsN, { subPath: subPathN }) => { + if (mountFsO !== mountFsN) { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + } else { + return mountFsO.renameSync(subPathO, subPathN); + } + }); + }); + } + async copyFilePromise(sourceP, destP, flags = 0) { + const fallback = async (sourceFs, sourceP2, destFs, destP2) => { + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); + if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) + throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); + let content; + try { + content = await sourceFs.readFilePromise(sourceP2); + } catch (error) { + throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); + } + await destFs.writeFilePromise(destP2, content); + }; + return await this.makeCallPromise(sourceP, async () => { + return await this.makeCallPromise(destP, async () => { + return await this.baseFs.copyFilePromise(sourceP, destP, flags); + }, async (mountFsD, { subPath: subPathD }) => { + return await fallback(this.baseFs, sourceP, mountFsD, subPathD); + }); + }, async (mountFsS, { subPath: subPathS }) => { + return await this.makeCallPromise(destP, async () => { + return await fallback(mountFsS, subPathS, this.baseFs, destP); + }, async (mountFsD, { subPath: subPathD }) => { + if (mountFsS !== mountFsD) { + return await fallback(mountFsS, subPathS, mountFsD, subPathD); + } else { + return await mountFsS.copyFilePromise(subPathS, subPathD, flags); + } + }); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + const fallback = (sourceFs, sourceP2, destFs, destP2) => { + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); + if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) + throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); + let content; + try { + content = sourceFs.readFileSync(sourceP2); + } catch (error) { + throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); + } + destFs.writeFileSync(destP2, content); + }; + return this.makeCallSync(sourceP, () => { + return this.makeCallSync(destP, () => { + return this.baseFs.copyFileSync(sourceP, destP, flags); + }, (mountFsD, { subPath: subPathD }) => { + return fallback(this.baseFs, sourceP, mountFsD, subPathD); + }); + }, (mountFsS, { subPath: subPathS }) => { + return this.makeCallSync(destP, () => { + return fallback(mountFsS, subPathS, this.baseFs, destP); + }, (mountFsD, { subPath: subPathD }) => { + if (mountFsS !== mountFsD) { + return fallback(mountFsS, subPathS, mountFsD, subPathD); + } else { + return mountFsS.copyFileSync(subPathS, subPathD, flags); + } + }); + }); + } + async appendFilePromise(p, content, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.appendFilePromise(p, content, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.appendFilePromise(subPath, content, opts); + }); + } + appendFileSync(p, content, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.appendFileSync(p, content, opts); + }, (mountFs, { subPath }) => { + return mountFs.appendFileSync(subPath, content, opts); + }); + } + async writeFilePromise(p, content, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.writeFilePromise(p, content, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.writeFilePromise(subPath, content, opts); + }); + } + writeFileSync(p, content, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.writeFileSync(p, content, opts); + }, (mountFs, { subPath }) => { + return mountFs.writeFileSync(subPath, content, opts); + }); + } + async unlinkPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.unlinkPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.unlinkPromise(subPath); + }); + } + unlinkSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.unlinkSync(p); + }, (mountFs, { subPath }) => { + return mountFs.unlinkSync(subPath); + }); + } + async utimesPromise(p, atime, mtime) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.utimesPromise(p, atime, mtime); + }, async (mountFs, { subPath }) => { + return await mountFs.utimesPromise(subPath, atime, mtime); + }); + } + utimesSync(p, atime, mtime) { + return this.makeCallSync(p, () => { + return this.baseFs.utimesSync(p, atime, mtime); + }, (mountFs, { subPath }) => { + return mountFs.utimesSync(subPath, atime, mtime); + }); + } + async lutimesPromise(p, atime, mtime) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.lutimesPromise(p, atime, mtime); + }, async (mountFs, { subPath }) => { + return await mountFs.lutimesPromise(subPath, atime, mtime); + }); + } + lutimesSync(p, atime, mtime) { + return this.makeCallSync(p, () => { + return this.baseFs.lutimesSync(p, atime, mtime); + }, (mountFs, { subPath }) => { + return mountFs.lutimesSync(subPath, atime, mtime); + }); + } + async mkdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.mkdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.mkdirPromise(subPath, opts); + }); + } + mkdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.mkdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.mkdirSync(subPath, opts); + }); + } + async rmdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.rmdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.rmdirPromise(subPath, opts); + }); + } + rmdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.rmdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.rmdirSync(subPath, opts); + }); + } + async rmPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.rmPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.rmPromise(subPath, opts); + }); + } + rmSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.rmSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.rmSync(subPath, opts); + }); + } + async linkPromise(existingP, newP) { + return await this.makeCallPromise(newP, async () => { + return await this.baseFs.linkPromise(existingP, newP); + }, async (mountFs, { subPath }) => { + return await mountFs.linkPromise(existingP, subPath); + }); + } + linkSync(existingP, newP) { + return this.makeCallSync(newP, () => { + return this.baseFs.linkSync(existingP, newP); + }, (mountFs, { subPath }) => { + return mountFs.linkSync(existingP, subPath); + }); + } + async symlinkPromise(target, p, type) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.symlinkPromise(target, p, type); + }, async (mountFs, { subPath }) => { + return await mountFs.symlinkPromise(target, subPath); + }); + } + symlinkSync(target, p, type) { + return this.makeCallSync(p, () => { + return this.baseFs.symlinkSync(target, p, type); + }, (mountFs, { subPath }) => { + return mountFs.symlinkSync(target, subPath); + }); + } + async readFilePromise(p, encoding) { + return this.makeCallPromise(p, async () => { + return await this.baseFs.readFilePromise(p, encoding); + }, async (mountFs, { subPath }) => { + return await mountFs.readFilePromise(subPath, encoding); + }); + } + readFileSync(p, encoding) { + return this.makeCallSync(p, () => { + return this.baseFs.readFileSync(p, encoding); + }, (mountFs, { subPath }) => { + return mountFs.readFileSync(subPath, encoding); + }); + } + async readdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.readdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.readdirPromise(subPath, opts); + }, { + requireSubpath: false + }); + } + readdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.readdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.readdirSync(subPath, opts); + }, { + requireSubpath: false + }); + } + async readlinkPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.readlinkPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.readlinkPromise(subPath); + }); + } + readlinkSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.readlinkSync(p); + }, (mountFs, { subPath }) => { + return mountFs.readlinkSync(subPath); + }); + } + async truncatePromise(p, len) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.truncatePromise(p, len); + }, async (mountFs, { subPath }) => { + return await mountFs.truncatePromise(subPath, len); + }); + } + truncateSync(p, len) { + return this.makeCallSync(p, () => { + return this.baseFs.truncateSync(p, len); + }, (mountFs, { subPath }) => { + return mountFs.truncateSync(subPath, len); + }); + } + async ftruncatePromise(fd, len) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.ftruncatePromise(fd, len); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`ftruncate`); + const [mountFs, realFd] = entry; + return mountFs.ftruncatePromise(realFd, len); + } + ftruncateSync(fd, len) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.ftruncateSync(fd, len); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`ftruncateSync`); + const [mountFs, realFd] = entry; + return mountFs.ftruncateSync(realFd, len); + } + watch(p, a, b) { + return this.makeCallSync(p, () => { + return this.baseFs.watch( + p, + // @ts-expect-error + a, + b + ); + }, (mountFs, { subPath }) => { + return mountFs.watch( + subPath, + // @ts-expect-error + a, + b + ); + }); + } + watchFile(p, a, b) { + return this.makeCallSync(p, () => { + return this.baseFs.watchFile( + p, + // @ts-expect-error + a, + b + ); + }, () => { + return watchFile(this, p, a, b); + }); + } + unwatchFile(p, cb) { + return this.makeCallSync(p, () => { + return this.baseFs.unwatchFile(p, cb); + }, () => { + return unwatchFile(this, p, cb); + }); + } + async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) + return await discard(); + const normalizedP = this.resolve(p); + const mountInfo = this.findMount(normalizedP); + if (!mountInfo) + return await discard(); + if (requireSubpath && mountInfo.subPath === `/`) + return await discard(); + return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo)); + } + makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) + return discard(); + const normalizedP = this.resolve(p); + const mountInfo = this.findMount(normalizedP); + if (!mountInfo) + return discard(); + if (requireSubpath && mountInfo.subPath === `/`) + return discard(); + return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo)); + } + findMount(p) { + if (this.filter && !this.filter.test(p)) + return null; + let filePath = ``; + while (true) { + const pathPartWithArchive = p.substring(filePath.length); + const mountPoint = this.getMountPoint(pathPartWithArchive, filePath); + if (!mountPoint) + return null; + filePath = this.pathUtils.join(filePath, mountPoint); + if (!this.isMount.has(filePath)) { + if (this.notMount.has(filePath)) + continue; + try { + if (this.typeCheck !== null && (this.baseFs.lstatSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) { + this.notMount.add(filePath); + continue; + } + } catch { + return null; + } + this.isMount.add(filePath); + } + return { + archivePath: filePath, + subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) + }; + } + } + limitOpenFilesTimeout = null; + limitOpenFiles(max) { + if (this.mountInstances === null) + return; + const now = Date.now(); + let nextExpiresAt = now + this.maxAge; + let closeCount = max === null ? 0 : this.mountInstances.size - max; + for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) { + if (refCount !== 0 || childFs.hasOpenFileHandles?.()) { + continue; + } else if (now >= expiresAt) { + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + closeCount -= 1; + continue; + } else if (max === null || closeCount <= 0) { + nextExpiresAt = expiresAt; + break; + } + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + closeCount -= 1; + } + if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) { + this.limitOpenFilesTimeout = setTimeout(() => { + this.limitOpenFilesTimeout = null; + this.limitOpenFiles(null); + }, nextExpiresAt - now).unref(); + } + } + async getMountPromise(p, accept) { + if (this.mountInstances) { + let cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + const createFsInstance = await this.factoryPromise(this.baseFs, p); + cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + cachedMountFs = { + childFs: createFsInstance(), + expiresAt: 0, + refCount: 0 + }; + } + } + this.mountInstances.delete(p); + this.limitOpenFiles(this.maxOpenFiles - 1); + this.mountInstances.set(p, cachedMountFs); + cachedMountFs.expiresAt = Date.now() + this.maxAge; + cachedMountFs.refCount += 1; + try { + return await accept(cachedMountFs.childFs); + } finally { + cachedMountFs.refCount -= 1; + } + } else { + const mountFs = (await this.factoryPromise(this.baseFs, p))(); + try { + return await accept(mountFs); + } finally { + mountFs.saveAndClose?.(); + } + } + } + getMountSync(p, accept) { + if (this.mountInstances) { + let cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + cachedMountFs = { + childFs: this.factorySync(this.baseFs, p), + expiresAt: 0, + refCount: 0 + }; + } + this.mountInstances.delete(p); + this.limitOpenFiles(this.maxOpenFiles - 1); + this.mountInstances.set(p, cachedMountFs); + cachedMountFs.expiresAt = Date.now() + this.maxAge; + return accept(cachedMountFs.childFs); + } else { + const childFs = this.factorySync(this.baseFs, p); + try { + return accept(childFs); + } finally { + childFs.saveAndClose?.(); + } + } + } +} + +class PosixFS extends ProxiedFS { + baseFs; + constructor(baseFs) { + super(npath); + this.baseFs = baseFs; + } + mapFromBase(path) { + return npath.fromPortablePath(path); + } + mapToBase(path) { + return npath.toPortablePath(path); + } +} + +const NUMBER_REGEXP = /^[0-9]+$/; +const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; +const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; +class VirtualFS extends ProxiedFS { + baseFs; + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `__virtual__`) + throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); + const target = ppath.relative(ppath.dirname(base), to); + const segments = target.split(`/`); + let depth = 0; + while (depth < segments.length && segments[depth] === `..`) + depth += 1; + const finalSegments = segments.slice(depth); + const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); + return fullVirtualPath; + } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match || !match[3] && match[5]) + return p; + const target = ppath.dirname(match[1]); + if (!match[3] || !match[4]) + return target; + const isnum = NUMBER_REGEXP.test(match[4]); + if (!isnum) + return p; + const depth = Number(match[4]); + const backstep = `../`.repeat(depth); + const subpath = match[5] || `.`; + return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); + } + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath); + this.baseFs = baseFs; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + realpathSync(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return this.baseFs.realpathSync(p); + if (!match[5]) + return p; + const realpath = this.baseFs.realpathSync(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + async realpathPromise(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return await this.baseFs.realpathPromise(p); + if (!match[5]) + return p; + const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + mapToBase(p) { + if (p === ``) + return p; + if (this.pathUtils.isAbsolute(p)) + return VirtualFS.resolveVirtual(p); + const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); + const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); + return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; + } + mapFromBase(p) { + return p; + } +} + +const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL; + +class NodePathFS extends ProxiedFS { + baseFs; + constructor(baseFs) { + super(npath); + this.baseFs = baseFs; + } + mapFromBase(path) { + return path; + } + mapToBase(path) { + if (typeof path === `string`) + return path; + if (path instanceof URL) + return url.fileURLToPath(path); + if (Buffer.isBuffer(path)) { + const str = path.toString(); + if (!isUtf8(path, str)) + throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); + return str; + } + throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); + } +} +function isUtf8(buf, str) { + if (typeof buffer__default.default.isUtf8 !== `undefined`) + return buffer__default.default.isUtf8(buf); + return Buffer.byteLength(str) === buf.byteLength; +} + +const kBaseFs = Symbol(`kBaseFs`); +const kFd = Symbol(`kFd`); +const kClosePromise = Symbol(`kClosePromise`); +const kCloseResolve = Symbol(`kCloseResolve`); +const kCloseReject = Symbol(`kCloseReject`); +const kRefs = Symbol(`kRefs`); +const kRef = Symbol(`kRef`); +const kUnref = Symbol(`kUnref`); +class FileHandle { + [kBaseFs]; + [kFd]; + [kRefs] = 1; + [kClosePromise] = void 0; + [kCloseResolve] = void 0; + [kCloseReject] = void 0; + constructor(fd, baseFs) { + this[kBaseFs] = baseFs; + this[kFd] = fd; + } + get fd() { + return this[kFd]; + } + async appendFile(data, options) { + try { + this[kRef](this.appendFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); + } finally { + this[kUnref](); + } + } + async chown(uid, gid) { + try { + this[kRef](this.chown); + return await this[kBaseFs].fchownPromise(this.fd, uid, gid); + } finally { + this[kUnref](); + } + } + async chmod(mode) { + try { + this[kRef](this.chmod); + return await this[kBaseFs].fchmodPromise(this.fd, mode); + } finally { + this[kUnref](); + } + } + createReadStream(options) { + return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); + } + createWriteStream(options) { + return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); + } + // FIXME: Missing FakeFS version + datasync() { + throw new Error(`Method not implemented.`); + } + // FIXME: Missing FakeFS version + sync() { + throw new Error(`Method not implemented.`); + } + async read(bufferOrOptions, offset, length, position) { + try { + this[kRef](this.read); + let buffer; + if (!Buffer.isBuffer(bufferOrOptions)) { + bufferOrOptions ??= {}; + buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384); + offset = bufferOrOptions.offset || 0; + length = bufferOrOptions.length ?? buffer.byteLength; + position = bufferOrOptions.position ?? null; + } else { + buffer = bufferOrOptions; + } + offset ??= 0; + length ??= 0; + if (length === 0) { + return { + bytesRead: length, + buffer + }; + } + const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); + return { + bytesRead, + buffer + }; + } finally { + this[kUnref](); + } + } + async readFile(options) { + try { + this[kRef](this.readFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + return await this[kBaseFs].readFilePromise(this.fd, encoding); + } finally { + this[kUnref](); + } + } + readLines(options) { + return readline.createInterface({ + input: this.createReadStream(options), + crlfDelay: Infinity + }); + } + async stat(opts) { + try { + this[kRef](this.stat); + return await this[kBaseFs].fstatPromise(this.fd, opts); + } finally { + this[kUnref](); + } + } + async truncate(len) { + try { + this[kRef](this.truncate); + return await this[kBaseFs].ftruncatePromise(this.fd, len); + } finally { + this[kUnref](); + } + } + // FIXME: Missing FakeFS version + utimes(atime, mtime) { + throw new Error(`Method not implemented.`); + } + async writeFile(data, options) { + try { + this[kRef](this.writeFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + await this[kBaseFs].writeFilePromise(this.fd, data, encoding); + } finally { + this[kUnref](); + } + } + async write(...args) { + try { + this[kRef](this.write); + if (ArrayBuffer.isView(args[0])) { + const [buffer, offset, length, position] = args; + const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0); + return { bytesWritten, buffer }; + } else { + const [data, position, encoding] = args; + const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); + return { bytesWritten, buffer: data }; + } + } finally { + this[kUnref](); + } + } + // TODO: Use writev from FakeFS when that is implemented + async writev(buffers, position) { + try { + this[kRef](this.writev); + let bytesWritten = 0; + if (typeof position !== `undefined`) { + for (const buffer of buffers) { + const writeResult = await this.write(buffer, void 0, void 0, position); + bytesWritten += writeResult.bytesWritten; + position += writeResult.bytesWritten; + } + } else { + for (const buffer of buffers) { + const writeResult = await this.write(buffer); + bytesWritten += writeResult.bytesWritten; + } + } + return { + buffers, + bytesWritten + }; + } finally { + this[kUnref](); + } + } + // FIXME: Missing FakeFS version + readv(buffers, position) { + throw new Error(`Method not implemented.`); + } + close() { + if (this[kFd] === -1) return Promise.resolve(); + if (this[kClosePromise]) return this[kClosePromise]; + this[kRefs]--; + if (this[kRefs] === 0) { + const fd = this[kFd]; + this[kFd] = -1; + this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { + this[kClosePromise] = void 0; + }); + } else { + this[kClosePromise] = new Promise((resolve, reject) => { + this[kCloseResolve] = resolve; + this[kCloseReject] = reject; + }).finally(() => { + this[kClosePromise] = void 0; + this[kCloseReject] = void 0; + this[kCloseResolve] = void 0; + }); + } + return this[kClosePromise]; + } + [kRef](caller) { + if (this[kFd] === -1) { + const err = new Error(`file closed`); + err.code = `EBADF`; + err.syscall = caller.name; + throw err; + } + this[kRefs]++; + } + [kUnref]() { + this[kRefs]--; + if (this[kRefs] === 0) { + const fd = this[kFd]; + this[kFd] = -1; + this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); + } + } +} + +const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ + `accessSync`, + `appendFileSync`, + `createReadStream`, + `createWriteStream`, + `chmodSync`, + `fchmodSync`, + `chownSync`, + `fchownSync`, + `closeSync`, + `copyFileSync`, + `linkSync`, + `lstatSync`, + `fstatSync`, + `lutimesSync`, + `mkdirSync`, + `openSync`, + `opendirSync`, + `readlinkSync`, + `readFileSync`, + `readdirSync`, + `readlinkSync`, + `realpathSync`, + `renameSync`, + `rmdirSync`, + `rmSync`, + `statSync`, + `symlinkSync`, + `truncateSync`, + `ftruncateSync`, + `unlinkSync`, + `unwatchFile`, + `utimesSync`, + `watch`, + `watchFile`, + `writeFileSync`, + `writeSync` +]); +const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ + `accessPromise`, + `appendFilePromise`, + `fchmodPromise`, + `chmodPromise`, + `fchownPromise`, + `chownPromise`, + `closePromise`, + `copyFilePromise`, + `linkPromise`, + `fstatPromise`, + `lstatPromise`, + `lutimesPromise`, + `mkdirPromise`, + `openPromise`, + `opendirPromise`, + `readdirPromise`, + `realpathPromise`, + `readFilePromise`, + `readdirPromise`, + `readlinkPromise`, + `renamePromise`, + `rmdirPromise`, + `rmPromise`, + `statPromise`, + `symlinkPromise`, + `truncatePromise`, + `ftruncatePromise`, + `unlinkPromise`, + `utimesPromise`, + `writeFilePromise`, + `writeSync` +]); +function patchFs(patchedFs, fakeFs) { + fakeFs = new NodePathFS(fakeFs); + const setupFn = (target, name, replacement) => { + const orig = target[name]; + target[name] = replacement; + if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) { + replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; + } + }; + { + setupFn(patchedFs, `exists`, (p, ...args) => { + const hasCallback = typeof args[args.length - 1] === `function`; + const callback = hasCallback ? args.pop() : () => { + }; + process.nextTick(() => { + fakeFs.existsPromise(p).then((exists) => { + callback(exists); + }, () => { + callback(false); + }); + }); + }); + setupFn(patchedFs, `read`, (...args) => { + let [fd, buffer, offset, length, position, callback] = args; + if (args.length <= 3) { + let options = {}; + if (args.length < 3) { + callback = args[1]; + } else { + options = args[1]; + callback = args[2]; + } + ({ + buffer = Buffer.alloc(16384), + offset = 0, + length = buffer.byteLength, + position + } = options); + } + if (offset == null) + offset = 0; + length |= 0; + if (length === 0) { + process.nextTick(() => { + callback(null, 0, buffer); + }); + return; + } + if (position == null) + position = -1; + process.nextTick(() => { + fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { + callback(null, bytesRead, buffer); + }, (error) => { + callback(error, 0, buffer); + }); + }); + }); + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``); + if (typeof patchedFs[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + const wrapper = (...args) => { + const hasCallback = typeof args[args.length - 1] === `function`; + const callback = hasCallback ? args.pop() : () => { + }; + process.nextTick(() => { + fakeImpl.apply(fakeFs, args).then((result) => { + callback(null, result); + }, (error) => { + callback(error); + }); + }); + }; + setupFn(patchedFs, origName, wrapper); + } + patchedFs.realpath.native = patchedFs.realpath; + } + { + setupFn(patchedFs, `existsSync`, (p) => { + try { + return fakeFs.existsSync(p); + } catch (error) { + return false; + } + }); + setupFn(patchedFs, `readSync`, (...args) => { + let [fd, buffer, offset, length, position] = args; + if (args.length <= 3) { + const options = args[2] || {}; + ({ offset = 0, length = buffer.byteLength, position } = options); + } + if (offset == null) + offset = 0; + length |= 0; + if (length === 0) + return 0; + if (position == null) + position = -1; + return fakeFs.readSync(fd, buffer, offset, length, position); + }); + for (const fnName of SYNC_IMPLEMENTATIONS) { + const origName = fnName; + if (typeof patchedFs[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); + } + patchedFs.realpathSync.native = patchedFs.realpathSync; + } + { + const patchedFsPromises = patchedFs.promises; + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``); + if (typeof patchedFsPromises[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + if (fnName === `open`) + continue; + setupFn(patchedFsPromises, origName, (pathLike, ...args) => { + if (pathLike instanceof FileHandle) { + return pathLike[origName].apply(pathLike, args); + } else { + return fakeImpl.call(fakeFs, pathLike, ...args); + } + }); + } + setupFn(patchedFsPromises, `open`, async (...args) => { + const fd = await fakeFs.openPromise(...args); + return new FileHandle(fd, fakeFs); + }); + } + { + patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { + const res = fakeFs.readPromise(fd, buffer, ...args); + return { bytesRead: await res, buffer }; + }; + patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { + const res = fakeFs.writePromise(fd, buffer, ...args); + return { bytesWritten: await res, buffer }; + }; + } +} + +let cachedInstance; +let registeredFactory = () => { + throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`); +}; +function setFactory(factory) { + registeredFactory = factory; +} +function getInstance() { + if (typeof cachedInstance === `undefined`) + cachedInstance = registeredFactory(); + return cachedInstance; +} + +var libzipSync = {exports: {}}; + +(function (module, exports) { +var frozenFs = Object.assign({}, fs__default.default); +var createModule = function() { + var _scriptDir = void 0; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function(createModule2) { + createModule2 = createModule2 || {}; + var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function(resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var moduleOverrides = {}; + var key; + for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } + } + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readBinary; + var nodeFS; + var nodePath; + { + { + scriptDirectory = __dirname + "/"; + } + read_ = function shell_read(filename, binary) { + var ret = tryParseAsDataURI(filename); + if (ret) { + return binary ? ret : ret.toString(); + } + if (!nodeFS) nodeFS = frozenFs; + if (!nodePath) nodePath = path__default.default; + filename = nodePath["normalize"](filename); + return nodeFS["readFileSync"](filename, binary ? null : "utf8"); + }; + readBinary = function readBinary2(filename) { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + if (process["argv"].length > 1) { + process["argv"][1].replace(/\\/g, "/"); + } + process["argv"].slice(2); + Module["inspect"] = function() { + return "[Emscripten Module object]"; + }; + } + Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } + } + moduleOverrides = null; + if (Module["arguments"]) ; + if (Module["thisProgram"]) ; + if (Module["quit"]) ; + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + Module["noExitRuntime"] || true; + if (typeof WebAssembly !== "object") { + abort("no native wasm support detected"); + } + function getValue(ptr, type, noSafe) { + type = type || "i8"; + if (type.charAt(type.length - 1) === "*") type = "i32"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return LE_HEAP_LOAD_I16((ptr >> 1) * 2); + case "i32": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "i64": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "float": + return LE_HEAP_LOAD_F32((ptr >> 2) * 4); + case "double": + return LE_HEAP_LOAD_F64((ptr >> 3) * 8); + default: + abort("invalid type for getValue: " + type); + } + return null; + } + var wasmMemory; + var ABORT = false; + function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text); + } + } + function getCFunc(ident) { + var func = Module["_" + ident]; + assert( + func, + "Cannot call unknown function " + ident + ", make sure it is exported" + ); + return func; + } + function ccall(ident, returnType, argTypes, args, opts) { + var toC = { + string: function(str) { + var ret2 = 0; + if (str !== null && str !== void 0 && str !== 0) { + var len = (str.length << 2) + 1; + ret2 = stackAlloc(len); + stringToUTF8(str, ret2, len); + } + return ret2; + }, + array: function(arr) { + var ret2 = stackAlloc(arr.length); + writeArrayToMemory(arr, ret2); + return ret2; + } + }; + function convertReturnValue(ret2) { + if (returnType === "string") return UTF8ToString(ret2); + if (returnType === "boolean") return Boolean(ret2); + return ret2; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + ret = convertReturnValue(ret); + if (stack !== 0) stackRestore(stack); + return ret; + } + function cwrap(ident, returnType, argTypes, opts) { + argTypes = argTypes || []; + var numericArgs = argTypes.every(function(type) { + return type === "number"; + }); + var numericRet = returnType !== "string"; + if (numericRet && numericArgs && !opts) { + return getCFunc(ident); + } + return function() { + return ccall(ident, returnType, argTypes, arguments); + }; + } + var UTF8Decoder = new TextDecoder("utf8"); + function UTF8ToString(ptr, maxBytesToRead) { + if (!ptr) return ""; + var maxPtr = ptr + maxBytesToRead; + for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; ) ++end; + return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); + } + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + } + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; + if (u <= 127) ++len; + else if (u <= 2047) len += 2; + else if (u <= 65535) len += 3; + else len += 4; + } + return len; + } + function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + function writeArrayToMemory(array, buffer2) { + HEAP8.set(array, buffer2); + } + function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - x % multiple; + } + return x; + } + var buffer, HEAP8, HEAPU8; + var HEAP_DATA_VIEW; + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf); + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = new Int16Array(buf); + Module["HEAP32"] = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = new Uint16Array(buf); + Module["HEAPU32"] = new Uint32Array(buf); + Module["HEAPF32"] = new Float32Array(buf); + Module["HEAPF64"] = new Float64Array(buf); + } + Module["INITIAL_MEMORY"] || 16777216; + var wasmTable; + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") + Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function initRuntime() { + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + var runDependencies = 0; + var dependenciesFulfilled = null; + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what += ""; + err(what); + ABORT = true; + what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + var wasmBinaryFile = "data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQIAEgACgCBGogACkDmC48AAAgACAAKQOYLkIIiDcDmC4gACgCoC5BCGsLNgKgLgsLEAAgACgCCBAGIABBADYCCAvwAQECf0F/IQECQCAALQAoDQAgACgCJEEDRgRAIABBDGoEQCAAQQA2AhAgAEEXNgIMC0F/DwsCQCAAKAIgBEAgACkDGELAAINCAFINASAAQQxqBEAgAEEANgIQIABBHTYCDAtBfw8LAkAgACgCACICRQ0AIAIQMkF/Sg0AIAAoAgAhASAAQQxqIgAEQCAAIAEoAgw2AgAgACABKAIQNgIEC0F/DwsgAEEAQgBBABAOQn9VDQAgACgCACIARQ0BIAAQGhpBfw8LQQAhASAAQQA7ATQgAEEMagRAIABCADcCDAsgACAAKAIgQQFqNgIgCyABCzsAIAAtACgEfkJ/BSAAKAIgRQRAIABBDGoiAARAIABBADYCBCAAQRI2AgALQn8PCyAAQQBCAEEHEA4LC5oIAQt/IABFBEAgARAJDwsgAUFATwRAQYSEAUEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEGIABBCGsiBSgCBCIJQXhxIQQCQCAJQQNxRQRAQQAgBkGAAkkNAhogBkEEaiAETQRAIAUhAiAEIAZrQZSIASgCAEEBdE0NAgtBAAwCCyAEIAVqIQcCQCAEIAZPBEAgBCAGayIDQRBJDQEgBSAJQQFxIAZyQQJyNgIEIAUgBmoiAiADQQNyNgIEIAcgBygCBEEBcjYCBCACIAMQOwwBCyAHQcyEASgCAEYEQEHAhAEoAgAgBGoiBCAGTQ0CIAUgCUEBcSAGckECcjYCBCAFIAZqIgMgBCAGayICQQFyNgIEQcCEASACNgIAQcyEASADNgIADAELIAdByIQBKAIARgRAQbyEASgCACAEaiIDIAZJDQICQCADIAZrIgJBEE8EQCAFIAlBAXEgBnJBAnI2AgQgBSAGaiIEIAJBAXI2AgQgAyAFaiIDIAI2AgAgAyADKAIEQX5xNgIEDAELIAUgCUEBcSADckECcjYCBCADIAVqIgIgAigCBEEBcjYCBEEAIQJBACEEC0HIhAEgBDYCAEG8hAEgAjYCAAwBCyAHKAIEIgNBAnENASADQXhxIARqIgogBkkNASAKIAZrIQwCQCADQf8BTQRAIAcoAggiBCADQQN2IgJBA3RB3IQBakYaIAQgBygCDCIDRgRAQbSEAUG0hAEoAgBBfiACd3E2AgAMAgsgBCADNgIMIAMgBDYCCAwBCyAHKAIYIQsCQCAHIAcoAgwiCEcEQCAHKAIIIgJBxIQBKAIASRogAiAINgIMIAggAjYCCAwBCwJAIAdBFGoiBCgCACICDQAgB0EQaiIEKAIAIgINAEEAIQgMAQsDQCAEIQMgAiIIQRRqIgQoAgAiAg0AIAhBEGohBCAIKAIQIgINAAsgA0EANgIACyALRQ0AAkAgByAHKAIcIgNBAnRB5IYBaiICKAIARgRAIAIgCDYCACAIDQFBuIQBQbiEASgCAEF+IAN3cTYCAAwCCyALQRBBFCALKAIQIAdGG2ogCDYCACAIRQ0BCyAIIAs2AhggBygCECICBEAgCCACNgIQIAIgCDYCGAsgBygCFCICRQ0AIAggAjYCFCACIAg2AhgLIAxBD00EQCAFIAlBAXEgCnJBAnI2AgQgBSAKaiICIAIoAgRBAXI2AgQMAQsgBSAJQQFxIAZyQQJyNgIEIAUgBmoiAyAMQQNyNgIEIAUgCmoiAiACKAIEQQFyNgIEIAMgDBA7CyAFIQILIAILIgIEQCACQQhqDwsgARAJIgVFBEBBAA8LIAUgAEF8QXggAEEEaygCACICQQNxGyACQXhxaiICIAEgASACSxsQBxogABAGIAUL6QEBA38CQCABRQ0AIAJBgDBxIgIEfwJ/IAJBgCBHBEBBAiACQYAQRg0BGiADBEAgA0EANgIEIANBEjYCAAtBAA8LQQQLIQJBAAVBAQshBkEUEAkiBEUEQCADBEAgA0EANgIEIANBDjYCAAtBAA8LIAQgAUEBahAJIgU2AgAgBUUEQCAEEAZBAA8LIAUgACABEAcgAWpBADoAACAEQQA2AhAgBEIANwMIIAQgATsBBCAGDQAgBCACECNBBUcNACAEKAIAEAYgBCgCDBAGIAQQBkEAIQQgAwRAIANBADYCBCADQRI2AgALCyAEC7UBAQJ/AkACQAJAAkACQAJAAkAgAC0ABQRAIAAtAABBAnFFDQELIAAoAjAQECAAQQA2AjAgAC0ABUUNAQsgAC0AAEEIcUUNAQsgACgCNBAcIABBADYCNCAALQAFRQ0BCyAALQAAQQRxRQ0BCyAAKAI4EBAgAEEANgI4IAAtAAVFDQELIAAtAABBgAFxRQ0BCyAAKAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkAvwEJAH8ACQB/AQkA/wAJAP8BCQAAAAcAQAAHACAABwBgAAcAEAAHAFAABwAwAAcAcAAHAAgABwBIAAcAKAAHAGgABwAYAAcAWAAHADgABwB4AAcABAAHAEQABwAkAAcAZAAHABQABwBUAAcANAAHAHQABwADAAgAgwAIAEMACADDAAgAIwAIAKMACABjAAgA4wAIAAAABQAQAAUACAAFABgABQAEAAUAFAAFAAwABQAcAAUAAgAFABIABQAKAAUAGgAFAAYABQAWAAUADgAFAB4ABQABAAUAEQAFAAkABQAZAAUABQAFABUABQANAAUAHQAFAAMABQATAAUACwAFABsABQAHAAUAFwAFAEGBywAL7AYBAgMEBAUFBgYGBgcHBwcICAgICAgICAkJCQkJCQkJCgoKCgoKCgoKCgoKCgoKCgsLCwsLCwsLCwsLCwsLCwsMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8AABAREhITExQUFBQVFRUVFhYWFhYWFhYXFxcXFxcXFxgYGBgYGBgYGBgYGBgYGBgZGRkZGRkZGRkZGRkZGRkZGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAAECAwQFBgcICAkJCgoLCwwMDAwNDQ0NDg4ODg8PDw8QEBAQEBAQEBEREREREREREhISEhISEhITExMTExMTExQUFBQUFBQUFBQUFBQUFBQVFRUVFRUVFRUVFRUVFRUVFhYWFhYWFhYWFhYWFhYWFhcXFxcXFxcXFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbHAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAQYTSAAutAQEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAgCAAAMApAAABAQAAHgEAAA8AAAAAJQAAQCoAAAAAAAAeAAAADwAAAAAAAADAKgAAAAAAABMAAAAHAEHg0wALTQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAEHQ1AALZQEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAEGA1gALIwIAAAADAAAABwAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAEHQ1gALTQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAEHA1wALZQEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAEG42AALASwAQcTYAAthLQAAAAQABAAIAAQALgAAAAQABgAQAAYALwAAAAQADAAgABgALwAAAAgAEAAgACAALwAAAAgAEACAAIAALwAAAAgAIACAAAABMAAAACAAgAACAQAEMAAAACAAAgECAQAQMABBsNkAC6UTAwAEAAUABgAHAAgACQAKAAsADQAPABEAEwAXABsAHwAjACsAMwA7AEMAUwBjAHMAgwCjAMMA4wACAQAAAAAAABAAEAAQABAAEAAQABAAEAARABEAEQARABIAEgASABIAEwATABMAEwAUABQAFAAUABUAFQAVABUAEABNAMoAAAABAAIAAwAEAAUABwAJAA0AEQAZACEAMQBBAGEAgQDBAAEBgQEBAgEDAQQBBgEIAQwBEAEYASABMAFAAWAAAAAAEAAQABAAEAARABEAEgASABMAEwAUABQAFQAVABYAFgAXABcAGAAYABkAGQAaABoAGwAbABwAHAAdAB0AQABAAGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcAAEAcKAAAIYAAACCAAAAmgAAAIAAAACIAAAAhAAAAJ4AAQBwYAAAhYAAAIGAAACZAAEwc7AAAIeAAACDgAAAnQABEHEQAACGgAAAgoAAAJsAAACAgAAAiIAAAISAAACfAAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyAARBw0AAAhkAAAIJAAACagAAAgEAAAIhAAACEQAAAnoABAHCAAACFwAAAgcAAAJmAAUB1MAAAh8AAAIPAAACdgAEgcXAAAIbAAACCwAAAm4AAAIDAAACIwAAAhMAAAJ+AAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnEABEHCwAACGIAAAgiAAAJpAAACAIAAAiCAAAIQgAACeQAEAcHAAAIWgAACBoAAAmUABQHQwAACHoAAAg6AAAJ1AASBxMAAAhqAAAIKgAACbQAAAgKAAAIigAACEoAAAn0ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACcwAEQcPAAAIZgAACCYAAAmsAAAIBgAACIYAAAhGAAAJ7AAQBwkAAAheAAAIHgAACZwAFAdjAAAIfgAACD4AAAncABIHGwAACG4AAAguAAAJvAAACA4AAAiOAAAITgAACfwAYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwgAQBwoAAAhhAAAIIQAACaIAAAgBAAAIgQAACEEAAAniABAHBgAACFkAAAgZAAAJkgATBzsAAAh5AAAIOQAACdIAEQcRAAAIaQAACCkAAAmyAAAICQAACIkAAAhJAAAJ8gAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnKABEHDQAACGUAAAglAAAJqgAACAUAAAiFAAAIRQAACeoAEAcIAAAIXQAACB0AAAmaABQHUwAACH0AAAg9AAAJ2gASBxcAAAhtAAAILQAACboAAAgNAAAIjQAACE0AAAn6ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACcYAEQcLAAAIYwAACCMAAAmmAAAIAwAACIMAAAhDAAAJ5gAQBwcAAAhbAAAIGwAACZYAFAdDAAAIewAACDsAAAnWABIHEwAACGsAAAgrAAAJtgAACAsAAAiLAAAISwAACfYAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzgARBw8AAAhnAAAIJwAACa4AAAgHAAAIhwAACEcAAAnuABAHCQAACF8AAAgfAAAJngAUB2MAAAh/AAAIPwAACd4AEgcbAAAIbwAACC8AAAm+AAAIDwAACI8AAAhPAAAJ/gBgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnBABAHCgAACGAAAAggAAAJoQAACAAAAAiAAAAIQAAACeEAEAcGAAAIWAAACBgAAAmRABMHOwAACHgAAAg4AAAJ0QARBxEAAAhoAAAIKAAACbEAAAgIAAAIiAAACEgAAAnxABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACckAEQcNAAAIZAAACCQAAAmpAAAIBAAACIQAAAhEAAAJ6QAQBwgAAAhcAAAIHAAACZkAFAdTAAAIfAAACDwAAAnZABIHFwAACGwAAAgsAAAJuQAACAwAAAiMAAAITAAACfkAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxQARBwsAAAhiAAAIIgAACaUAAAgCAAAIggAACEIAAAnlABAHBwAACFoAAAgaAAAJlQAUB0MAAAh6AAAIOgAACdUAEgcTAAAIagAACCoAAAm1AAAICgAACIoAAAhKAAAJ9QAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnNABEHDwAACGYAAAgmAAAJrQAACAYAAAiGAAAIRgAACe0AEAcJAAAIXgAACB4AAAmdABQHYwAACH4AAAg+AAAJ3QASBxsAAAhuAAAILgAACb0AAAgOAAAIjgAACE4AAAn9AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcMAEAcKAAAIYQAACCEAAAmjAAAIAQAACIEAAAhBAAAJ4wAQBwYAAAhZAAAIGQAACZMAEwc7AAAIeQAACDkAAAnTABEHEQAACGkAAAgpAAAJswAACAkAAAiJAAAISQAACfMAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJywARBw0AAAhlAAAIJQAACasAAAgFAAAIhQAACEUAAAnrABAHCAAACF0AAAgdAAAJmwAUB1MAAAh9AAAIPQAACdsAEgcXAAAIbQAACC0AAAm7AAAIDQAACI0AAAhNAAAJ+wAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnHABEHCwAACGMAAAgjAAAJpwAACAMAAAiDAAAIQwAACecAEAcHAAAIWwAACBsAAAmXABQHQwAACHsAAAg7AAAJ1wASBxMAAAhrAAAIKwAACbcAAAgLAAAIiwAACEsAAAn3ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc8AEQcPAAAIZwAACCcAAAmvAAAIBwAACIcAAAhHAAAJ7wAQBwkAAAhfAAAIHwAACZ8AFAdjAAAIfwAACD8AAAnfABIHGwAACG8AAAgvAAAJvwAACA8AAAiPAAAITwAACf8AEAUBABcFAQETBREAGwUBEBEFBQAZBQEEFQVBAB0FAUAQBQMAGAUBAhQFIQAcBQEgEgUJABoFAQgWBYEAQAUAABAFAgAXBYEBEwUZABsFARgRBQcAGQUBBhUFYQAdBQFgEAUEABgFAQMUBTEAHAUBMBIFDQAaBQEMFgXBAEAFAAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEHg7AALQREACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGx7QALIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBB6+0ACwEMAEH37QALFQwAAAAADAAAAAAJDAAAAAAADAAADABBpe4ACwEOAEGx7gALFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBB3+4ACwEQAEHr7gALHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBou8ACw4SAAAAEhISAAAAAAAACQBB0+8ACwELAEHf7wALFQoAAAAACgAAAAAJCwAAAAAACwAACwBBjfAACwEMAEGZ8AALJwwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRgBB5PAACwE+AEGL8QALBf//////AEHQ8QALVxkSRDsCPyxHFD0zMAobBkZLRTcPSQ6OFwNAHTxpKzYfSi0cASAlKSEIDBUWIi4QOD4LNDEYZHR1di9BCX85ESNDMkKJiosFBCYoJw0qHjWMBxpIkxOUlQBBsPIAC4oOSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w=="; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + var binary = tryParseAsDataURI(file); + if (binary) { + return binary; + } + if (readBinary) { + return readBinary(file); + } else { + throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; + } + } catch (err2) { + abort(err2); + } + } + function instantiateSync(file, info) { + var instance; + var module2; + var binary; + try { + binary = getBinary(file); + module2 = new WebAssembly.Module(binary); + instance = new WebAssembly.Instance(module2, info); + } catch (e) { + var str = e.toString(); + err("failed to compile wasm module: " + str); + if (str.includes("imported Memory") || str.includes("memory import")) { + err( + "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." + ); + } + throw e; + } + return [instance, module2]; + } + function createWasm() { + var info = { a: asmLibraryArg }; + function receiveInstance(instance, module2) { + var exports3 = instance.exports; + Module["asm"] = exports3; + wasmMemory = Module["asm"]["g"]; + updateGlobalBufferAndViews(wasmMemory.buffer); + wasmTable = Module["asm"]["W"]; + addOnInit(Module["asm"]["h"]); + removeRunDependency(); + } + addRunDependency(); + if (Module["instantiateWasm"]) { + try { + var exports2 = Module["instantiateWasm"](info, receiveInstance); + return exports2; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + return false; + } + } + var result = instantiateSync(wasmBinaryFile, info); + receiveInstance(result[0]); + return Module["asm"]; + } + function LE_HEAP_LOAD_F32(byteOffset) { + return HEAP_DATA_VIEW.getFloat32(byteOffset, true); + } + function LE_HEAP_LOAD_F64(byteOffset) { + return HEAP_DATA_VIEW.getFloat64(byteOffset, true); + } + function LE_HEAP_LOAD_I16(byteOffset) { + return HEAP_DATA_VIEW.getInt16(byteOffset, true); + } + function LE_HEAP_LOAD_I32(byteOffset) { + return HEAP_DATA_VIEW.getInt32(byteOffset, true); + } + function LE_HEAP_STORE_I32(byteOffset, value) { + HEAP_DATA_VIEW.setInt32(byteOffset, value, true); + } + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(Module); + continue; + } + var func = callback.func; + if (typeof func === "number") { + if (callback.arg === void 0) { + wasmTable.get(func)(); + } else { + wasmTable.get(func)(callback.arg); + } + } else { + func(callback.arg === void 0 ? null : callback.arg); + } + } + } + function _gmtime_r(time, tmPtr) { + var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3); + LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds()); + LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes()); + LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours()); + LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate()); + LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth()); + LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900); + LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); + LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0); + LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); + if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); + LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString); + return tmPtr; + } + function ___gmtime_r(a0, a1) { + return _gmtime_r(a0, a1); + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + function emscripten_realloc_buffer(size) { + try { + wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1; + } catch (e) { + } + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + var maxHeapSize = 2147483648; + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min( + overGrownHeapSize, + requestedSize + 100663296 + ); + var newSize = Math.min( + maxHeapSize, + alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) + ); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + return false; + } + function _setTempRet0(val) { + } + function _time(ptr) { + var ret = Date.now() / 1e3 | 0; + if (ptr) { + LE_HEAP_STORE_I32((ptr >> 2) * 4, ret); + } + return ret; + } + function _tzset() { + if (_tzset.called) return; + _tzset.called = true; + var currentYear = (/* @__PURE__ */ new Date()).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60); + LE_HEAP_STORE_I32( + (__get_daylight() >> 2) * 4, + Number(winterOffset != summerOffset) + ); + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + } + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = allocateUTF8(winterName); + var summerNamePtr = allocateUTF8(summerName); + if (summerOffset < winterOffset) { + LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr); + LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr); + } else { + LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr); + LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr); + } + } + function _timegm(tmPtr) { + _tzset(); + var time = Date.UTC( + LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900, + LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr >> 2) * 4), + 0 + ); + var date = new Date(time); + LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); + return date.getTime() / 1e3 | 0; + } + function intArrayFromBase64(s) { + { + var buf; + try { + buf = Buffer.from(s, "base64"); + } catch (_) { + buf = new Buffer(s, "base64"); + } + return new Uint8Array( + buf["buffer"], + buf["byteOffset"], + buf["byteLength"] + ); + } + } + function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); + } + var asmLibraryArg = { + e: ___gmtime_r, + c: _emscripten_memcpy_big, + d: _emscripten_resize_heap, + a: _setTempRet0, + b: _time, + f: _timegm + }; + var asm = createWasm(); + Module["___wasm_call_ctors"] = asm["h"]; + Module["_zip_ext_count_symlinks"] = asm["i"]; + Module["_zip_file_get_external_attributes"] = asm["j"]; + Module["_zipstruct_statS"] = asm["k"]; + Module["_zipstruct_stat_size"] = asm["l"]; + Module["_zipstruct_stat_mtime"] = asm["m"]; + Module["_zipstruct_stat_crc"] = asm["n"]; + Module["_zipstruct_errorS"] = asm["o"]; + Module["_zipstruct_error_code_zip"] = asm["p"]; + Module["_zipstruct_stat_comp_size"] = asm["q"]; + Module["_zipstruct_stat_comp_method"] = asm["r"]; + Module["_zip_close"] = asm["s"]; + Module["_zip_delete"] = asm["t"]; + Module["_zip_dir_add"] = asm["u"]; + Module["_zip_discard"] = asm["v"]; + Module["_zip_error_init_with_code"] = asm["w"]; + Module["_zip_get_error"] = asm["x"]; + Module["_zip_file_get_error"] = asm["y"]; + Module["_zip_error_strerror"] = asm["z"]; + Module["_zip_fclose"] = asm["A"]; + Module["_zip_file_add"] = asm["B"]; + Module["_free"] = asm["C"]; + var _malloc = Module["_malloc"] = asm["D"]; + Module["_zip_source_error"] = asm["E"]; + Module["_zip_source_seek"] = asm["F"]; + Module["_zip_file_set_external_attributes"] = asm["G"]; + Module["_zip_file_set_mtime"] = asm["H"]; + Module["_zip_fopen_index"] = asm["I"]; + Module["_zip_fread"] = asm["J"]; + Module["_zip_get_name"] = asm["K"]; + Module["_zip_get_num_entries"] = asm["L"]; + Module["_zip_source_read"] = asm["M"]; + Module["_zip_name_locate"] = asm["N"]; + Module["_zip_open_from_source"] = asm["O"]; + Module["_zip_set_file_compression"] = asm["P"]; + Module["_zip_source_buffer"] = asm["Q"]; + Module["_zip_source_buffer_create"] = asm["R"]; + Module["_zip_source_close"] = asm["S"]; + Module["_zip_source_free"] = asm["T"]; + Module["_zip_source_keep"] = asm["U"]; + Module["_zip_source_open"] = asm["V"]; + Module["_zip_source_tell"] = asm["X"]; + Module["_zip_stat_index"] = asm["Y"]; + var __get_tzname = Module["__get_tzname"] = asm["Z"]; + var __get_daylight = Module["__get_daylight"] = asm["_"]; + var __get_timezone = Module["__get_timezone"] = asm["$"]; + var stackSave = Module["stackSave"] = asm["aa"]; + var stackRestore = Module["stackRestore"] = asm["ba"]; + var stackAlloc = Module["stackAlloc"] = asm["ca"]; + Module["cwrap"] = cwrap; + Module["getValue"] = getValue; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; + }; + function run(args) { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + Module["run"] = run; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + return createModule2; + }; +}(); +module.exports = createModule; +}(libzipSync)); + +const createModule = libzipSync.exports; + +const number64 = [ + `number`, + // low + `number` + // high +]; +var Errors = /* @__PURE__ */ ((Errors2) => { + Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; + Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; + Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; + Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; + Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; + Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; + Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; + Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; + Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; + Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; + Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; + Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; + Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; + Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; + Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; + Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; + Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; + Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; + Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; + Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; + Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; + Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; + Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; + Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; + Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; + Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; + Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; + Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; + Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; + Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; + Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; + Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; + return Errors2; +})(Errors || {}); +const makeInterface = (emZip) => ({ + // Those are getters because they can change after memory growth + get HEAPU8() { + return emZip.HEAPU8; + }, + errors: Errors, + SEEK_SET: 0, + SEEK_CUR: 1, + SEEK_END: 2, + ZIP_CHECKCONS: 4, + ZIP_EXCL: 2, + ZIP_RDONLY: 16, + ZIP_FL_OVERWRITE: 8192, + ZIP_FL_COMPRESSED: 4, + ZIP_OPSYS_DOS: 0, + ZIP_OPSYS_AMIGA: 1, + ZIP_OPSYS_OPENVMS: 2, + ZIP_OPSYS_UNIX: 3, + ZIP_OPSYS_VM_CMS: 4, + ZIP_OPSYS_ATARI_ST: 5, + ZIP_OPSYS_OS_2: 6, + ZIP_OPSYS_MACINTOSH: 7, + ZIP_OPSYS_Z_SYSTEM: 8, + ZIP_OPSYS_CPM: 9, + ZIP_OPSYS_WINDOWS_NTFS: 10, + ZIP_OPSYS_MVS: 11, + ZIP_OPSYS_VSE: 12, + ZIP_OPSYS_ACORN_RISC: 13, + ZIP_OPSYS_VFAT: 14, + ZIP_OPSYS_ALTERNATE_MVS: 15, + ZIP_OPSYS_BEOS: 16, + ZIP_OPSYS_TANDEM: 17, + ZIP_OPSYS_OS_400: 18, + ZIP_OPSYS_OS_X: 19, + ZIP_CM_DEFAULT: -1, + ZIP_CM_STORE: 0, + ZIP_CM_DEFLATE: 8, + uint08S: emZip._malloc(1), + uint32S: emZip._malloc(4), + malloc: emZip._malloc, + free: emZip._free, + getValue: emZip.getValue, + openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), + close: emZip.cwrap(`zip_close`, `number`, [`number`]), + discard: emZip.cwrap(`zip_discard`, null, [`number`]), + getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]), + getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), + getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), + delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]), + statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), + fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), + fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), + fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]), + dir: { + add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) + }, + file: { + add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), + getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]), + getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), + setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), + setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), + setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) + }, + ext: { + countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) + }, + error: { + initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), + strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`]) + }, + name: { + locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) + }, + source: { + fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), + fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), + free: emZip.cwrap(`zip_source_free`, null, [`number`]), + keep: emZip.cwrap(`zip_source_keep`, null, [`number`]), + open: emZip.cwrap(`zip_source_open`, `number`, [`number`]), + close: emZip.cwrap(`zip_source_close`, `number`, [`number`]), + seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), + tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]), + read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), + error: emZip.cwrap(`zip_source_error`, `number`, [`number`]) + }, + struct: { + statS: emZip.cwrap(`zipstruct_statS`, `number`, []), + statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), + statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), + statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), + statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), + statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), + errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []), + errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) + } +}); + +function getArchivePart(path, extension) { + let idx = path.indexOf(extension); + if (idx <= 0) + return null; + let nextCharIdx = idx; + while (idx >= 0) { + nextCharIdx = idx + extension.length; + if (path[nextCharIdx] === ppath.sep) + break; + if (path[idx - 1] === ppath.sep) + return null; + idx = path.indexOf(extension, nextCharIdx); + } + if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) + return null; + return path.slice(0, nextCharIdx); +} +class ZipOpenFS extends MountFS { + static async openPromise(fn, opts) { + const zipOpenFs = new ZipOpenFS(opts); + try { + return await fn(zipOpenFs); + } finally { + zipOpenFs.saveAndClose(); + } + } + constructor(opts = {}) { + const fileExtensions = opts.fileExtensions; + const readOnlyArchives = opts.readOnlyArchives; + const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => { + for (const extension of fileExtensions) { + const result = getArchivePart(path, extension); + if (result) { + return result; + } + } + return null; + }; + const factorySync = (baseFs, p) => { + return new ZipFS(p, { + baseFs, + readOnly: readOnlyArchives, + stats: baseFs.statSync(p) + }); + }; + const factoryPromise = async (baseFs, p) => { + const zipOptions = { + baseFs, + readOnly: readOnlyArchives, + stats: await baseFs.statPromise(p) + }; + return () => { + return new ZipFS(p, zipOptions); + }; + }; + super({ + ...opts, + factorySync, + factoryPromise, + getMountPoint + }); + } +} + +const DEFAULT_COMPRESSION_LEVEL = `mixed`; +function toUnixTimestamp(time) { + if (typeof time === `string` && String(+time) === time) + return +time; + if (typeof time === `number` && Number.isFinite(time)) { + if (time < 0) { + return Date.now() / 1e3; + } else { + return time; + } + } + if (nodeUtils.types.isDate(time)) + return time.getTime() / 1e3; + throw new Error(`Invalid time`); +} +function makeEmptyArchive() { + return Buffer.from([ + 80, + 75, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]); +} +class LibzipError extends Error { + code; + constructor(message, code) { + super(message); + this.name = `Libzip Error`; + this.code = code; + } +} +class ZipFS extends BasePortableFakeFS { + libzip; + baseFs; + path; + stats; + zip; + lzSource; + level; + listings = /* @__PURE__ */ new Map(); + entries = /* @__PURE__ */ new Map(); + /** + * A cache of indices mapped to file sources. + * Populated by `setFileSource` calls. + * Required for supporting read after write. + */ + fileSources = /* @__PURE__ */ new Map(); + symlinkCount; + fds = /* @__PURE__ */ new Map(); + nextFd = 0; + ready = false; + readOnly = false; + constructor(source, opts = {}) { + super(); + const pathOptions = opts; + this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; + source ??= makeEmptyArchive(); + if (typeof source === `string`) { + const { baseFs = new NodeFS() } = pathOptions; + this.baseFs = baseFs; + this.path = source; + } else { + this.path = null; + this.baseFs = null; + } + if (opts.stats) { + this.stats = opts.stats; + } else { + if (typeof source === `string`) { + try { + this.stats = this.baseFs.statSync(source); + } catch (error) { + if (error.code === `ENOENT` && pathOptions.create) { + this.stats = makeDefaultStats(); + } else { + throw error; + } + } + } else { + this.stats = makeDefaultStats(); + } + } + this.libzip = getInstance(); + const errPtr = this.libzip.malloc(4); + try { + let flags = 0; + if (opts.readOnly) { + flags |= this.libzip.ZIP_RDONLY; + this.readOnly = true; + } + if (typeof source === `string`) + source = pathOptions.create ? makeEmptyArchive() : this.baseFs.readFileSync(source); + const lzSource = this.allocateUnattachedSource(source); + try { + this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); + this.lzSource = lzSource; + } catch (error) { + this.libzip.source.free(lzSource); + throw error; + } + if (this.zip === 0) { + const error = this.libzip.struct.errorS(); + this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); + throw this.makeLibzipError(error); + } + } finally { + this.libzip.free(errPtr); + } + this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); + const entryCount = this.libzip.getNumEntries(this.zip, 0); + for (let t = 0; t < entryCount; ++t) { + const raw = this.libzip.getName(this.zip, t, 0); + if (ppath.isAbsolute(raw)) + continue; + const p = ppath.resolve(PortablePath.root, raw); + this.registerEntry(p, t); + if (raw.endsWith(`/`)) { + this.registerListing(p); + } + } + this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); + if (this.symlinkCount === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + this.ready = true; + } + makeLibzipError(error) { + const errorCode = this.libzip.struct.errorCodeZip(error); + const strerror = this.libzip.error.strerror(error); + const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); + if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) + throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); + return libzipError; + } + getExtractHint(hints) { + for (const fileName of this.entries.keys()) { + const ext = this.pathUtils.extname(fileName); + if (hints.relevantExtensions.has(ext)) { + return true; + } + } + return false; + } + getAllFiles() { + return Array.from(this.entries.keys()); + } + getRealPath() { + if (!this.path) + throw new Error(`ZipFS don't have real paths when loaded from a buffer`); + return this.path; + } + prepareClose() { + if (!this.ready) + throw EBUSY(`archive closed, close`); + unwatchAllFiles(this); + } + getBufferAndClose() { + this.prepareClose(); + if (this.entries.size === 0) { + this.discardAndClose(); + return makeEmptyArchive(); + } + try { + this.libzip.source.keep(this.lzSource); + if (this.libzip.close(this.zip) === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + if (this.libzip.source.open(this.lzSource) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + const size = this.libzip.source.tell(this.lzSource); + if (size === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + const buffer = this.libzip.malloc(size); + if (!buffer) + throw new Error(`Couldn't allocate enough memory`); + try { + const rc = this.libzip.source.read(this.lzSource, buffer, size); + if (rc === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + else if (rc < size) + throw new Error(`Incomplete read`); + else if (rc > size) + throw new Error(`Overread`); + let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size)); + if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE) + result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]); + return result; + } finally { + this.libzip.free(buffer); + } + } finally { + this.libzip.source.close(this.lzSource); + this.libzip.source.free(this.lzSource); + this.ready = false; + } + } + discardAndClose() { + this.prepareClose(); + this.libzip.discard(this.zip); + this.ready = false; + } + saveAndClose() { + if (!this.path || !this.baseFs) + throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); + if (this.readOnly) { + this.discardAndClose(); + return; + } + const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; + this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode }); + this.ready = false; + } + resolve(p) { + return ppath.resolve(PortablePath.root, p); + } + async openPromise(p, flags, mode) { + return this.openSync(p, flags, mode); + } + openSync(p, flags, mode) { + const fd = this.nextFd++; + this.fds.set(fd, { cursor: 0, p }); + return fd; + } + hasOpenFileHandles() { + return !!this.fds.size; + } + async opendirPromise(p, opts) { + return this.opendirSync(p, opts); + } + opendirSync(p, opts = {}) { + const resolvedP = this.resolveFilename(`opendir '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`opendir '${p}'`); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`opendir '${p}'`); + const entries = [...directoryListing]; + const fd = this.openSync(resolvedP, `r`); + const onClose = () => { + this.closeSync(fd); + }; + return opendir(this, resolvedP, entries, { onClose }); + } + async readPromise(fd, buffer, offset, length, position) { + return this.readSync(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + const realPosition = position === -1 || position === null ? entry.cursor : position; + const source = this.readFileSync(entry.p); + source.copy(buffer, offset, realPosition, realPosition + length); + const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); + if (position === -1 || position === null) + entry.cursor += bytesRead; + return bytesRead; + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.writeSync(fd, buffer, position); + } else { + return this.writeSync(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + throw new Error(`Unimplemented`); + } + async closePromise(fd) { + return this.closeSync(fd); + } + closeSync(fd) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + this.fds.delete(fd); + } + createReadStream(p, { encoding } = {}) { + if (p === null) + throw new Error(`Unimplemented`); + const fd = this.openSync(p, `r`); + const stream$1 = Object.assign( + new stream.PassThrough({ + emitClose: true, + autoDestroy: true, + destroy: (error, callback) => { + clearImmediate(immediate); + this.closeSync(fd); + callback(error); + } + }), + { + close() { + stream$1.destroy(); + }, + bytesRead: 0, + path: p, + // "This property is `true` if the underlying file has not been opened yet" + pending: false + } + ); + const immediate = setImmediate(async () => { + try { + const data = await this.readFilePromise(p, encoding); + stream$1.bytesRead = data.length; + stream$1.end(data); + } catch (error) { + stream$1.destroy(error); + } + }); + return stream$1; + } + createWriteStream(p, { encoding } = {}) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (p === null) + throw new Error(`Unimplemented`); + const chunks = []; + const fd = this.openSync(p, `w`); + const stream$1 = Object.assign( + new stream.PassThrough({ + autoDestroy: true, + emitClose: true, + destroy: (error, callback) => { + try { + if (error) { + callback(error); + } else { + this.writeFileSync(p, Buffer.concat(chunks), encoding); + callback(null); + } + } catch (err) { + callback(err); + } finally { + this.closeSync(fd); + } + } + }), + { + close() { + stream$1.destroy(); + }, + bytesWritten: 0, + path: p, + // "This property is `true` if the underlying file has not been opened yet" + pending: false + } + ); + stream$1.on(`data`, (chunk) => { + const chunkBuffer = Buffer.from(chunk); + stream$1.bytesWritten += chunkBuffer.length; + chunks.push(chunkBuffer); + }); + return stream$1; + } + async realpathPromise(p) { + return this.realpathSync(p); + } + realpathSync(p) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`lstat '${p}'`); + return resolvedP; + } + async existsPromise(p) { + return this.existsSync(p); + } + existsSync(p) { + if (!this.ready) + throw EBUSY(`archive closed, existsSync '${p}'`); + if (this.symlinkCount === 0) { + const resolvedP2 = ppath.resolve(PortablePath.root, p); + return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); + } + let resolvedP; + try { + resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); + } catch (error) { + return false; + } + if (resolvedP === void 0) + return false; + return this.entries.has(resolvedP) || this.listings.has(resolvedP); + } + async accessPromise(p, mode) { + return this.accessSync(p, mode); + } + accessSync(p, mode = fs.constants.F_OK) { + const resolvedP = this.resolveFilename(`access '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`access '${p}'`); + if (this.readOnly && mode & fs.constants.W_OK) { + throw EROFS(`access '${p}'`); + } + } + async statPromise(p, opts = { bigint: false }) { + if (opts.bigint) + return this.statSync(p, { bigint: true }); + return this.statSync(p); + } + statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { + const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); + if (resolvedP === void 0) + return void 0; + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { + if (opts.throwIfNoEntry === false) + return void 0; + throw ENOENT(`stat '${p}'`); + } + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`); + return this.statImpl(`stat '${p}'`, resolvedP, opts); + } + async fstatPromise(fd, opts) { + return this.fstatSync(fd, opts); + } + fstatSync(fd, opts) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstatSync`); + const { p } = entry; + const resolvedP = this.resolveFilename(`stat '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`stat '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`); + return this.statImpl(`fstat '${p}'`, resolvedP, opts); + } + async lstatPromise(p, opts = { bigint: false }) { + if (opts.bigint) + return this.lstatSync(p, { bigint: true }); + return this.lstatSync(p); + } + lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); + if (resolvedP === void 0) + return void 0; + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { + if (opts.throwIfNoEntry === false) + return void 0; + throw ENOENT(`lstat '${p}'`); + } + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`lstat '${p}'`); + return this.statImpl(`lstat '${p}'`, resolvedP, opts); + } + statImpl(reason, p, opts = {}) { + const entry = this.entries.get(p); + if (typeof entry !== `undefined`) { + const stat = this.libzip.struct.statS(); + const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const uid = this.stats.uid; + const gid = this.stats.gid; + const size = this.libzip.struct.statSize(stat) >>> 0; + const blksize = 512; + const blocks = Math.ceil(size / blksize); + const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1e3; + const atimeMs = mtimeMs; + const birthtimeMs = mtimeMs; + const ctimeMs = mtimeMs; + const atime = new Date(atimeMs); + const birthtime = new Date(birthtimeMs); + const ctime = new Date(ctimeMs); + const mtime = new Date(mtimeMs); + const type = this.listings.has(p) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG; + const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420; + const mode = type | this.getUnixMode(entry, defaultMode) & 511; + const crc = this.libzip.struct.statCrc(stat); + const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); + return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; + } + if (this.listings.has(p)) { + const uid = this.stats.uid; + const gid = this.stats.gid; + const size = 0; + const blksize = 512; + const blocks = 0; + const atimeMs = this.stats.mtimeMs; + const birthtimeMs = this.stats.mtimeMs; + const ctimeMs = this.stats.mtimeMs; + const mtimeMs = this.stats.mtimeMs; + const atime = new Date(atimeMs); + const birthtime = new Date(birthtimeMs); + const ctime = new Date(ctimeMs); + const mtime = new Date(mtimeMs); + const mode = fs.constants.S_IFDIR | 493; + const crc = 0; + const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); + return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; + } + throw new Error(`Unreachable`); + } + getUnixMode(index, defaultMode) { + const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; + if (opsys !== this.libzip.ZIP_OPSYS_UNIX) + return defaultMode; + return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; + } + registerListing(p) { + const existingListing = this.listings.get(p); + if (existingListing) + return existingListing; + const parentListing = this.registerListing(ppath.dirname(p)); + parentListing.add(ppath.basename(p)); + const newListing = /* @__PURE__ */ new Set(); + this.listings.set(p, newListing); + return newListing; + } + registerEntry(p, index) { + const parentListing = this.registerListing(ppath.dirname(p)); + parentListing.add(ppath.basename(p)); + this.entries.set(p, index); + } + unregisterListing(p) { + this.listings.delete(p); + const parentListing = this.listings.get(ppath.dirname(p)); + parentListing?.delete(ppath.basename(p)); + } + unregisterEntry(p) { + this.unregisterListing(p); + const entry = this.entries.get(p); + this.entries.delete(p); + if (typeof entry === `undefined`) + return; + this.fileSources.delete(entry); + if (this.isSymbolicLink(entry)) { + this.symlinkCount--; + } + } + deleteEntry(p, index) { + this.unregisterEntry(p); + const rc = this.libzip.delete(this.zip, index); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) { + if (!this.ready) + throw EBUSY(`archive closed, ${reason}`); + let resolvedP = ppath.resolve(PortablePath.root, p); + if (resolvedP === `/`) + return PortablePath.root; + const fileIndex = this.entries.get(resolvedP); + if (resolveLastComponent && fileIndex !== void 0) { + if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { + const target = this.getFileSource(fileIndex).toString(); + return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); + } else { + return resolvedP; + } + } + while (true) { + const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); + if (parentP === void 0) + return parentP; + const isDir = this.listings.has(parentP); + const doesExist = this.entries.has(parentP); + if (!isDir && !doesExist) { + if (throwIfNoEntry === false) + return void 0; + throw ENOENT(reason); + } + if (!isDir) + throw ENOTDIR(reason); + resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); + if (!resolveLastComponent || this.symlinkCount === 0) + break; + const index = this.libzip.name.locate(this.zip, resolvedP.slice(1), 0); + if (index === -1) + break; + if (this.isSymbolicLink(index)) { + const target = this.getFileSource(index).toString(); + resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); + } else { + break; + } + } + return resolvedP; + } + allocateBuffer(content) { + if (!Buffer.isBuffer(content)) + content = Buffer.from(content); + const buffer = this.libzip.malloc(content.byteLength); + if (!buffer) + throw new Error(`Couldn't allocate enough memory`); + const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); + heap.set(content); + return { buffer, byteLength: content.byteLength }; + } + allocateUnattachedSource(content) { + const error = this.libzip.struct.errorS(); + const { buffer, byteLength } = this.allocateBuffer(content); + const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error); + if (source === 0) { + this.libzip.free(error); + throw this.makeLibzipError(error); + } + return source; + } + allocateSource(content) { + const { buffer, byteLength } = this.allocateBuffer(content); + const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); + if (source === 0) { + this.libzip.free(buffer); + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + return source; + } + setFileSource(p, content) { + const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); + const target = ppath.relative(PortablePath.root, p); + const lzSource = this.allocateSource(content); + try { + const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); + if (newIndex === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + if (this.level !== `mixed`) { + const method = this.level === 0 ? this.libzip.ZIP_CM_STORE : this.libzip.ZIP_CM_DEFLATE; + const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + this.fileSources.set(newIndex, buffer); + return newIndex; + } catch (error) { + this.libzip.source.free(lzSource); + throw error; + } + } + isSymbolicLink(index) { + if (this.symlinkCount === 0) + return false; + const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); + if (attrs === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; + if (opsys !== this.libzip.ZIP_OPSYS_UNIX) + return false; + const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; + return (attributes & fs.constants.S_IFMT) === fs.constants.S_IFLNK; + } + getFileSource(index, opts = { asyncDecompress: false }) { + const cachedFileSource = this.fileSources.get(index); + if (typeof cachedFileSource !== `undefined`) + return cachedFileSource; + const stat = this.libzip.struct.statS(); + const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const size = this.libzip.struct.statCompSize(stat); + const compressionMethod = this.libzip.struct.statCompMethod(stat); + const buffer = this.libzip.malloc(size); + try { + const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); + if (file === 0) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + try { + const rc2 = this.libzip.fread(file, buffer, size, 0); + if (rc2 === -1) + throw this.makeLibzipError(this.libzip.file.getError(file)); + else if (rc2 < size) + throw new Error(`Incomplete read`); + else if (rc2 > size) + throw new Error(`Overread`); + const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); + const data = Buffer.from(memory); + if (compressionMethod === 0) { + this.fileSources.set(index, data); + return data; + } else if (opts.asyncDecompress) { + return new Promise((resolve, reject) => { + zlib__default.default.inflateRaw(data, (error, result) => { + if (error) { + reject(error); + } else { + this.fileSources.set(index, result); + resolve(result); + } + }); + }); + } else { + const decompressedData = zlib__default.default.inflateRawSync(data); + this.fileSources.set(index, decompressedData); + return decompressedData; + } + } finally { + this.libzip.fclose(file); + } + } finally { + this.libzip.free(buffer); + } + } + async fchmodPromise(fd, mask) { + return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); + } + fchmodSync(fd, mask) { + return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); + } + async chmodPromise(p, mask) { + return this.chmodSync(p, mask); + } + chmodSync(p, mask) { + if (this.readOnly) + throw EROFS(`chmod '${p}'`); + mask &= 493; + const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); + const entry = this.entries.get(resolvedP); + if (typeof entry === `undefined`) + throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); + const oldMod = this.getUnixMode(entry, fs.constants.S_IFREG | 0); + const newMod = oldMod & ~511 | mask; + const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + async fchownPromise(fd, uid, gid) { + return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); + } + fchownSync(fd, uid, gid) { + return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); + } + async chownPromise(p, uid, gid) { + return this.chownSync(p, uid, gid); + } + chownSync(p, uid, gid) { + throw new Error(`Unimplemented`); + } + async renamePromise(oldP, newP) { + return this.renameSync(oldP, newP); + } + renameSync(oldP, newP) { + throw new Error(`Unimplemented`); + } + async copyFilePromise(sourceP, destP, flags) { + const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); + const source = await this.getFileSource(indexSource, { asyncDecompress: true }); + const newIndex = this.setFileSource(resolvedDestP, source); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex); + } + } + copyFileSync(sourceP, destP, flags = 0) { + const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); + const source = this.getFileSource(indexSource); + const newIndex = this.setFileSource(resolvedDestP, source); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex); + } + } + prepareCopyFile(sourceP, destP, flags = 0) { + if (this.readOnly) + throw EROFS(`copyfile '${sourceP} -> '${destP}'`); + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); + const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); + const indexSource = this.entries.get(resolvedSourceP); + if (typeof indexSource === `undefined`) + throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); + const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); + const indexDest = this.entries.get(resolvedDestP); + if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) + throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); + return { + indexSource, + resolvedDestP, + indexDest + }; + } + async appendFilePromise(p, content, opts) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (typeof opts === `undefined`) + opts = { flag: `a` }; + else if (typeof opts === `string`) + opts = { flag: `a`, encoding: opts }; + else if (typeof opts.flag === `undefined`) + opts = { flag: `a`, ...opts }; + return this.writeFilePromise(p, content, opts); + } + appendFileSync(p, content, opts = {}) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (typeof opts === `undefined`) + opts = { flag: `a` }; + else if (typeof opts === `string`) + opts = { flag: `a`, encoding: opts }; + else if (typeof opts.flag === `undefined`) + opts = { flag: `a`, ...opts }; + return this.writeFileSync(p, content, opts); + } + fdToPath(fd, reason) { + const path = this.fds.get(fd)?.p; + if (typeof path === `undefined`) + throw EBADF(reason); + return path; + } + async writeFilePromise(p, content, opts) { + const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); + if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) + content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]); + if (encoding !== null) + content = content.toString(encoding); + const newIndex = this.setFileSource(resolvedP, content); + if (newIndex !== index) + this.registerEntry(resolvedP, newIndex); + if (mode !== null) { + await this.chmodPromise(resolvedP, mode); + } + } + writeFileSync(p, content, opts) { + const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); + if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) + content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); + if (encoding !== null) + content = content.toString(encoding); + const newIndex = this.setFileSource(resolvedP, content); + if (newIndex !== index) + this.registerEntry(resolvedP, newIndex); + if (mode !== null) { + this.chmodSync(resolvedP, mode); + } + } + prepareWriteFile(p, opts) { + if (typeof p === `number`) + p = this.fdToPath(p, `read`); + if (this.readOnly) + throw EROFS(`open '${p}'`); + const resolvedP = this.resolveFilename(`open '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`open '${p}'`); + let encoding = null, mode = null; + if (typeof opts === `string`) { + encoding = opts; + } else if (typeof opts === `object`) { + ({ + encoding = null, + mode = null + } = opts); + } + const index = this.entries.get(resolvedP); + return { + encoding, + mode, + resolvedP, + index + }; + } + async unlinkPromise(p) { + return this.unlinkSync(p); + } + unlinkSync(p) { + if (this.readOnly) + throw EROFS(`unlink '${p}'`); + const resolvedP = this.resolveFilename(`unlink '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`unlink '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`unlink '${p}'`); + this.deleteEntry(resolvedP, index); + } + async utimesPromise(p, atime, mtime) { + return this.utimesSync(p, atime, mtime); + } + utimesSync(p, atime, mtime) { + if (this.readOnly) + throw EROFS(`utimes '${p}'`); + const resolvedP = this.resolveFilename(`utimes '${p}'`, p); + this.utimesImpl(resolvedP, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.lutimesSync(p, atime, mtime); + } + lutimesSync(p, atime, mtime) { + if (this.readOnly) + throw EROFS(`lutimes '${p}'`); + const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); + this.utimesImpl(resolvedP, mtime); + } + utimesImpl(resolvedP, mtime) { + if (this.listings.has(resolvedP)) { + if (!this.entries.has(resolvedP)) + this.hydrateDirectory(resolvedP); + } + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + async mkdirPromise(p, opts) { + return this.mkdirSync(p, opts); + } + mkdirSync(p, { mode = 493, recursive = false } = {}) { + if (recursive) + return this.mkdirpSync(p, { chmod: mode }); + if (this.readOnly) + throw EROFS(`mkdir '${p}'`); + const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); + if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) + throw EEXIST(`mkdir '${p}'`); + this.hydrateDirectory(resolvedP); + this.chmodSync(resolvedP, mode); + return void 0; + } + async rmdirPromise(p, opts) { + return this.rmdirSync(p, opts); + } + rmdirSync(p, { recursive = false } = {}) { + if (this.readOnly) + throw EROFS(`rmdir '${p}'`); + if (recursive) { + this.removeSync(p); + return; + } + const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`rmdir '${p}'`); + if (directoryListing.size > 0) + throw ENOTEMPTY(`rmdir '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`rmdir '${p}'`); + this.deleteEntry(p, index); + } + async rmPromise(p, opts) { + return this.rmSync(p, opts); + } + rmSync(p, { recursive = false } = {}) { + if (this.readOnly) + throw EROFS(`rm '${p}'`); + if (recursive) { + this.removeSync(p); + return; + } + const resolvedP = this.resolveFilename(`rm '${p}'`, p); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`rm '${p}'`); + if (directoryListing.size > 0) + throw ENOTEMPTY(`rm '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`rm '${p}'`); + this.deleteEntry(p, index); + } + hydrateDirectory(resolvedP) { + const index = this.libzip.dir.add(this.zip, ppath.relative(PortablePath.root, resolvedP)); + if (index === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + this.registerListing(resolvedP); + this.registerEntry(resolvedP, index); + return index; + } + async linkPromise(existingP, newP) { + return this.linkSync(existingP, newP); + } + linkSync(existingP, newP) { + throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); + } + async symlinkPromise(target, p) { + return this.symlinkSync(target, p); + } + symlinkSync(target, p) { + if (this.readOnly) + throw EROFS(`symlink '${target}' -> '${p}'`); + const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`symlink '${target}' -> '${p}'`); + if (this.entries.has(resolvedP)) + throw EEXIST(`symlink '${target}' -> '${p}'`); + const index = this.setFileSource(resolvedP, target); + this.registerEntry(resolvedP, index); + const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (fs.constants.S_IFLNK | 511) << 16); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + this.symlinkCount += 1; + } + async readFilePromise(p, encoding) { + if (typeof encoding === `object`) + encoding = encoding ? encoding.encoding : void 0; + const data = await this.readFileBuffer(p, { asyncDecompress: true }); + return encoding ? data.toString(encoding) : data; + } + readFileSync(p, encoding) { + if (typeof encoding === `object`) + encoding = encoding ? encoding.encoding : void 0; + const data = this.readFileBuffer(p); + return encoding ? data.toString(encoding) : data; + } + readFileBuffer(p, opts = { asyncDecompress: false }) { + if (typeof p === `number`) + p = this.fdToPath(p, `read`); + const resolvedP = this.resolveFilename(`open '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`open '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`); + if (this.listings.has(resolvedP)) + throw EISDIR(`read`); + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + return this.getFileSource(entry, opts); + } + async readdirPromise(p, opts) { + return this.readdirSync(p, opts); + } + readdirSync(p, opts) { + const resolvedP = this.resolveFilename(`scandir '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`scandir '${p}'`); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`scandir '${p}'`); + if (opts?.recursive) { + if (opts?.withFileTypes) { + const entries = Array.from(directoryListing, (name) => { + return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { + name, + path: PortablePath.dot + }); + }); + for (const entry of entries) { + if (!entry.isDirectory()) + continue; + const subPath = ppath.join(entry.path, entry.name); + const subListing = this.listings.get(ppath.join(resolvedP, subPath)); + for (const child of subListing) { + entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), { + name: child, + path: subPath + })); + } + } + return entries; + } else { + const entries = [...directoryListing]; + for (const subPath of entries) { + const subListing = this.listings.get(ppath.join(resolvedP, subPath)); + if (typeof subListing === `undefined`) + continue; + for (const child of subListing) { + entries.push(ppath.join(subPath, child)); + } + } + return entries; + } + } else if (opts?.withFileTypes) { + return Array.from(directoryListing, (name) => { + return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { + name, + path: void 0 + }); + }); + } else { + return [...directoryListing]; + } + } + async readlinkPromise(p) { + const entry = this.prepareReadlink(p); + return (await this.getFileSource(entry, { asyncDecompress: true })).toString(); + } + readlinkSync(p) { + const entry = this.prepareReadlink(p); + return this.getFileSource(entry).toString(); + } + prepareReadlink(p) { + const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`readlink '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`); + if (this.listings.has(resolvedP)) + throw EINVAL(`readlink '${p}'`); + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + if (!this.isSymbolicLink(entry)) + throw EINVAL(`readlink '${p}'`); + return entry; + } + async truncatePromise(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`open '${p}'`); + const source = await this.getFileSource(index, { asyncDecompress: true }); + const truncated = Buffer.alloc(len, 0); + source.copy(truncated); + return await this.writeFilePromise(p, truncated); + } + truncateSync(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`open '${p}'`); + const source = this.getFileSource(index); + const truncated = Buffer.alloc(len, 0); + source.copy(truncated); + return this.writeFileSync(p, truncated); + } + async ftruncatePromise(fd, len) { + return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); + } + ftruncateSync(fd, len) { + return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); + } + watch(p, a, b) { + let persistent; + switch (typeof a) { + case `function`: + case `string`: + case `undefined`: + { + persistent = true; + } + break; + default: + { + ({ persistent = true } = a); + } + break; + } + if (!persistent) + return { on: () => { + }, close: () => { + } }; + const interval = setInterval(() => { + }, 24 * 60 * 60 * 1e3); + return { on: () => { + }, close: () => { + clearInterval(interval); + } }; + } + watchFile(p, a, b) { + const resolvedP = ppath.resolve(PortablePath.root, p); + return watchFile(this, resolvedP, a, b); + } + unwatchFile(p, cb) { + const resolvedP = ppath.resolve(PortablePath.root, p); + return unwatchFile(this, resolvedP, cb); + } +} + +setFactory(() => { + const emZip = createModule(); + return makeInterface(emZip); +}); + +var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { + ErrorCode2["API_ERROR"] = `API_ERROR`; + ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; + ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; + ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; + ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; + ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; + ErrorCode2["INTERNAL"] = `INTERNAL`; + ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; + ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; + return ErrorCode2; +})(ErrorCode || {}); +const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ + "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, + "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, + "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, + "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, + "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ +]); +function makeError(pnpCode, message, data = {}, code) { + code ??= MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; + const propertySpec = { + configurable: true, + writable: true, + enumerable: false + }; + return Object.defineProperties(new Error(message), { + code: { + ...propertySpec, + value: code + }, + pnpCode: { + ...propertySpec, + value: pnpCode + }, + data: { + ...propertySpec, + value: data + } + }); +} +function getIssuerModule(parent) { + let issuer = parent; + while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) + issuer = issuer.parent; + return issuer || null; +} +function getPathForDisplay(p) { + return npath.normalize(npath.fromPortablePath(p)); +} + +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; + +function readPackageScope(checkPath) { + const rootSeparatorIndex = checkPath.indexOf(npath.sep); + let separatorIndex; + do { + separatorIndex = checkPath.lastIndexOf(npath.sep); + checkPath = checkPath.slice(0, separatorIndex); + if (checkPath.endsWith(`${npath.sep}node_modules`)) + return false; + const pjson = readPackage(checkPath + npath.sep); + if (pjson) { + return { + data: pjson, + path: checkPath + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} +function readPackage(requestPath) { + const jsonPath = npath.resolve(requestPath, `package.json`); + if (!fs__default.default.existsSync(jsonPath)) + return null; + return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); +} +function ERR_REQUIRE_ESM(filename, parentPath = null) { + const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); + const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. +Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; + const err = new Error(msg); + err.code = `ERR_REQUIRE_ESM`; + return err; +} +function reportRequiredFilesToWatchMode(files) { + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); + if (WATCH_MODE_MESSAGE_USES_ARRAYS) { + process.send({ "watch:require": files }); + } else { + for (const filename of files) { + process.send({ "watch:require": filename }); + } + } + } +} + +function applyPatch(pnpapi, opts) { + let enableNativeHooks = true; + process.versions.pnp = String(pnpapi.VERSIONS.std); + const moduleExports = require$$0__default.default; + moduleExports.findPnpApi = (lookupSource) => { + const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource; + const apiPath = opts.manager.findApiPathFor(lookupPath); + if (apiPath === null) + return null; + const apiEntry = opts.manager.getApiEntry(apiPath, true); + return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; + }; + function getRequireStack(parent) { + const requireStack = []; + for (let cursor = parent; cursor; cursor = cursor.parent) + requireStack.push(cursor.filename || cursor.id); + return requireStack; + } + const originalModuleLoad = require$$0.Module._load; + require$$0.Module._load = function(request, parent, isMain) { + if (request === `pnpapi`) { + const parentApiPath = opts.manager.getApiPathFromParent(parent); + if (parentApiPath) { + return opts.manager.getApiEntry(parentApiPath, true).instance; + } + } + return originalModuleLoad.call(require$$0.Module, request, parent, isMain); + }; + function getIssuerSpecsFromPaths(paths) { + return paths.map((path) => ({ + apiPath: opts.manager.findApiPathFor(path), + path, + module: null + })); + } + function getIssuerSpecsFromModule(module) { + if (module && module.id !== `` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { + return [{ + apiPath: opts.manager.findApiPathFor(module.paths[0]), + path: module.paths[0], + module + }]; + } + const issuer = getIssuerModule(module); + if (issuer !== null) { + const path = npath.dirname(issuer.filename); + const apiPath = opts.manager.getApiPathFromParent(issuer); + return [{ apiPath, path, module }]; + } else { + const path = process.cwd(); + const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null); + return [{ apiPath, path, module }]; + } + } + function makeFakeParent(path) { + const fakeParent = new require$$0.Module(``); + const fakeFilePath = npath.join(path, `[file]`); + fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); + return fakeParent; + } + const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; + const originalModuleResolveFilename = require$$0.Module._resolveFilename; + require$$0.Module._resolveFilename = function(request, parent, isMain, options) { + if (require$$0.isBuiltin(request)) + return request; + if (!enableNativeHooks) + return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); + if (options && options.plugnplay === false) { + const { plugnplay, ...forwardedOptions } = options; + try { + enableNativeHooks = false; + return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); + } finally { + enableNativeHooks = true; + } + } + if (options) { + const optionNames = new Set(Object.keys(options)); + optionNames.delete(`paths`); + optionNames.delete(`plugnplay`); + if (optionNames.size > 0) { + throw makeError( + ErrorCode.UNSUPPORTED, + `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})` + ); + } + } + const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); + if (request.match(pathRegExp) === null) { + const parentDirectory = parent?.filename != null ? npath.dirname(parent.filename) : null; + const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; + if (absoluteRequest !== null) { + const apiPath = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : opts.manager.findApiPathFor(absoluteRequest); + if (apiPath !== null) { + issuerSpecs.unshift({ + apiPath, + path: parentDirectory, + module: null + }); + } + } + } + let firstError; + for (const { apiPath, path, module } of issuerSpecs) { + let resolution; + const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; + try { + if (issuerApi !== null) { + resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); + } else { + if (path === null) + throw new Error(`Assertion failed: Expected the path to be set`); + resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain); + } + } catch (error) { + firstError = firstError || error; + continue; + } + if (resolution !== null) { + return resolution; + } + } + const requireStack = getRequireStack(parent); + Object.defineProperty(firstError, `requireStack`, { + configurable: true, + writable: true, + enumerable: false, + value: requireStack + }); + if (requireStack.length > 0) + firstError.message += ` +Require stack: +- ${requireStack.join(` +- `)}`; + if (typeof firstError.pnpCode === `string`) + Error.captureStackTrace(firstError); + throw firstError; + }; + const originalFindPath = require$$0.Module._findPath; + require$$0.Module._findPath = function(request, paths, isMain) { + if (request === `pnpapi`) + return false; + if (!enableNativeHooks) + return originalFindPath.call(require$$0.Module, request, paths, isMain); + const isAbsolute = npath.isAbsolute(request); + if (isAbsolute) + paths = [``]; + else if (!paths || paths.length === 0) + return false; + for (const path of paths) { + let resolution; + try { + const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); + if (pnpApiPath !== null) { + const api = opts.manager.getApiEntry(pnpApiPath, true).instance; + resolution = api.resolveRequest(request, path) || false; + } else { + resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); + } + } catch (error) { + continue; + } + if (resolution) { + return resolution; + } + } + return false; + }; + const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; + require$$0.Module._extensions[`.js`] = function(module, filename) { + if (filename.endsWith(`.js`)) { + const pkg = readPackageScope(filename); + if (pkg && pkg.data?.type === `module`) { + const err = ERR_REQUIRE_ESM(filename, module.parent?.filename); + Error.captureStackTrace(err); + throw err; + } + } + originalExtensionJSFunction.call(this, module, filename); + }; + const originalDlopen = process.dlopen; + process.dlopen = function(...args) { + const [module, filename, ...rest] = args; + return originalDlopen.call( + this, + module, + npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), + ...rest + ); + }; + const originalEmit = process.emit; + process.emit = function(name, data, ...args) { + if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) + return false; + return originalEmit.apply(process, arguments); + }; + patchFs(fs__default.default, new PosixFS(opts.fakeFs)); +} + +function hydrateRuntimeState(data, { basePath }) { + const portablePath = npath.toPortablePath(basePath); + const absolutePortablePath = ppath.resolve(portablePath); + const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; + const packageLocatorsByLocations = /* @__PURE__ */ new Map(); + const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { + return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { + if (packageName === null !== (packageReference === null)) + throw new Error(`Assertion failed: The name and reference should be null, or neither should`); + const discardFromLookup = packageInformationData.discardFromLookup ?? false; + const packageLocator = { name: packageName, reference: packageReference }; + const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); + if (!entry) { + packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); + } else { + entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; + if (!discardFromLookup) { + entry.locator = packageLocator; + } + } + let resolvedPackageLocation = null; + return [packageReference, { + packageDependencies: new Map(packageInformationData.packageDependencies), + packagePeers: new Set(packageInformationData.packagePeers), + linkType: packageInformationData.linkType, + discardFromLookup, + // we only need this for packages that are used by the currently running script + // this is a lazy getter because `ppath.join` has some overhead + get packageLocation() { + return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); + } + }]; + }))]; + })); + const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { + return [packageName, new Set(packageReferences)]; + })); + const fallbackPool = new Map(data.fallbackPool); + const dependencyTreeRoots = data.dependencyTreeRoots; + const enableTopLevelFallback = data.enableTopLevelFallback; + return { + basePath: portablePath, + dependencyTreeRoots, + enableTopLevelFallback, + fallbackExclusionList, + fallbackPool, + ignorePattern, + packageLocatorsByLocations, + packageRegistry + }; +} + +const ArrayIsArray = Array.isArray; +const JSONStringify = JSON.stringify; +const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; +const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); +const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); +const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); +const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); +const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); +const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); +const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); +const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); +const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); +const SafeMap = Map; +const JSONParse = JSON.parse; + +function createErrorType(code, messageCreator, errorType) { + return class extends errorType { + constructor(...args) { + super(messageCreator(...args)); + this.code = code; + this.name = `${errorType.name} [${code}]`; + } + }; +} +const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( + `ERR_PACKAGE_IMPORT_NOT_DEFINED`, + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; + }, + TypeError +); +const ERR_INVALID_MODULE_SPECIFIER = createErrorType( + `ERR_INVALID_MODULE_SPECIFIER`, + (request, reason, base = void 0) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; + }, + TypeError +); +const ERR_INVALID_PACKAGE_TARGET = createErrorType( + `ERR_INVALID_PACKAGE_TARGET`, + (pkgPath, key, target, isImport = false, base = void 0) => { + const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); + if (key === `.`) { + assert__default.default(isImport === false); + return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + } + return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + }, + Error +); +const ERR_INVALID_PACKAGE_CONFIG = createErrorType( + `ERR_INVALID_PACKAGE_CONFIG`, + (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; + }, + Error +); +const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( + "ERR_PACKAGE_PATH_NOT_EXPORTED", + (pkgPath, subpath, base = void 0) => { + if (subpath === ".") + return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + }, + Error +); + +function filterOwnProperties(source, keys) { + const filtered = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (ObjectPrototypeHasOwnProperty(source, key)) { + filtered[key] = source[key]; + } + } + return filtered; +} + +const packageJSONCache = new SafeMap(); +function getPackageConfig(path, specifier, base, readFileSyncFn) { + const existing = packageJSONCache.get(path); + if (existing !== void 0) { + return existing; + } + const source = readFileSyncFn(path); + if (source === void 0) { + const packageConfig2 = { + pjsonPath: path, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(path, packageConfig2); + return packageConfig2; + } + let packageJSON; + try { + packageJSON = JSONParse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), + error.message + ); + } + let { imports, main, name, type } = filterOwnProperties(packageJSON, [ + "imports", + "main", + "name", + "type" + ]); + const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; + if (typeof imports !== "object" || imports === null) { + imports = void 0; + } + if (typeof main !== "string") { + main = void 0; + } + if (typeof name !== "string") { + name = void 0; + } + if (type !== "module" && type !== "commonjs") { + type = "none"; + } + const packageConfig = { + pjsonPath: path, + exists: true, + main, + name, + type, + exports, + imports + }; + packageJSONCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved, readFileSyncFn) { + let packageJSONUrl = new URL("./package.json", resolved); + while (true) { + const packageJSONPath2 = packageJSONUrl.pathname; + if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { + break; + } + const packageConfig2 = getPackageConfig( + url.fileURLToPath(packageJSONUrl), + resolved, + void 0, + readFileSyncFn + ); + if (packageConfig2.exists) { + return packageConfig2; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL("../package.json", packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = url.fileURLToPath(packageJSONUrl); + const packageConfig = { + pjsonPath: packageJSONPath, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(packageJSONPath, packageConfig); + return packageConfig; +} + +function throwImportNotDefined(specifier, packageJSONUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), + url.fileURLToPath(base) + ); +} +function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && url.fileURLToPath(base) + ); +} +function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { + if (typeof target === "object" && target !== null) { + target = JSONStringify(target, null, ""); + } else { + target = `${target}`; + } + throw new ERR_INVALID_PACKAGE_TARGET( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + target, + internal, + base && url.fileURLToPath(base) + ); +} +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const patternRegEx = /\*/g; +function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { + if (subpath !== "" && !pattern && target[target.length - 1] !== "/") + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (!StringPrototypeStartsWith(target, "./")) { + if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { + let isURL = false; + try { + new URL(target); + isURL = true; + } catch { + } + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; + return exportTarget; + } + } + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + } + if (RegExpPrototypeExec( + invalidSegmentRegEx, + StringPrototypeSlice(target, 2) + ) !== null) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + const resolved = new URL(target, packageJSONUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL(".", packageJSONUrl).pathname; + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (subpath === "") return resolved; + if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { + const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; + throwInvalidSubpath(request, packageJSONUrl, internal, base); + } + if (pattern) { + return new URL( + RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) + ); + } + return new URL(subpath, resolved); +} +function isArrayIndex(key) { + const keyNum = +key; + if (`${keyNum}` !== key) return false; + return keyNum >= 0 && keyNum < 4294967295; +} +function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === "string") { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJSONUrl, + base, + pattern, + internal); + } else if (ArrayIsArray(target)) { + if (target.length === 0) { + return null; + } + let lastException; + for (let i = 0; i < target.length; i++) { + const targetItem = target[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget( + packageJSONUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (e) { + lastException = e; + if (e.code === "ERR_INVALID_PACKAGE_TARGET") { + continue; + } + throw e; + } + if (resolveResult === void 0) { + continue; + } + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === void 0 || lastException === null) + return lastException; + throw lastException; + } else if (typeof target === "object" && target !== null) { + const keys = ObjectGetOwnPropertyNames(target); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + '"exports" cannot contain numeric property keys.' + ); + } + } + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key === "default" || conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolveResult === void 0) continue; + return resolveResult; + } + } + return void 0; + } else if (target === null) { + return null; + } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJSONUrl, + internal, + base + ); +} +function patternKeyCompare(a, b) { + const aPatternIndex = StringPrototypeIndexOf(a, "*"); + const bPatternIndex = StringPrototypeIndexOf(b, "*"); + const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLenA > baseLenB) return -1; + if (baseLenB > baseLenA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { + if (typeof exports === "string" || ArrayIsArray(exports)) return true; + if (typeof exports !== "object" || exports === null) return false; + const keys = ObjectGetOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + for (let j = 0; j < keys.length; j++) { + const key = keys[j]; + const curIsConditionalSugar = key === "" || key[0] !== "."; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` + ); + } + } + return isConditionalSugar; +} +function throwExportsNotFound(subpath, packageJSONUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + base && url.fileURLToPath(base) + ); +} +const emittedPackageWarnings = /* @__PURE__ */ new Set(); +function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + const pjsonPath = url.fileURLToPath(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + "|" + match)) return; + emittedPackageWarnings.add(pjsonPath + "|" + match); + process.emitWarning( + `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, + "DeprecationWarning", + "DEP0155" + ); +} +function packageExportsResolve({ + packageJSONUrl, + packageSubpath, + exports, + base, + conditions +}) { + if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) + exports = { ".": exports }; + if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { + const target = exports[packageSubpath]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + "", + packageSubpath, + base, + false, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(exports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + packageSubpath, + StringPrototypeSlice(key, 0, patternIndex) + )) { + if (StringPrototypeEndsWith(packageSubpath, "/")) + emitTrailingSlashPatternDeprecation( + packageSubpath, + packageJSONUrl, + base + ); + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + packageSubpath, + patternIndex, + packageSubpath.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + throwExportsNotFound(packageSubpath, packageJSONUrl, base); +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { + if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { + const reason = "is not a valid internal imports specifier name"; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); + } + let packageJSONUrl; + const packageConfig = getPackageScopeConfig(base, readFileSyncFn); + if (packageConfig.exists) { + packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { + const resolveResult = resolvePackageTarget( + packageJSONUrl, + imports[name], + "", + name, + base, + false, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } else { + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(imports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + name, + StringPrototypeSlice(key, 0, patternIndex) + )) { + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + name, + patternIndex, + name.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } + } + } + } + throwImportNotDefined(name, packageJSONUrl, base); +} + +const flagSymbol = Symbol('arg flag'); + +class ArgError extends Error { + constructor(msg, code) { + super(msg); + this.name = 'ArgError'; + this.code = code; + + Object.setPrototypeOf(this, ArgError.prototype); + } +} + +function arg( + opts, + { + argv = process.argv.slice(2), + permissive = false, + stopAtPositional = false + } = {} +) { + if (!opts) { + throw new ArgError( + 'argument specification object is required', + 'ARG_CONFIG_NO_SPEC' + ); + } + + const result = { _: [] }; + + const aliases = {}; + const handlers = {}; + + for (const key of Object.keys(opts)) { + if (!key) { + throw new ArgError( + 'argument key cannot be an empty string', + 'ARG_CONFIG_EMPTY_KEY' + ); + } + + if (key[0] !== '-') { + throw new ArgError( + `argument key must start with '-' but found: '${key}'`, + 'ARG_CONFIG_NONOPT_KEY' + ); + } + + if (key.length === 1) { + throw new ArgError( + `argument key must have a name; singular '-' keys are not allowed: ${key}`, + 'ARG_CONFIG_NONAME_KEY' + ); + } + + if (typeof opts[key] === 'string') { + aliases[key] = opts[key]; + continue; + } + + let type = opts[key]; + let isFlag = false; + + if ( + Array.isArray(type) && + type.length === 1 && + typeof type[0] === 'function' + ) { + const [fn] = type; + type = (value, name, prev = []) => { + prev.push(fn(value, name, prev[prev.length - 1])); + return prev; + }; + isFlag = fn === Boolean || fn[flagSymbol] === true; + } else if (typeof type === 'function') { + isFlag = type === Boolean || type[flagSymbol] === true; + } else { + throw new ArgError( + `type missing or not a function or valid array type: ${key}`, + 'ARG_CONFIG_VAD_TYPE' + ); + } + + if (key[1] !== '-' && key.length > 2) { + throw new ArgError( + `short argument keys (with a single hyphen) must have only one character: ${key}`, + 'ARG_CONFIG_SHORTOPT_TOOLONG' + ); + } + + handlers[key] = [type, isFlag]; + } + + for (let i = 0, len = argv.length; i < len; i++) { + const wholeArg = argv[i]; + + if (stopAtPositional && result._.length > 0) { + result._ = result._.concat(argv.slice(i)); + break; + } + + if (wholeArg === '--') { + result._ = result._.concat(argv.slice(i + 1)); + break; + } + + if (wholeArg.length > 1 && wholeArg[0] === '-') { + /* eslint-disable operator-linebreak */ + const separatedArguments = + wholeArg[1] === '-' || wholeArg.length === 2 + ? [wholeArg] + : wholeArg + .slice(1) + .split('') + .map((a) => `-${a}`); + /* eslint-enable operator-linebreak */ + + for (let j = 0; j < separatedArguments.length; j++) { + const arg = separatedArguments[j]; + const [originalArgName, argStr] = + arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; + + let argName = originalArgName; + while (argName in aliases) { + argName = aliases[argName]; + } + + if (!(argName in handlers)) { + if (permissive) { + result._.push(arg); + continue; + } else { + throw new ArgError( + `unknown or unexpected option: ${originalArgName}`, + 'ARG_UNKNOWN_OPTION' + ); + } + } + + const [type, isFlag] = handlers[argName]; + + if (!isFlag && j + 1 < separatedArguments.length) { + throw new ArgError( + `option requires argument (but was followed by another short argument): ${originalArgName}`, + 'ARG_MISSING_REQUIRED_SHORTARG' + ); + } + + if (isFlag) { + result[argName] = type(true, argName, result[argName]); + } else if (argStr === undefined) { + if ( + argv.length < i + 2 || + (argv[i + 1].length > 1 && + argv[i + 1][0] === '-' && + !( + argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && + (type === Number || + // eslint-disable-next-line no-undef + (typeof BigInt !== 'undefined' && type === BigInt)) + )) + ) { + const extended = + originalArgName === argName ? '' : ` (alias for ${argName})`; + throw new ArgError( + `option requires argument: ${originalArgName}${extended}`, + 'ARG_MISSING_REQUIRED_LONGARG' + ); + } + + result[argName] = type(argv[i + 1], argName, result[argName]); + ++i; + } else { + result[argName] = type(argStr, argName, result[argName]); + } + } + } else { + result._.push(wholeArg); + } + } + + return result; +} + +arg.flag = (fn) => { + fn[flagSymbol] = true; + return fn; +}; + +// Utility types +arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); + +// Expose error class +arg.ArgError = ArgError; + +var arg_1 = arg; + +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +function getOptionValue(opt) { + parseOptions(); + return options[opt]; +} +let options; +function parseOptions() { + if (!options) { + options = { + "--conditions": [], + ...parseArgv(getNodeOptionsEnvArgv()), + ...parseArgv(process.execArgv) + }; + } +} +function parseArgv(argv) { + return arg_1( + { + "--conditions": [String], + "-C": "--conditions" + }, + { + argv, + permissive: true + } + ); +} +function getNodeOptionsEnvArgv() { + const errors = []; + const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); + if (errors.length !== 0) ; + return envArgv; +} +function ParseNodeOptionsEnvVar(node_options, errors) { + const env_argv = []; + let is_in_string = false; + let will_start_new_arg = true; + for (let index = 0; index < node_options.length; ++index) { + let c = node_options[index]; + if (c === "\\" && is_in_string) { + if (index + 1 === node_options.length) { + errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); + return env_argv; + } else { + c = node_options[++index]; + } + } else if (c === " " && !is_in_string) { + will_start_new_arg = true; + continue; + } else if (c === '"') { + is_in_string = !is_in_string; + continue; + } + if (will_start_new_arg) { + env_argv.push(c); + will_start_new_arg = false; + } else { + env_argv[env_argv.length - 1] += c; + } + } + if (is_in_string) { + errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); + } + return env_argv; +} + +function makeApi(runtimeState, opts) { + const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; + const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); + const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; + const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; + const isDirRegExp = /\/$/; + const isRelativeRegexp = /^\.{0,2}\//; + const topLevelLocator = { name: null, reference: null }; + const fallbackLocators = []; + const emittedWarnings = /* @__PURE__ */ new Set(); + if (runtimeState.enableTopLevelFallback === true) + fallbackLocators.push(topLevelLocator); + if (opts.compatibilityMode !== false) { + for (const name of [`react-scripts`, `gatsby`]) { + const packageStore = runtimeState.packageRegistry.get(name); + if (packageStore) { + for (const reference of packageStore.keys()) { + if (reference === null) { + throw new Error(`Assertion failed: This reference shouldn't be null`); + } else { + fallbackLocators.push({ name, reference }); + } + } + } + } + } + const { + ignorePattern, + packageRegistry, + packageLocatorsByLocations + } = runtimeState; + function makeLogEntry(name, args) { + return { + fn: name, + args, + error: null, + result: null + }; + } + function trace(entry) { + const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY; + const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; + const error = entry.error; + if (error) + console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`)); + else + console.error(c(`33;1`, `\u203C Resolution`)); + if (entry.args.length > 0) + console.error(); + for (const arg of entry.args) + console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); + if (entry.result) { + console.error(); + console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); + } + const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? []; + if (stack.length > 0) { + console.error(); + for (const line of stack) { + console.error(` ${c(`38;5;244`, line)}`); + } + } + console.error(); + } + function maybeLog(name, fn) { + if (opts.allowDebug === false) + return fn; + if (Number.isFinite(debugLevel)) { + if (debugLevel >= 2) { + return (...args) => { + const logEntry = makeLogEntry(name, args); + try { + return logEntry.result = fn(...args); + } catch (error) { + throw logEntry.error = error; + } finally { + trace(logEntry); + } + }; + } else if (debugLevel >= 1) { + return (...args) => { + try { + return fn(...args); + } catch (error) { + const logEntry = makeLogEntry(name, args); + logEntry.error = error; + trace(logEntry); + throw error; + } + }; + } + } + return fn; + } + function getPackageInformationSafe(packageLocator) { + const packageInformation = getPackageInformation(packageLocator); + if (!packageInformation) { + throw makeError( + ErrorCode.INTERNAL, + `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` + ); + } + return packageInformation; + } + function isDependencyTreeRoot(packageLocator) { + if (packageLocator.name === null) + return true; + for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) + if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) + return true; + return false; + } + const defaultExportsConditions = /* @__PURE__ */ new Set([ + `node`, + `require`, + ...getOptionValue(`--conditions`) + ]); + function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { + const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { + resolveIgnored: true, + includeDiscardFromLookup: true + }); + if (locator === null) { + throw makeError( + ErrorCode.INTERNAL, + `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` + ); + } + const { packageLocation } = getPackageInformationSafe(locator); + const manifestPath = ppath.join(packageLocation, Filename.manifest); + if (!opts.fakeFs.existsSync(manifestPath)) + return null; + const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); + if (pkgJson.exports == null) + return null; + let subpath = ppath.contains(packageLocation, unqualifiedPath); + if (subpath === null) { + throw makeError( + ErrorCode.INTERNAL, + `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` + ); + } + if (subpath !== `.` && !isRelativeRegexp.test(subpath)) + subpath = `./${subpath}`; + try { + const resolvedExport = packageExportsResolve({ + packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), + packageSubpath: subpath, + exports: pkgJson.exports, + base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, + conditions + }); + return npath.toPortablePath(url.fileURLToPath(resolvedExport)); + } catch (error) { + throw makeError( + ErrorCode.EXPORTS_RESOLUTION_FAILED, + error.message, + { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, + error.code + ); + } + } + function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { + let stat; + try { + candidates.push(unqualifiedPath); + stat = opts.fakeFs.statSync(unqualifiedPath); + } catch (error) { + } + if (stat && !stat.isDirectory()) + return opts.fakeFs.realpathSync(unqualifiedPath); + if (stat && stat.isDirectory()) { + let pkgJson; + try { + pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); + } catch (error) { + } + let nextUnqualifiedPath; + if (pkgJson && pkgJson.main) + nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); + if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { + const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); + if (resolution !== null) { + return resolution; + } + } + } + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = `${unqualifiedPath}${extensions[i]}`; + candidates.push(candidateFile); + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile; + } + } + if (stat && stat.isDirectory()) { + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] }); + candidates.push(candidateFile); + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile; + } + } + } + return null; + } + function makeFakeModule(path) { + const fakeModule = new require$$0.Module(path, null); + fakeModule.filename = path; + fakeModule.paths = require$$0.Module._nodeModulePaths(path); + return fakeModule; + } + function callNativeResolution(request, issuer) { + if (issuer.endsWith(`/`)) + issuer = ppath.join(issuer, `internal.js`); + return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false }); + } + function isPathIgnored(path) { + if (ignorePattern === null) + return false; + const subPath = ppath.contains(runtimeState.basePath, path); + if (subPath === null) + return false; + if (ignorePattern.test(subPath.replace(/\/$/, ``))) { + return true; + } else { + return false; + } + } + const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; + const topLevel = topLevelLocator; + function getPackageInformation({ name, reference }) { + const packageInformationStore = packageRegistry.get(name); + if (!packageInformationStore) + return null; + const packageInformation = packageInformationStore.get(reference); + if (!packageInformation) + return null; + return packageInformation; + } + function findPackageDependents({ name, reference }) { + const dependents = []; + for (const [dependentName, packageInformationStore] of packageRegistry) { + if (dependentName === null) + continue; + for (const [dependentReference, packageInformation] of packageInformationStore) { + if (dependentReference === null) + continue; + const dependencyReference = packageInformation.packageDependencies.get(name); + if (dependencyReference !== reference) + continue; + if (dependentName === name && dependentReference === reference) + continue; + dependents.push({ + name: dependentName, + reference: dependentReference + }); + } + } + return dependents; + } + function findBrokenPeerDependencies(dependency, initialPackage) { + const brokenPackages = /* @__PURE__ */ new Map(); + const alreadyVisited = /* @__PURE__ */ new Set(); + const traversal = (currentPackage) => { + const identifier = JSON.stringify(currentPackage.name); + if (alreadyVisited.has(identifier)) + return; + alreadyVisited.add(identifier); + const dependents = findPackageDependents(currentPackage); + for (const dependent of dependents) { + const dependentInformation = getPackageInformationSafe(dependent); + if (dependentInformation.packagePeers.has(dependency)) { + traversal(dependent); + } else { + let brokenSet = brokenPackages.get(dependent.name); + if (typeof brokenSet === `undefined`) + brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set()); + brokenSet.add(dependent.reference); + } + } + }; + traversal(initialPackage); + const brokenList = []; + for (const name of [...brokenPackages.keys()].sort()) + for (const reference of [...brokenPackages.get(name)].sort()) + brokenList.push({ name, reference }); + return brokenList; + } + function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { + if (isPathIgnored(location) && !resolveIgnored) + return null; + let relativeLocation = ppath.relative(runtimeState.basePath, location); + if (!relativeLocation.match(isStrictRegExp)) + relativeLocation = `./${relativeLocation}`; + if (!relativeLocation.endsWith(`/`)) + relativeLocation = `${relativeLocation}/`; + do { + const entry = packageLocatorsByLocations.get(relativeLocation); + if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { + relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); + continue; + } + return entry.locator; + } while (relativeLocation !== ``); + return null; + } + function tryReadFile(filePath) { + try { + return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); + } catch (err) { + if (err.code === `ENOENT`) + return void 0; + throw err; + } + } + function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { + if (request.startsWith(`#`)) + throw new Error(`resolveToUnqualified can not handle private import mappings`); + if (request === `pnpapi`) + return npath.toPortablePath(opts.pnpapiResolution); + if (considerBuiltins && require$$0.isBuiltin(request)) + return null; + const requestForDisplay = getPathForDisplay(request); + const issuerForDisplay = issuer && getPathForDisplay(issuer); + if (issuer && isPathIgnored(issuer)) { + if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { + const result = callNativeResolution(request, issuer); + if (result === false) { + throw makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${requestForDisplay}" +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + return npath.toPortablePath(result); + } + } + let unqualifiedPath; + const dependencyNameMatch = request.match(pathRegExp); + if (!dependencyNameMatch) { + if (ppath.isAbsolute(request)) { + unqualifiedPath = ppath.normalize(request); + } else { + if (!issuer) { + throw makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + const absoluteIssuer = ppath.resolve(issuer); + if (issuer.match(isDirRegExp)) { + unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); + } else { + unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); + } + } + } else { + if (!issuer) { + throw makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + const [, dependencyName, subPath] = dependencyNameMatch; + const issuerLocator = findPackageLocator(issuer); + if (!issuerLocator) { + const result = callNativeResolution(request, issuer); + if (result === false) { + throw makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${requestForDisplay}" +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + return npath.toPortablePath(result); + } + const issuerInformation = getPackageInformationSafe(issuerLocator); + let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); + let fallbackReference = null; + if (dependencyReference == null) { + if (issuerLocator.name !== null) { + const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name); + const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference); + if (canUseFallbacks) { + for (let t = 0, T = fallbackLocators.length; t < T; ++t) { + const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]); + const reference = fallbackInformation.packageDependencies.get(dependencyName); + if (reference == null) + continue; + if (alwaysWarnOnFallback) + fallbackReference = reference; + else + dependencyReference = reference; + break; + } + if (runtimeState.enableTopLevelFallback) { + if (dependencyReference == null && fallbackReference === null) { + const reference = runtimeState.fallbackPool.get(dependencyName); + if (reference != null) { + fallbackReference = reference; + } + } + } + } + } + } + let error = null; + if (dependencyReference === null) { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); + if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} +`).join(``)} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } + ); + } else { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) + +${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} +`).join(``)} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } + ); + } + } + } else if (dependencyReference === void 0) { + if (!considerBuiltins && require$$0.isBuiltin(request)) { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } + ); + } + } else { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } + ); + } + } + } + if (dependencyReference == null) { + if (fallbackReference === null || error === null) + throw error || new Error(`Assertion failed: Expected an error to have been set`); + dependencyReference = fallbackReference; + const message = error.message.replace(/\n.*/g, ``); + error.message = message; + if (!emittedWarnings.has(message) && debugLevel !== 0) { + emittedWarnings.add(message); + process.emitWarning(error); + } + } + const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; + const dependencyInformation = getPackageInformationSafe(dependencyLocator); + if (!dependencyInformation.packageLocation) { + throw makeError( + ErrorCode.MISSING_DEPENDENCY, + `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } + ); + } + const dependencyLocation = dependencyInformation.packageLocation; + if (subPath) { + unqualifiedPath = ppath.join(dependencyLocation, subPath); + } else { + unqualifiedPath = dependencyLocation; + } + } + return ppath.normalize(unqualifiedPath); + } + function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { + if (isStrictRegExp.test(request)) + return unqualifiedPath; + const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); + if (unqualifiedExportPath) { + return ppath.normalize(unqualifiedExportPath); + } else { + return unqualifiedPath; + } + } + function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { + const candidates = []; + const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); + if (qualifiedPath) { + return ppath.normalize(qualifiedPath); + } else { + reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); + const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); + const containingPackage = findPackageLocator(unqualifiedPath); + if (containingPackage) { + const { packageLocation } = getPackageInformationSafe(containingPackage); + let exists = true; + try { + opts.fakeFs.accessSync(packageLocation); + } catch (err) { + if (err?.code === `ENOENT`) { + exists = false; + } else { + const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); + throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). + +Missing package: ${containingPackage.name}@${containingPackage.reference} +Expected package location: ${getPathForDisplay(packageLocation)} +`, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); + } + } + if (!exists) { + const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; + throw makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `${errorMessage} + +Missing package: ${containingPackage.name}@${containingPackage.reference} +Expected package location: ${getPathForDisplay(packageLocation)} +`, + { unqualifiedPath: unqualifiedPathForDisplay, extensions } + ); + } + } + throw makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${unqualifiedPathForDisplay} +${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} +`).join(``)}`, + { unqualifiedPath: unqualifiedPathForDisplay, extensions } + ); + } + } + function resolvePrivateRequest(request, issuer, opts2) { + if (!issuer) + throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); + const resolved = packageImportsResolve({ + name: request, + base: url.pathToFileURL(npath.fromPortablePath(issuer)), + conditions: opts2.conditions ?? defaultExportsConditions, + readFileSyncFn: tryReadFile + }); + if (resolved instanceof URL) { + return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); + } else { + if (resolved.startsWith(`#`)) + throw new Error(`Mapping from one private import to another isn't allowed`); + return resolveRequest(resolved, issuer, opts2); + } + } + function resolveRequest(request, issuer, opts2 = {}) { + try { + if (request.startsWith(`#`)) + return resolvePrivateRequest(request, issuer, opts2); + const { considerBuiltins, extensions, conditions } = opts2; + const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); + if (request === `pnpapi`) + return unqualifiedPath; + if (unqualifiedPath === null) + return null; + const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; + const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; + return resolveUnqualified(remappedPath, { extensions }); + } catch (error) { + if (Object.hasOwn(error, `pnpCode`)) + Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); + throw error; + } + } + function resolveVirtual(request) { + const normalized = ppath.normalize(request); + const resolved = VirtualFS.resolveVirtual(normalized); + return resolved !== normalized ? resolved : null; + } + return { + VERSIONS, + topLevel, + getLocator: (name, referencish) => { + if (Array.isArray(referencish)) { + return { name: referencish[0], reference: referencish[1] }; + } else { + return { name, reference: referencish }; + } + }, + getDependencyTreeRoots: () => { + return [...runtimeState.dependencyTreeRoots]; + }, + getAllLocators() { + const locators = []; + for (const [name, entry] of packageRegistry) + for (const reference of entry.keys()) + if (name !== null && reference !== null) + locators.push({ name, reference }); + return locators; + }, + getPackageInformation: (locator) => { + const info = getPackageInformation(locator); + if (info === null) + return null; + const packageLocation = npath.fromPortablePath(info.packageLocation); + const nativeInfo = { ...info, packageLocation }; + return nativeInfo; + }, + findPackageLocator: (path) => { + return findPackageLocator(npath.toPortablePath(path)); + }, + resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => { + const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; + const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); + if (resolution === null) + return null; + return npath.fromPortablePath(resolution); + }), + resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { + return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); + }), + resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { + const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; + const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); + if (resolution === null) + return null; + return npath.fromPortablePath(resolution); + }), + resolveVirtual: maybeLog(`resolveVirtual`, (path) => { + const result = resolveVirtual(npath.toPortablePath(path)); + if (result !== null) { + return npath.fromPortablePath(result); + } else { + return null; + } + }) + }; +} + +function makeManager(pnpapi, opts) { + const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); + const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); + const apiMetadata = /* @__PURE__ */ new Map([ + [initialApiPath, { + instance: pnpapi, + stats: initialApiStats, + lastRefreshCheck: Date.now() + }] + ]); + function loadApiInstance(pnpApiPath) { + const nativePath = npath.fromPortablePath(pnpApiPath); + const module = new require$$0.Module(nativePath, null); + module.load(nativePath); + return module.exports; + } + function refreshApiEntry(pnpApiPath, apiEntry) { + const timeNow = Date.now(); + if (timeNow - apiEntry.lastRefreshCheck < 500) + return; + apiEntry.lastRefreshCheck = timeNow; + const stats = opts.fakeFs.statSync(pnpApiPath); + if (stats.mtime > apiEntry.stats.mtime) { + process.emitWarning(`[Warning] The runtime detected new information in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); + apiEntry.stats = stats; + apiEntry.instance = loadApiInstance(pnpApiPath); + } + } + function getApiEntry(pnpApiPath, refresh = false) { + let apiEntry = apiMetadata.get(pnpApiPath); + if (typeof apiEntry !== `undefined`) { + if (refresh) { + refreshApiEntry(pnpApiPath, apiEntry); + } + } else { + apiMetadata.set(pnpApiPath, apiEntry = { + instance: loadApiInstance(pnpApiPath), + stats: opts.fakeFs.statSync(pnpApiPath), + lastRefreshCheck: Date.now() + }); + } + return apiEntry; + } + const findApiPathCache = /* @__PURE__ */ new Map(); + function addToCacheAndReturn(start, end, target) { + if (target !== null) { + target = VirtualFS.resolveVirtual(target); + target = opts.fakeFs.realpathSync(target); + } + let curr; + let next = start; + do { + curr = next; + findApiPathCache.set(curr, target); + next = ppath.dirname(curr); + } while (curr !== end); + return target; + } + function findApiPathFor(modulePath) { + let bestCandidate = null; + for (const [apiPath, apiEntry] of apiMetadata) { + const locator = apiEntry.instance.findPackageLocator(modulePath); + if (!locator) + continue; + if (apiMetadata.size === 1) + return apiPath; + const packageInformation = apiEntry.instance.getPackageInformation(locator); + if (!packageInformation) + throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); + if (!bestCandidate) + bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; + if (packageInformation.packageLocation === bestCandidate.packageLocation) { + bestCandidate.apiPaths.push(apiPath); + } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { + bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; + } + } + if (bestCandidate) { + if (bestCandidate.apiPaths.length === 1) + return bestCandidate.apiPaths[0]; + const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` +`); + throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. +This is usually caused by using the global cache (enableGlobalCache: true) + +Controlled by: +${controlSegment} +`); + } + const start = ppath.resolve(npath.toPortablePath(modulePath)); + let curr; + let next = start; + do { + curr = next; + const cached = findApiPathCache.get(curr); + if (cached !== void 0) + return addToCacheAndReturn(start, curr, cached); + const cjsCandidate = ppath.join(curr, Filename.pnpCjs); + if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) + return addToCacheAndReturn(start, curr, cjsCandidate); + const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); + if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) + return addToCacheAndReturn(start, curr, legacyCjsCandidate); + next = ppath.dirname(curr); + } while (curr !== PortablePath.root); + return addToCacheAndReturn(start, curr, null); + } + const moduleToApiPathCache = /* @__PURE__ */ new WeakMap(); + function getApiPathFromParent(parent) { + if (parent == null) + return initialApiPath; + let apiPath = moduleToApiPathCache.get(parent); + if (typeof apiPath !== `undefined`) + return apiPath; + apiPath = parent.filename ? findApiPathFor(parent.filename) : null; + moduleToApiPathCache.set(parent, apiPath); + return apiPath; + } + return { + getApiPathFromParent, + findApiPathFor, + getApiEntry + }; +} + +const localFs = { ...fs__default.default }; +const nodeFs = new NodeFS(localFs); +const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); +const defaultPnpapiResolution = __filename; +const defaultFsLayer = new VirtualFS({ + baseFs: new ZipOpenFS({ + baseFs: nodeFs, + maxOpenFiles: 80, + readOnlyArchives: true + }) +}); +class DynamicFS extends ProxiedFS { + baseFs = defaultFsLayer; + constructor() { + super(ppath); + } + mapToBase(p) { + return p; + } + mapFromBase(p) { + return p; + } +} +const dynamicFsLayer = new DynamicFS(); +let manager; +const defaultApi = Object.assign(makeApi(defaultRuntimeState, { + fakeFs: dynamicFsLayer, + pnpapiResolution: defaultPnpapiResolution +}), { + /** + * Can be used to generate a different API than the default one (for example + * to map it on `/` rather than the local directory path, or to use a + * different FS layer than the default one). + */ + makeApi: ({ + basePath = void 0, + fakeFs = dynamicFsLayer, + pnpapiResolution = defaultPnpapiResolution, + ...rest + }) => { + const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; + return makeApi(apiRuntimeState, { + fakeFs, + pnpapiResolution, + ...rest + }); + }, + /** + * Will inject the specified API into the environment, monkey-patching FS. Is + * automatically called when the hook is loaded through `--require`. + */ + setup: (api) => { + applyPatch(api || defaultApi, { + fakeFs: defaultFsLayer, + manager + }); + dynamicFsLayer.baseFs = new NodeFS(fs__default.default); + } +}); +manager = makeManager(defaultApi, { + fakeFs: dynamicFsLayer +}); +if (module.parent && module.parent.id === `internal/preload`) { + defaultApi.setup(); + if (module.filename) { + delete require$$0__default.default._cache[module.filename]; + } +} +if (process.mainModule === module) { + const reportError = (code, message, data) => { + process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} +`); + }; + const reportSuccess = (resolution) => { + process.stdout.write(`${JSON.stringify([null, resolution])} +`); + }; + const processResolution = (request, issuer) => { + try { + reportSuccess(defaultApi.resolveRequest(request, issuer)); + } catch (error) { + reportError(error.code, error.message, error.data); + } + }; + const processRequest = (data) => { + try { + const [request, issuer] = JSON.parse(data); + processResolution(request, issuer); + } catch (error) { + reportError(`INVALID_JSON`, error.message, error.data); + } + }; + if (process.argv.length > 2) { + if (process.argv.length !== 4) { + process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} +`); + process.exitCode = 64; + } else { + processResolution(process.argv[2], process.argv[3]); + } + } else { + let buffer = ``; + const decoder = new StringDecoder__default.default.StringDecoder(); + process.stdin.on(`data`, (chunk) => { + buffer += decoder.write(chunk); + do { + const index = buffer.indexOf(` +`); + if (index === -1) + break; + const line = buffer.slice(0, index); + buffer = buffer.slice(index + 1); + processRequest(line); + } while (true); + }); + } +} + +module.exports = defaultApi; diff --git a/.pnp.loader.mjs b/.pnp.loader.mjs new file mode 100644 index 0000000..e5a5429 --- /dev/null +++ b/.pnp.loader.mjs @@ -0,0 +1,2126 @@ +/* eslint-disable */ +// @ts-nocheck + +import fs from 'fs'; +import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; +import path from 'path'; +import { createHash } from 'crypto'; +import { EOL } from 'os'; +import esmModule, { createRequire, isBuiltin } from 'module'; +import assert from 'assert'; + +const SAFE_TIME = 456789e3; + +const PortablePath = { + root: `/`, + dot: `.`, + parent: `..` +}; +const npath = Object.create(path); +const ppath = Object.create(path.posix); +npath.cwd = () => process.cwd(); +ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; +if (process.platform === `win32`) { + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return path.posix.resolve(...segments); + } else { + return path.posix.resolve(ppath.cwd(), ...segments); + } + }; +} +const contains = function(pathUtils, from, to) { + from = pathUtils.normalize(from); + to = pathUtils.normalize(to); + if (from === to) + return `.`; + if (!from.endsWith(pathUtils.sep)) + from = from + pathUtils.sep; + if (to.startsWith(from)) { + return to.slice(from.length); + } else { + return null; + } +}; +npath.contains = (from, to) => contains(npath, from, to); +ppath.contains = (from, to) => contains(ppath, from, to); +const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; +const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; +const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; +const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; +function fromPortablePathWin32(p) { + let portablePathMatch, uncPortablePathMatch; + if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) + p = portablePathMatch[1]; + else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) + p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; + else + return p; + return p.replace(/\//g, `\\`); +} +function toPortablePathWin32(p) { + p = p.replace(/\\/g, `/`); + let windowsPathMatch, uncWindowsPathMatch; + if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) + p = `/${windowsPathMatch[1]}`; + else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) + p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; + return p; +} +const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; +const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; +npath.fromPortablePath = fromPortablePath; +npath.toPortablePath = toPortablePath; +function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); +} + +const defaultTime = new Date(SAFE_TIME * 1e3); +const defaultTimeMs = defaultTime.getTime(); +async function copyPromise(destinationFs, destination, sourceFs, source, opts) { + const normalizedDestination = destinationFs.pathUtils.normalize(destination); + const normalizedSource = sourceFs.pathUtils.normalize(source); + const prelayout = []; + const postlayout = []; + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); + await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); + await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); + for (const operation of prelayout) + await operation(); + await Promise.all(postlayout.map((operation) => { + return operation(); + })); +} +async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { + const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; + const sourceStat = await sourceFs.lstatPromise(source); + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; + let updated; + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isFile(): + { + updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + default: { + throw new Error(`Unsupported file type (${sourceStat.mode})`); + } + } + if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { + if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { + postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); + updated = true; + } + if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { + postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); + updated = true; + } + } + return updated; +} +async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p); + } catch (e) { + return null; + } +} +async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + let updated = false; + if (destinationStat === null) { + prelayout.push(async () => { + try { + await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); + } catch (err) { + if (err.code !== `EEXIST`) { + throw err; + } + } + }); + updated = true; + } + const entries = await sourceFs.readdirPromise(source); + const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; + if (opts.stableSort) { + for (const entry of entries.sort()) { + if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { + updated = true; + } + } + } else { + const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { + await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); + })); + if (entriesUpdateStatus.some((status) => status)) { + updated = true; + } + } + return updated; +} +async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { + const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); + const defaultMode = 420; + const sourceMode = sourceStat.mode & 511; + const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; + const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); + let AtomicBehavior; + ((AtomicBehavior2) => { + AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; + AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; + })(AtomicBehavior || (AtomicBehavior = {})); + let atomicBehavior = 1 /* Rename */; + let indexStat = await maybeLStat(destinationFs, indexPath); + if (destinationStat) { + const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; + const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; + if (isDestinationHardlinkedFromIndex) { + if (isIndexModified && linkStrategy.autoRepair) { + atomicBehavior = 0 /* Lock */; + indexStat = null; + } + } + if (!isDestinationHardlinkedFromIndex) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + } + const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; + let tempPathCleaned = false; + prelayout.push(async () => { + if (!indexStat) { + if (atomicBehavior === 0 /* Lock */) { + await destinationFs.lockPromise(indexPath, async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(indexPath, content); + }); + } + if (atomicBehavior === 1 /* Rename */ && tempPath) { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(tempPath, content); + try { + await destinationFs.linkPromise(tempPath, indexPath); + } catch (err) { + if (err.code === `EEXIST`) { + tempPathCleaned = true; + await destinationFs.unlinkPromise(tempPath); + } else { + throw err; + } + } + } + } + if (!destinationStat) { + await destinationFs.linkPromise(indexPath, destination); + } + }); + postlayout.push(async () => { + if (!indexStat) { + await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); + if (sourceMode !== defaultMode) { + await destinationFs.chmodPromise(indexPath, sourceMode); + } + } + if (tempPath && !tempPathCleaned) { + await destinationFs.unlinkPromise(tempPath); + } + }); + return false; +} +async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(destination, content); + }); + return true; +} +async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (opts.linkStrategy?.type === `HardlinkFromIndex`) { + return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); + } else { + return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } +} +async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); + }); + return true; +} + +class FakeFS { + pathUtils; + constructor(pathUtils) { + this.pathUtils = pathUtils; + } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init]; + while (stack.length > 0) { + const p = stack.shift(); + const entry = await this.lstatPromise(p); + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p); + if (stableSort) { + for (const entry2 of entries.sort()) { + stack.push(this.pathUtils.join(p, entry2)); + } + } else { + throw new Error(`Not supported`); + } + } else { + yield p; + } + } + } + async checksumFilePromise(path, { algorithm = `sha512` } = {}) { + const fd = await this.openPromise(path, `r`); + try { + const CHUNK_SIZE = 65536; + const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); + const hash = createHash(algorithm); + let bytesRead = 0; + while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) + hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); + return hash.digest(`hex`); + } finally { + await this.closePromise(fd); + } + } + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat; + try { + stat = await this.lstatPromise(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) { + const entries = await this.readdirPromise(p); + await Promise.all(entries.map((entry) => { + return this.removePromise(this.pathUtils.resolve(p, entry)); + })); + } + for (let t = 0; t <= maxRetries; t++) { + try { + await this.rmdirPromise(p); + break; + } catch (error) { + if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { + throw error; + } else if (t < maxRetries) { + await new Promise((resolve) => setTimeout(resolve, t * 100)); + } + } + } + } else { + await this.unlinkPromise(p); + } + } + removeSync(p, { recursive = true } = {}) { + let stat; + try { + stat = this.lstatSync(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)); + this.rmdirSync(p); + } else { + this.unlinkSync(p); + } + } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + await this.chmodPromise(subPath, chmod); + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]); + } else { + const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); + await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + this.chmodSync(subPath, chmod); + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]); + } else { + const parentStat = this.statSync(this.pathUtils.dirname(subPath)); + this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { + return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); + } + copySync(destination, source, { baseFs = this, overwrite = true } = {}) { + const stat = baseFs.lstatSync(source); + const exists = this.existsSync(destination); + if (stat.isDirectory()) { + this.mkdirpSync(destination); + const directoryListing = baseFs.readdirSync(source); + for (const entry of directoryListing) { + this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const content = baseFs.readFileSync(source); + this.writeFileSync(destination, content); + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const target = baseFs.readlinkSync(source); + this.symlinkSync(convertPath(this.pathUtils, target), destination); + } + } else { + throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); + } + const mode = stat.mode & 511; + this.chmodSync(destination, mode); + } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content, opts); + } else { + return this.changeFileTextPromise(p, content, opts); + } + } + async changeFileBufferPromise(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = await this.readFilePromise(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + await this.writeFilePromise(p, content, { mode }); + } + async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { + let current = ``; + try { + current = await this.readFilePromise(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + await this.writeFilePromise(p, normalizedContent, { mode }); + } + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content, opts); + } else { + return this.changeFileTextSync(p, content, opts); + } + } + changeFileBufferSync(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = this.readFileSync(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + this.writeFileSync(p, content, { mode }); + } + changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { + let current = ``; + try { + current = this.readFileSync(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + this.writeFileSync(p, normalizedContent, { mode }); + } + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP); + await this.removePromise(fromP); + } else { + throw error; + } + } + } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP); + this.removeSync(fromP); + } else { + throw error; + } + } + } + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock`; + const interval = 1e3 / 60; + const startTime = Date.now(); + let fd = null; + const isAlive = async () => { + let pid; + try { + [pid] = await this.readJsonPromise(lockPath); + } catch (error) { + return Date.now() - startTime < 500; + } + try { + process.kill(pid, 0); + return true; + } catch (error) { + return false; + } + }; + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`); + } catch (error) { + if (error.code === `EEXIST`) { + if (!await isAlive()) { + try { + await this.unlinkPromise(lockPath); + continue; + } catch (error2) { + } + } + if (Date.now() - startTime < 60 * 1e3) { + await new Promise((resolve) => setTimeout(resolve, interval)); + } else { + throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + } + } else { + throw error; + } + } + } + await this.writePromise(fd, JSON.stringify([process.pid])); + try { + return await callback(); + } finally { + try { + await this.closePromise(fd); + await this.unlinkPromise(lockPath); + } catch (error) { + } + } + } + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + async writeJsonPromise(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} +`); + } + writeJsonSync(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return this.writeFileSync(p, `${JSON.stringify(data, null, space)} +`); + } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p); + const result = await cb(); + if (typeof result !== `undefined`) + p = result; + await this.lutimesPromise(p, stat.atime, stat.mtime); + } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p); + const result = cb(); + if (typeof result !== `undefined`) + p = result; + this.lutimesSync(p, stat.atime, stat.mtime); + } +} +class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath); + } +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} + +class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); + } + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()); + } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode); + } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode); + } + async opendirPromise(p, opts) { + return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); + } + opendirSync(p, opts) { + return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); + } + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + return this.baseFs.closePromise(fd); + } + closeSync(fd) { + this.baseFs.closeSync(fd); + } + createReadStream(p, opts) { + return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); + } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); + } + async realpathPromise(p) { + return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); + } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); + } + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)); + } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)); + } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode); + } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode); + } + async statPromise(p, opts) { + return this.baseFs.statPromise(this.mapToBase(p), opts); + } + statSync(p, opts) { + return this.baseFs.statSync(this.mapToBase(p), opts); + } + async fstatPromise(fd, opts) { + return this.baseFs.fstatPromise(fd, opts); + } + fstatSync(fd, opts) { + return this.baseFs.fstatSync(fd, opts); + } + lstatPromise(p, opts) { + return this.baseFs.lstatPromise(this.mapToBase(p), opts); + } + lstatSync(p, opts) { + return this.baseFs.lstatSync(this.mapToBase(p), opts); + } + async fchmodPromise(fd, mask) { + return this.baseFs.fchmodPromise(fd, mask); + } + fchmodSync(fd, mask) { + return this.baseFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask); + } + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask); + } + async fchownPromise(fd, uid, gid) { + return this.baseFs.fchownPromise(fd, uid, gid); + } + fchownSync(fd, uid, gid) { + return this.baseFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); + } + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid); + } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); + } + renameSync(oldP, newP) { + return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); + } + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); + } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); + } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); + } + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)); + } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)); + } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); + } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); + } + lutimesSync(p, atime, mtime) { + return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts); + } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts); + } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts); + } + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts); + } + async rmPromise(p, opts) { + return this.baseFs.rmPromise(this.mapToBase(p), opts); + } + rmSync(p, opts) { + return this.baseFs.rmSync(this.mapToBase(p), opts); + } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); + } + linkSync(existingP, newP) { + return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); + } + async symlinkPromise(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); + } + symlinkSync(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkSync(mappedTarget, mappedP, type); + } + async readFilePromise(p, encoding) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); + } + readFileSync(p, encoding) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); + } + readdirPromise(p, opts) { + return this.baseFs.readdirPromise(this.mapToBase(p), opts); + } + readdirSync(p, opts) { + return this.baseFs.readdirSync(this.mapToBase(p), opts); + } + async readlinkPromise(p) { + return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); + } + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); + } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len); + } + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len); + } + async ftruncatePromise(fd, len) { + return this.baseFs.ftruncatePromise(fd, len); + } + ftruncateSync(fd, len) { + return this.baseFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb); + } + fsMapToBase(p) { + if (typeof p === `number`) { + return p; + } else { + return this.mapToBase(p); + } + } +} + +function direntToPortable(dirent) { + const portableDirent = dirent; + if (typeof dirent.path === `string`) + portableDirent.path = npath.toPortablePath(dirent.path); + return portableDirent; +} +class NodeFS extends BasePortableFakeFS { + realFs; + constructor(realFs = fs) { + super(); + this.realFs = realFs; + } + getExtractHint() { + return false; + } + getRealPath() { + return PortablePath.root; + } + resolve(p) { + return ppath.resolve(p); + } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); + }); + } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); + } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }).then((dir) => { + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + }); + } + opendirSync(p, opts) { + const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { + if (error) { + reject(error); + } else { + resolve(bytesRead); + } + }); + }); + } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); + } else { + return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); + } + }); + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset); + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)); + }); + } + closeSync(fd) { + this.realFs.closeSync(fd); + } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createReadStream(realPath, opts); + } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createWriteStream(realPath, opts); + } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + realpathSync(p) { + return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); + } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve); + }); + } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode); + } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); + }); + } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)); + } + async statPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + statSync(p, opts) { + if (opts) { + return this.realFs.statSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.statSync(npath.fromPortablePath(p)); + } + } + async fstatPromise(fd, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.fstat(fd, this.makeCallback(resolve, reject)); + } + }); + } + fstatSync(fd, opts) { + if (opts) { + return this.realFs.fstatSync(fd, opts); + } else { + return this.realFs.fstatSync(fd); + } + } + async lstatPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + lstatSync(p, opts) { + if (opts) { + return this.realFs.lstatSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.lstatSync(npath.fromPortablePath(p)); + } + } + async fchmodPromise(fd, mask) { + return await new Promise((resolve, reject) => { + this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); + }); + } + fchmodSync(fd, mask) { + return this.realFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); + }); + } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask); + } + async fchownPromise(fd, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); + }); + } + fchownSync(fd, uid, gid) { + return this.realFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); + }); + } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); + } + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + renameSync(oldP, newP) { + return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); + } + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + appendFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts); + } else { + this.realFs.appendFileSync(fsNativePath, content); + } + } + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + writeFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts); + } else { + this.realFs.writeFileSync(fsNativePath, content); + } + } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }); + } + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)); + } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + lutimesSync(p, atime, mtime) { + this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + }); + } + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); + } + async rmPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmSync(p, opts) { + return this.realFs.rmSync(npath.fromPortablePath(p), opts); + } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + linkSync(existingP, newP) { + return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); + } + async symlinkPromise(target, p, type) { + return await new Promise((resolve, reject) => { + this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); + }); + } + symlinkSync(target, p, type) { + return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); + }); + } + readFileSync(p, encoding) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + return this.realFs.readFileSync(fsNativePath, encoding); + } + async readdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + readdirSync(p, opts) { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)); + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + readlinkSync(p) { + return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); + }); + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len); + } + async ftruncatePromise(fd, len) { + return await new Promise((resolve, reject) => { + this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); + }); + } + ftruncateSync(fd, len) { + return this.realFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); + } + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }; + } +} + +const NUMBER_REGEXP = /^[0-9]+$/; +const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; +const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; +class VirtualFS extends ProxiedFS { + baseFs; + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `__virtual__`) + throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); + const target = ppath.relative(ppath.dirname(base), to); + const segments = target.split(`/`); + let depth = 0; + while (depth < segments.length && segments[depth] === `..`) + depth += 1; + const finalSegments = segments.slice(depth); + const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); + return fullVirtualPath; + } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match || !match[3] && match[5]) + return p; + const target = ppath.dirname(match[1]); + if (!match[3] || !match[4]) + return target; + const isnum = NUMBER_REGEXP.test(match[4]); + if (!isnum) + return p; + const depth = Number(match[4]); + const backstep = `../`.repeat(depth); + const subpath = match[5] || `.`; + return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); + } + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath); + this.baseFs = baseFs; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + realpathSync(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return this.baseFs.realpathSync(p); + if (!match[5]) + return p; + const realpath = this.baseFs.realpathSync(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + async realpathPromise(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return await this.baseFs.realpathPromise(p); + if (!match[5]) + return p; + const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + mapToBase(p) { + if (p === ``) + return p; + if (this.pathUtils.isAbsolute(p)) + return VirtualFS.resolveVirtual(p); + const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); + const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); + return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; + } + mapFromBase(p) { + return p; + } +} + +const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : globalThis.URL; + +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; +const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3; +const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20; +const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22; + +function readPackageScope(checkPath) { + const rootSeparatorIndex = checkPath.indexOf(npath.sep); + let separatorIndex; + do { + separatorIndex = checkPath.lastIndexOf(npath.sep); + checkPath = checkPath.slice(0, separatorIndex); + if (checkPath.endsWith(`${npath.sep}node_modules`)) + return false; + const pjson = readPackage(checkPath + npath.sep); + if (pjson) { + return { + data: pjson, + path: checkPath + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} +function readPackage(requestPath) { + const jsonPath = npath.resolve(requestPath, `package.json`); + if (!fs.existsSync(jsonPath)) + return null; + return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); +} + +async function tryReadFile$1(path2) { + try { + return await fs.promises.readFile(path2, `utf8`); + } catch (error) { + if (error.code === `ENOENT`) + return null; + throw error; + } +} +function tryParseURL(str, base) { + try { + return new URL(str, base); + } catch { + return null; + } +} +let entrypointPath = null; +function setEntrypointPath(file) { + entrypointPath = file; +} +function getFileFormat(filepath) { + const ext = path.extname(filepath); + switch (ext) { + case `.mjs`: { + return `module`; + } + case `.cjs`: { + return `commonjs`; + } + case `.wasm`: { + throw new Error( + `Unknown file extension ".wasm" for ${filepath}` + ); + } + case `.json`: { + return `json`; + } + case `.js`: { + const pkg = readPackageScope(filepath); + if (!pkg) + return `commonjs`; + return pkg.data.type ?? `commonjs`; + } + default: { + if (entrypointPath !== filepath) + return null; + const pkg = readPackageScope(filepath); + if (!pkg) + return `commonjs`; + if (pkg.data.type === `module`) + return null; + return pkg.data.type ?? `commonjs`; + } + } +} + +async function load$1(urlString, context, nextLoad) { + const url = tryParseURL(urlString); + if (url?.protocol !== `file:`) + return nextLoad(urlString, context, nextLoad); + const filePath = fileURLToPath(url); + const format = getFileFormat(filePath); + if (!format) + return nextLoad(urlString, context, nextLoad); + if (format === `json`) { + if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) { + if (context.importAttributes?.type !== `json`) { + const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`); + err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`; + throw err; + } + } else { + const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type; + if (type !== `json`) { + const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`); + err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`; + throw err; + } + } + } + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + const pathToSend = pathToFileURL( + npath.fromPortablePath( + VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) + ) + ).href; + process.send({ + "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend + }); + } + return { + format, + source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), + shortCircuit: true + }; +} + +const ArrayIsArray = Array.isArray; +const JSONStringify = JSON.stringify; +const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; +const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); +const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); +const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); +const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); +const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); +const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); +const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); +const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); +const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); +const SafeMap = Map; +const JSONParse = JSON.parse; + +function createErrorType(code, messageCreator, errorType) { + return class extends errorType { + constructor(...args) { + super(messageCreator(...args)); + this.code = code; + this.name = `${errorType.name} [${code}]`; + } + }; +} +const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( + `ERR_PACKAGE_IMPORT_NOT_DEFINED`, + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; + }, + TypeError +); +const ERR_INVALID_MODULE_SPECIFIER = createErrorType( + `ERR_INVALID_MODULE_SPECIFIER`, + (request, reason, base = void 0) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; + }, + TypeError +); +const ERR_INVALID_PACKAGE_TARGET = createErrorType( + `ERR_INVALID_PACKAGE_TARGET`, + (pkgPath, key, target, isImport = false, base = void 0) => { + const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); + if (key === `.`) { + assert(isImport === false); + return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + } + return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + }, + Error +); +const ERR_INVALID_PACKAGE_CONFIG = createErrorType( + `ERR_INVALID_PACKAGE_CONFIG`, + (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; + }, + Error +); + +function filterOwnProperties(source, keys) { + const filtered = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (ObjectPrototypeHasOwnProperty(source, key)) { + filtered[key] = source[key]; + } + } + return filtered; +} + +const packageJSONCache = new SafeMap(); +function getPackageConfig(path, specifier, base, readFileSyncFn) { + const existing = packageJSONCache.get(path); + if (existing !== void 0) { + return existing; + } + const source = readFileSyncFn(path); + if (source === void 0) { + const packageConfig2 = { + pjsonPath: path, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(path, packageConfig2); + return packageConfig2; + } + let packageJSON; + try { + packageJSON = JSONParse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : "") + fileURLToPath(base || specifier), + error.message + ); + } + let { imports, main, name, type } = filterOwnProperties(packageJSON, [ + "imports", + "main", + "name", + "type" + ]); + const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; + if (typeof imports !== "object" || imports === null) { + imports = void 0; + } + if (typeof main !== "string") { + main = void 0; + } + if (typeof name !== "string") { + name = void 0; + } + if (type !== "module" && type !== "commonjs") { + type = "none"; + } + const packageConfig = { + pjsonPath: path, + exists: true, + main, + name, + type, + exports, + imports + }; + packageJSONCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved, readFileSyncFn) { + let packageJSONUrl = new URL("./package.json", resolved); + while (true) { + const packageJSONPath2 = packageJSONUrl.pathname; + if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { + break; + } + const packageConfig2 = getPackageConfig( + fileURLToPath(packageJSONUrl), + resolved, + void 0, + readFileSyncFn + ); + if (packageConfig2.exists) { + return packageConfig2; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL("../package.json", packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = fileURLToPath(packageJSONUrl); + const packageConfig = { + pjsonPath: packageJSONPath, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(packageJSONPath, packageConfig); + return packageConfig; +} + +function throwImportNotDefined(specifier, packageJSONUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJSONUrl && fileURLToPath(new URL(".", packageJSONUrl)), + fileURLToPath(base) + ); +} +function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${fileURLToPath(packageJSONUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && fileURLToPath(base) + ); +} +function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { + if (typeof target === "object" && target !== null) { + target = JSONStringify(target, null, ""); + } else { + target = `${target}`; + } + throw new ERR_INVALID_PACKAGE_TARGET( + fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + target, + internal, + base && fileURLToPath(base) + ); +} +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const patternRegEx = /\*/g; +function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { + if (subpath !== "" && !pattern && target[target.length - 1] !== "/") + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (!StringPrototypeStartsWith(target, "./")) { + if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { + let isURL = false; + try { + new URL(target); + isURL = true; + } catch { + } + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; + return exportTarget; + } + } + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + } + if (RegExpPrototypeExec( + invalidSegmentRegEx, + StringPrototypeSlice(target, 2) + ) !== null) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + const resolved = new URL(target, packageJSONUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL(".", packageJSONUrl).pathname; + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (subpath === "") return resolved; + if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { + const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; + throwInvalidSubpath(request, packageJSONUrl, internal, base); + } + if (pattern) { + return new URL( + RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) + ); + } + return new URL(subpath, resolved); +} +function isArrayIndex(key) { + const keyNum = +key; + if (`${keyNum}` !== key) return false; + return keyNum >= 0 && keyNum < 4294967295; +} +function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === "string") { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJSONUrl, + base, + pattern, + internal); + } else if (ArrayIsArray(target)) { + if (target.length === 0) { + return null; + } + let lastException; + for (let i = 0; i < target.length; i++) { + const targetItem = target[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget( + packageJSONUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (e) { + lastException = e; + if (e.code === "ERR_INVALID_PACKAGE_TARGET") { + continue; + } + throw e; + } + if (resolveResult === void 0) { + continue; + } + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === void 0 || lastException === null) + return lastException; + throw lastException; + } else if (typeof target === "object" && target !== null) { + const keys = ObjectGetOwnPropertyNames(target); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + fileURLToPath(packageJSONUrl), + base, + '"exports" cannot contain numeric property keys.' + ); + } + } + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key === "default" || conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolveResult === void 0) continue; + return resolveResult; + } + } + return void 0; + } else if (target === null) { + return null; + } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJSONUrl, + internal, + base + ); +} +function patternKeyCompare(a, b) { + const aPatternIndex = StringPrototypeIndexOf(a, "*"); + const bPatternIndex = StringPrototypeIndexOf(b, "*"); + const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLenA > baseLenB) return -1; + if (baseLenB > baseLenA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { + if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { + const reason = "is not a valid internal imports specifier name"; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); + } + let packageJSONUrl; + const packageConfig = getPackageScopeConfig(base, readFileSyncFn); + if (packageConfig.exists) { + packageJSONUrl = pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { + const resolveResult = resolvePackageTarget( + packageJSONUrl, + imports[name], + "", + name, + base, + false, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } else { + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(imports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + name, + StringPrototypeSlice(key, 0, patternIndex) + )) { + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + name, + patternIndex, + name.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } + } + } + } + throwImportNotDefined(name, packageJSONUrl, base); +} + +let findPnpApi = esmModule.findPnpApi; +if (!findPnpApi) { + const require = createRequire(import.meta.url); + const pnpApi = require(`./.pnp.cjs`); + pnpApi.setup(); + findPnpApi = esmModule.findPnpApi; +} +const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; +const isRelativeRegexp = /^\.{0,2}\//; +function tryReadFile(filePath) { + try { + return fs.readFileSync(filePath, `utf8`); + } catch (err) { + if (err.code === `ENOENT`) + return void 0; + throw err; + } +} +async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { + const resolved = packageImportsResolve({ + name: specifier, + base: pathToFileURL(issuer), + conditions: new Set(context.conditions), + readFileSyncFn: tryReadFile + }); + if (resolved instanceof URL) { + return { url: resolved.href, shortCircuit: true }; + } else { + if (resolved.startsWith(`#`)) + throw new Error(`Mapping from one private import to another isn't allowed`); + return resolve$1(resolved, context, nextResolve); + } +} +async function resolve$1(originalSpecifier, context, nextResolve) { + if (!findPnpApi || isBuiltin(originalSpecifier)) + return nextResolve(originalSpecifier, context, nextResolve); + let specifier = originalSpecifier; + const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); + if (url) { + if (url.protocol !== `file:`) + return nextResolve(originalSpecifier, context, nextResolve); + specifier = fileURLToPath(url); + } + const { parentURL, conditions = [] } = context; + const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd(); + const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null); + if (!pnpapi) + return nextResolve(originalSpecifier, context, nextResolve); + if (specifier.startsWith(`#`)) + return resolvePrivateRequest(specifier, issuer, context, nextResolve); + const dependencyNameMatch = specifier.match(pathRegExp); + let allowLegacyResolve = false; + if (dependencyNameMatch) { + const [, dependencyName, subPath] = dependencyNameMatch; + if (subPath === `` && dependencyName !== `pnpapi`) { + const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); + if (resolved) { + const content = await tryReadFile$1(resolved); + if (content) { + const pkg = JSON.parse(content); + allowLegacyResolve = pkg.exports == null; + } + } + } + } + let result; + try { + result = pnpapi.resolveRequest(specifier, issuer, { + conditions: new Set(conditions), + // TODO: Handle --experimental-specifier-resolution=node + extensions: allowLegacyResolve ? void 0 : [] + }); + } catch (err) { + if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) + err.code = `ERR_MODULE_NOT_FOUND`; + throw err; + } + if (!result) + throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); + const resultURL = pathToFileURL(result); + if (url) { + resultURL.search = url.search; + resultURL.hash = url.hash; + } + if (!parentURL) + setEntrypointPath(fileURLToPath(resultURL)); + return { + url: resultURL.href, + shortCircuit: true + }; +} + +if (!HAS_LAZY_LOADED_TRANSLATORS) { + const binding = process.binding(`fs`); + const originalReadFile = binding.readFileUtf8 || binding.readFileSync; + if (originalReadFile) { + binding[originalReadFile.name] = function(...args) { + try { + return fs.readFileSync(args[0], { + encoding: `utf8`, + // @ts-expect-error - The docs says it needs to be a string but + // links to https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#file-system-flags + // which says it can be a number which matches the implementation. + flag: args[1] + }); + } catch { + } + return originalReadFile.apply(this, args); + }; + } else { + const binding2 = process.binding(`fs`); + const originalfstat = binding2.fstat; + const ZIP_MASK = 4278190080; + const ZIP_MAGIC = 704643072; + binding2.fstat = function(...args) { + const [fd, useBigint, req] = args; + if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { + try { + const stats = fs.fstatSync(fd); + return new Float64Array([ + stats.dev, + stats.mode, + stats.nlink, + stats.uid, + stats.gid, + stats.rdev, + stats.blksize, + stats.ino, + stats.size, + stats.blocks + // atime sec + // atime ns + // mtime sec + // mtime ns + // ctime sec + // ctime ns + // birthtime sec + // birthtime ns + ]); + } catch { + } + } + return originalfstat.apply(this, args); + }; + } +} + +const resolve = resolve$1; +const load = load$1; + +export { load, resolve }; diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..0c6e4278e53f6dc5fc8ede1d82ae5c59a999207a GIT binary patch literal 732351 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

w{EdtD-$(?Bg6y7smxbAwz!SlsV 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%0D|seH54%H= zDHpwOTYMEWRK(?{5k{v<;f(2>p>DRQ@G_M_(ur*ohGYf>lN|@;1!x1c0g|M=AnPXj zn33%Z&RO>uJn9EZj>J;GTG1!gx8pNpLm=j)d{Vxf63sMyeo>vehV-ba>!^px}*_PPUc{p>koHAyngh)utxAU*|aK^~%?Mh(?Apt*h*Fmfig{5j?j zOcKZN()D0POo7QY3-1@Xa<9<--tHWM&gxt)kh#KS#caT*>dZ%%Uj24&)UoWL3SscV z$WNZF&FeC1OH|UZHnv{5v{+PMB~J=;VH1zFGiOg-Dmg#`STgWaxl$Fb=4i2^szo3) z?)|hNu>`fi@SH*K-lU46y z`^;|{jAsZ~2jW}95x)AO!&yv_vPyXRn&#oYulSHPJ8pEuc!n&-=#X&s-Ch9NJuo~K zYBh{#_91Jtdcbg40Iq*7kkO6ICco_&-)jnKHV&YMDZ=WjDaUj|&Wq;W zEi|=Ah2G?yJNv{s9Sr%VF;E|I?akr`x(e%(GUpcf9BbW$>to$Wy)1{>W?D|O5ApH6 ztc!oeOcMW0xzJx>>d3?$F6R+8O-o<3arU?zg{UHl!e0dnive6ud!Y7d1#r6db%hc5 zSO$rHf)xf)3xx2L3cZZzY_`n{^O?3-Y2MQ(+inJZq{;@~cuH6TM|sX$b0O5uK+xkDi7hKIFG7pL)7rLG1f2xjo*qE(FztB1PH(S1IJ z(z*+On7l`wfS5jXb5bhlq;Y3PX#k{Tul?nkpc2ipYgnOU zRp|cUN+YeT_~|MV%My50sE`d+duV2ZBMrmFjc^sPVC6hUUY33&U@YEr&hYZ=w;@CK z`M6m=W1DreqQOdz@;CUuEo}Tp38wJ7jneq3yKP)(#8VGv)IEtcZ!1rcYNShn+h07S z>~jqofZAfx?SzPr9j4uLD_2@~vf$!a$v6*^(vco+bZGGPD#e(IoO}+N7VS<@N?61NF_|Q%RU24ZHHs8?TXQ6}`|10poU9-yu8Qp&a4RISWtg1Fmx$!lWvc#4}i{0yn=Nam(V zqBh_2xfhYWw<@3np75`OWY3}sL^U}2l<4qrU7;gbWDC1xB6#!lasw3M>o0C9hlQmm z&}+^sPw*|Z!zANPhm=4Qismloo2I?v-;`zofAo7_H=)>lhkMS{i1>q?TY-aI*Jgbao0+Zs@`Yr=~^8g5+AW;bEIJ z@742`!=FpBAlowHrP~dkv}zV(&=AhmG+w!IEO7=w#@AjF;s4CPK)Ug-cY;%AUaBLwK347y$UuPN-Vf1q(~4RYs1r5F4&5> zR>K(E1zayWOU{!ZmI+lO+J^2cK=YYEW~=m!G!Qb~MP%mc>(MP54s~gfH(sQ7x$5~C ziI{;1{0=if%*i*I<20Y3j5X{Hm^$f$31vV&vAkVbKZE9rv7hxa5K?FScHmBHd)7uA zY~t)j?v#?HvGxTxW4`?v;eblU95&2^{<8c9(?+3LR_n6!=;5mGNF@rubwIm|pJ-{! zV$q5q^ka!u%j1tw;Zg>wvia!DjT%}C_)OwcF#^x&;3PDWzm`L0k|epVS|^1dSXQ}> z(@FURanA(k*JKCBryI@^paFcSU})Zp!@dP^YtnD=A_0x4ZCA$3tF(RMt^d0Q)r7J( ztK|XmKqqz!I;Tr-nq&iGscxfyY-91Qpn`!cS}x;3FVA&f-}}{h?&+cCfV&ZLXO=|@ zi7373Rh5xa(HWbTHvo<)cA0b@;5)0aoX{ZKg0h8Y*(fxA8*Qd`UYwFq>@*uV7>Dm@wn!r+o2Tjc#h2OXyo6! zRS-p>}g5-cv|VqSVYy_QMeP@!Rr|3_E*?N zMZT=dqUIJ=Q9HH9nGPrW)4U^6or)dzyydzPpnU<5BvG(S@Y|vH!Pe-p1Z{+kpPi%INuTV@msm&)d2=a;0@QOmTn9 z2WjPYLX%oG*0LPJ@MsBzN~y^5bc|lBvy-UTIsG3&+tNzIk;sY9rb7!6rcDadvx9Cw zyRrwP8rphO!R52brH$QuJ%pEZS7_l$PTYt^Kxw1S!ZeJ(T)W7)XNykuVQ-2@m#K3A zqOqY`fIJN7&Sy}xEa(B}8f^=SYElB-;a>DXXc7d=xIk;J^*ioeM!2$mjiGLI>V(} z?6%q9bOEVfbj19|;Cf!td?zHTG9wNs?~?JEu_O1?g*#J63lyh9-W^QY%PMdU3ynC5 zb11SQOMni2ThZ5?;%;Xi^!h7fnOf^(p#TQ~H0DdMOfPphi=`>2w*5$mau$_c5OSH8 zS@9b?d}cb%6X7sB)#dXheUnE+IaFqv*LgW3KOp40^c)PodZZ!^?39l|J14sYGAnP& z#&B@VUU8*j>-PyviWAT`aWYHN=A?jVr(%GjSnXPN6>DRf6HcCeCZ`$+Wb9YRWs$>t@*90ReO9 zeu%ryl*Wqy8fVib4f=bX59`hmK-h_@$M@Z!Miwq#S@Z@hEVv*?09Xg73YlMe@V92$ zLuX}TK(~$Y;jTVOzSkuvz{f&Vc7Ror`Ks+!p1Z)KF<_8<7ZGuECK)PXSi^FjayyHw zwgp#*K8waP@?!L147Qv)oy@^)9<(WmDc{!L5uZIk0pYZS{Q=Cn!0Yx(qotg>K%5nG z7_WY;3-q&B(lN9*vGw7U?>Dxf6Aw$&ntKIfjd__FZo;Fz$V)D4D%Tw^Zo_fIIGJu# zO(7XTtOwK`8vt9Dtg%7aMnQ#KtW~DoJ%Dzhth!_pgFSHD;(eIko|mHn+n9B z*T$d}M;6(HSkaIT@^oa5O5l{w0zGB&;#`A)C|CwDZ}d$3?T*84-Jtw1OFMBH?!LHz&qMRTFz0G5`Pd>m*3ds5kRuWO0RMJn1(u;A z4uNSc(jow9K$gFc)Dq{d`WhPn=2~GweGYnZ10nP_kD?u2BTE;u{3{-Yn&@X-3flM8UkE+QxoY5bcmKR4yvgRY)u#s*hB;|u%y^xD*G?M z8b;ePIWWr{$=B|Wl2v1>3--F+7?E^!amiUzpaED}fja!v=+$g;2%SOjc07X@6b55} zH9YcG&#@K22cH^P5eP}mo{v2kgi$g=T)_iuy70?N-p`p9|PMW!&_#`KIwG~{D1zvKc_0 zHF{kt0izgAcji6JPy{$HYamYa$`@gIu07C-JmU05Ii4#bcE-+Ki|LhB=P*;{>~rC7 zH~|`J$&=;Fh^UPit|KX7Hm-prWX_8Ms^}RDC=vs(AY4%P6gpMb$Vw3>zJZ0Ka-UskY_#?K1vhFPk1ZG7mVO=xO6r<)uSrK!i3mb+lI+Cc@iHJDtB# zrjcJ^8(oo-@_2xiIy+iQGYo>@!snM@C`u9CXvny=b-4{f6@)a9_lVdJ_=#jdhN%zv ze#LndLg)&XGdYhvIHw2zxO%8wDg6IIqshC|e0-n+962RN8=fBE&#Wq;+Xo|~m3DEH zFdedJJf)L(x{DU!!^0WtEd_{F`eHeSi?!6$&2bLM zq=kIwwxDr;umtp|(kUG=qM{^`$;|^Ro>gssG4z}_5X(f|%C!euTAdJB1dRE)$KaAI z#cK`Fxx(pS0r@op1d|XM)dM?>Wf%V;pUNM zz735e7;aD-o85GF=x%K;lerbN8+O43>Y*TuJY4e(oHp1ffy*}CDLnahcpEn})m5M< z8ubSnmZx%bgD?noV^kWOvpt^=3C?ZmFA>XgxMqGqIC?8#sD-Gs(ECH~g>bdB`PPJ* zxTEZ@G=z2!A$;ks%uFts;0k4*tx&Cy5BECG>laTt^*fXrpk;;~Jug{7%ULY;R@BK%20GkC z7rPEEbfS1^^`a&0%!`HSKu4~lZLaJx*=j(&s?A|bpr2SahQb!lm~DGeL38T)N9Wct z%X;;Yr-pL~>=8>E`vm$>l~=|>C}fqB%dFf2E9ilHks)vuoJY`_*Mp=K%*kq8(hl)) zIZK9$->JcbSiSGQ#at66e#_f@|$1`2|iqnF2OW1^0nNdrI&d(0v)y?q6wdE zUN)kGsycgvMFaSU_X%5*rvXXE6NItMArcSZa*fDvu;K6Cx+#gKIY-0E{Vunx{;t-Y zi$dBa#I@of9UWfpqzz_FBsdI^=^2y994Z7OoK^4yu{EYkIa#sgX92<2HiVv1oU&o!@ujYA_APgLcTf63*SO2gNx7FSzfc75XB3`x2DLEtim6_hF>EjV(|VAhi~7 zvDl@N?c8708^ZXJRX_;PBSG!3dZkp~vi`TE+}1xL|Gf41U$+W2!?EM-wPBkY0v_-mlIoohebV*)ZUuBR$pm})sKwEq(HbhG>FpY zbo9Cmcx$8~jC~g>4PuYl67RWdTNVEt^4oN`RCygAOYhXmS*#RrSj+cKNqlE zhdofH2MrUIdA?-z?Rf_=MHh09Tu_KHg;AOE^o`CIu#Oqc+-Fmu$u}Yyy)|dx_YCaT zJHEWjS(8yZUz_VCQs`AP4X%}-ekvJmyRNSzf?*aL}VhB`FltY*$Pq$N+3uG9aPOLjzSD z?oRUfo#VKx?XkBjolI?S%030Stzx?x7{SV93<`lP9FpwT$iGI>r}7TtQxNX&Uas-k zHaC6eJH|-h5xdI55l#SoWP*wLOMqPlrxcSnI#71{6+pP=;KCZIE7Y5_mJN8A*5ko| z){Y5rw?#2?Hmqf~w9Z3TKex3Mc_4tv*D=uX8|QuZX@)NJq>+RIkLW*ZT&L`pSA zP&bdS=H!RwsAM$xTyHYxqT;O3)u$CPdB><<6Ot>Q{179QZ=h{pY^k>Vg|5?yzKpKY z(L8gNXx5})ti1eq>#mdD44Y_lNt_oL?sC9krzo3~Td^i>o}u+|YNeK^lLrONAD%L) z#ZZS@jG1>09Z$Sr0q={4>|`E*l<0NNz;AK~7)zw^D3$dlOu@krm#FhPzYQ z4{WOEX}f-jj-nae&|Jw*P=b)z0om@7-aEL)jlz37FFb>R{bq1H(&av2y54Hb=dpPY$`SDYS=)NI zjWS)%W(QB@8G5^vmHvp;-@-J0dux4yVW0R1wekyZfEXgciWB3H4sj-o6?tXoAoy#t z*S#APf&9!q*jRQmhD2V3rp?#~eFRt+UR(vPezUz_qGuWJ#KdV{&nogb>b8*lB{o#2 zpOuNleH4rpa~yiZ#%k5fdDAIP;NAAqUwTAo-+ zFs8-5<_y1{UaKRan5eUKuj>*A_dyy{^KDBA)CUZ#CLE=^;CcL#^8f3nX*ym zJH!AK?R4E2z~k`c75i*)-3-^~2VH%4xsIxgY%|YeI5+XVbAMU-$bszHC@_HV6Q^cQ=+5@N5|E~rehA$};*#1zi>3)bz{YmSiY&)FvdFBl zRvs)vj`lO+KA0PzHQwZzI}HsIT$Y_HW5(k1@f-qn+4B&1kgFSmM7~FTyY3ec9EUvK zyds;Ud(!e-U0~}B^$$5p47Gqw&rsN%+@xARoZoAO+%>SL?IlOwX zmh#qvQx#%0l8#(9jceCIFd+x^VLN~~=h17(OQ4~FKCK+gQFS~2AG+9Y6rjaF3+(Mq!8f4gF|SQrFc^B zu;-EOuJ$>ZP9}QRJ7i%pt`b5@jFK{(Q<2qw7+6s;J^w)M2tj+=s&}uqUg6 z3^?B7P%INRQ^gOL{cLW(@_0bQG9|a+W-x8}ELchEBF}$>*c~~QX7x?KAdgRM`Z_KpZ z$C25P6eCj#ZHsonJC7g2NaG2;FM{NNG3P3W^LkM2K)cq-uHqRlNwO%)=%Evhf4p`I zTlSGr?oPd)7ylheLJq03^lFpjZGmCQK$RP|oi(BLvOFiC`GhqlMM!p(?PPB(w9ac_I@Fv{y-s{2(;Fc(Sd7Z;>=yMRAv-EZ4v?RFTgBZ%er(GZ3Gu;6rMUAf#VcDRF& zOZA`b!Ca*%)ps~E5uLXg_lT&QcQu!%i8Z1495IcG1H&mplc+mvjfMb(p@fFbbXJgVdSd z3!t39$7ZkyU;$~#*evTPOE%b1qsn<(gq|(=N9?TdR-w*!hhvv@ng?K_Y2{`@VWhb4 zge6fxVe{Z)2_O0{O~~X93~MoC zH?^JCrSA^9!RE7f#r?)y6KYC7EXFJHPZwS+p*3SA5p+meEeXiU+zurEvL1w671Gy8 z6IT!in-RD=Fk#u*vEj^0`os2w7;+RaNqhTA=ea*-(GKa^Um9*-UilaS-#h7ahp@Wo zf-Wj1`Gvju3B*9FKs~8effz1$v>2r5CN@ZXU`4p2wacHVdm-B2IwtKw5YiZ=0O{<= z)B(J{Hp)6&c>)8#DxXW-fOlzo#{g5Yq3hB~fL$cibOBiB>HvLCC>>7rt|qh-47@CK zp$jJjJ|f_u0xvZ;P?ViH{Y7_B0Ls;R?kq<}zNT0O zx^e5Vdy5bvI!qn|t5kcZqlw(?NaneX(=9QG*G+dtjXYa@jl4KP^2PmOUL*BE0ySb) z4steE^Gi7?abuYBE?9WplvW^ugGo$M&I<+%RIBqKD76j;>2=Y zj0!f}?(4JIU4=hyxsw8f-FD5}BAXfAE|AKBLtw}P5|yTLR3rg!8IL$BA)FkD zx<5MTRbb%^a~~5{875?7hh1LI7ivjfR0CASa;ysfMoXx{p;NiaQMK{vmIFI=VA`ig35cny<*I%WA%+K)O*uztm7(?M=s2 z4)9Du7%c8c67pl(%{O1cq>ZS{A_z8I23U2rF_eSc$Gf24Q9x&G#BtJsVJqq(c^u*5 z^7@XQvZoWPpPBnIazUBjZG|*(mMR9TLS4!`Tt|wHo5Vfky}arwQ1~|n?^N9krC^Ay zHY6+`*;})LI@5Pji4>Gp99=p;3(uB_a;R@~h07rySbTHGPgrC?_A0=84ozM#QRHf0 zEzlM)y-hN0&6O$vM0p~907NRb`XnDWlmJY`A!U`ymU2C_J;2{(s7T&rEp>H`9fNz6 z7oO?`9A|k{@Td`Vv)!PYINY+wl2lAG=D6>;Q7eQiZ}=CxlI*1Yct9P%bh_6!XNeRH z_ftU{8OspB&fVs$eXV|rnJ6xCT68?* z{5IhdTfNkNYt*!R9>zrD4c^I6&HE(?#b+>|j*k`TafXq4%R>s#?>!@6kPse^0$qIo z2V()gSWBtdf-E8aP*_&hi$dw!kaXs<@wKo7^|$n=k(7HbiS{AzHkAije;KWc*&gT} zAxlfj5hpy~Vq*Ba73M6M7NGmJ@|x4dpyHbYG3dC&qYod43!bhN0AulpYpvRuYZ1fV z5VL8caUt`Wv%)nz-DCS5yCP)Y7G#>ufI1hV#IRc$T6f=*I7U$B!a3;Ln7cW1 zQJ7{YAb8Jb`iMb^!=e{fH6SMq9khq>twJc*A5Zbb5Idf_28X#!4^GzZZ`F(iGFV+) zKQ5Is{s%XzP>8N(*;~04rf^K-@TD6a3rHj1+#5p5OHTh%{p8>tP1f1!WXf6HfTfC+(I66k55-5V(ZnemAx1)h>Et$?cEx%q*4YX_j}G z_`>$$AoCQ?_s~JaB4+xgD9Z7tGhQ>a(31B<0#UBU<1}3>x_VCPTxWNy07qbhOg1iH zv}n@P=&LmK8w*~=fb9^R+8eYtpiU`xbCne!7Xx5GRy1Zg0hV4+!*o{AcuP8$K0Inj zMaSFhY=ls4IdB!#N1Z?lsiTn*R!5||N9}Vrq#iqJX#)=$wOV75G9&1+k32nXa(oiw zlSA?*sDwu=j(}=Bh42?rtm$Ctm}p_7y2g1!BFWm+caBBJ_CWLuY0-itdbm_7uZK6- zm9@69@7Ofnoo6g^eZ){=%KdNd@8j{#BEAk;JgV_IoZe}SiVh@Fx1_Nruz)e*VtB|N z045538op_^-?;@pqBJc4r^lddwC%D!*o-P-23Zh28>S!Sm4^>kZCbrwu}I}rBL@4|8mzhFQX z<`bTcAwWPw$QOV&TtwBEgNL?NXT6oLJwr3loL8b>X-~Fv#u%42fw35K@Qe|6GYw|( zbL0iy>vKS-lFr~)wBK{iQ8^}ld%N;kD7=h!Ypm~5(#)Wt=ES$PHLsn8?*W+0`$HxO5pq`S3SuCW0nmj0^Z@N zb9A`tGiP%LTPlMAbCj*8rutcM4sHsk+it!0^!TZMPF zar4xNt%qGFv)Y3&8B9s796B3{_eF(kbht=2ttvtXBirz;2B;IRju)i%q>4Vkj>J8+ zTCXoif>8TK54U~Gnz@x3qCKr75W~Bv5?sf0e_J$c#AUPJ+S8+LIX&RY%j>K~Y5CJb zht|s`4i5@`(v#eD!+EG+V1=uFoE=sfiP2F=xiMmmOCJ7~o1R}5pVV579_Sad zJ8R?P!S&1srhsTDqi1}F%SHz*etNsRTFbI#$2pVPjm@YL$*isX$Rm2dhxE!c4mQ&| z+WT9eZ=zgi`nI+aEsaxKlHE1lX4nRGeUvve`LqP8K?^eV?vuSfXnuCWk$fRAdUeqR;j^a=oMJw>#o7kgIiguVJT{Qe%yJVMg|54@p`=H<+OURJY_8#z zl?dQ_&BDnLwx?Spi5|qH=dxJ}5nbu)bsndX)PJ}m4%0$TNV~%WNupT!$_+Oc&%!C*FV(P zWTVxGEREGzUQrmPPADuS*(-(QJ)&;Y76!Z_D*@IoQ;Qn`olUHy1W{*$ecu3>qHnIo zT&o1iw$(i@xf)6on`sqTz#C;@3zAz*V?z0;NV&=QmSS&%i;TS7Yx2O?y|xF>Qmn|v z2w}iZ4!tM^suX@ug==wpR*xN+L*_+zBD2L*SGcQ(`eb={>sWc60G>Z-xh2}$b7p?fD$R^Mw!z`HUosCUyuiRJJ~Qnm}CN2VE)dNBp7pF*s5H% z#MC)Cpqj;`6-lY9T(25r^m%{-)?V{`x`cuDcFQ{zUeU5)>>++yG4i|s#AFWOW4kUw z=&(PealotzI%~`sCfFw+%2MX!en$B99p%CUZf>)d!Vn4Cig7y;ow{@tj!C_phHL(` zgsA!>UeFsWft0$$Fh!V7ysDQ2w!03V>35;*E)2Vv=3Y#jdjKngarGu&3zW|U*2PTu zQyY=o!vjgC`<`?6gShzB;f}!C(Ff{k1T;2ah#d3)5WlqhDqj>9>IEz*< zg*tG{>2K?_PqvhW((i3(?=%mr7^fLIlLxfFdus%#(%5{_6OWvkdA()`JM8<5CUwn1?i+dO{Qn1<(re1lGKS3R*0;GL%YSIDO zQ?Y>d&XpdUY2L&U7bY)YfVBeNkr`yGvRLk8Q6@p3yrz0b#M!T|ilbibpl&1f1B~SH zFl*9k405?Nw0UAs>O!?WNP9%~MIJv;n5tVyEG?VBBA7l=rl%q@9VY4QZ%xs%p`;}s z2aKg2L70(UQkk$R~TXZ3>#KSBSGxUT`fdxVyo4pQFvX!Y6qVZ1Pg? zQ^saZ9ojg`$i9j>7wL7Nptw8@fRwk(Ex0iZBp&ZLoqYDM_75$HLu=~K2CTa|93K$z z%E{I41*hGzL#3`U`8d0Kfz>vsy_oaWlVG&Scbgc-rl;XOiwJ(n;2 z24qiLDJO%da-nqYML=(K(sUVwNNH>*NvA0b64+g)x1hE2mB)0(XmA?>gZ5@qNMjlU z@rZUw99X>(&r2-jO2QH`->%QPywgdTa#piNm`-Lhzfx(~-PO~^m;O2{XhJ~sfBUpf z@+X`aApuq7K%F!s^1!l{?UXdVojCMOV-}m?BCD0k<{l~ay^|Jz!dB5qsl+KHDWuGz zoU@MaRN*COM+WdR;y^J0q?|eG^Q}}@h9WC}d5i>r9m|LSg4vyo@FBX$U=uL7-V1@q zOIO?mmz>ju(^@lHl{-DuVicwF zTta+^j9q&bR@3blyCZMsh5AHzBXritG6w4XXhS+O=;0kcjKiXDg%YP+rEqCJwLohDr#Rz*5a{R;Wx}ZxYW=xSd;5k z4)!+UVfax2h@U=OoUl!qp24sYC~AFLZ4mePERZIKBn+;6YTT0)bs%ogt1#%ks*Rhc z%d1UlU4EqZ;Yj%aF>_vIcv zR*l&8Qu6Q&)|(xU#tgQ`>lOVk!q(kUweYevhqyfD}41bX>!$dhrl!cU(FvwWc{zFnBtQV4*I6|8i{81Z`1D zt94JtGxa7PBKjd~1PMdxD!IA8?+(o&Jz2b}hJy@^u=Yu(##>8=Y~x{YaL@C};{Bz% zB!mm?b11Q!(bw`zGvqc%0Q(Ul7fqk32+!mOTS%tm@&$btsf^mXzUk2Xtq zuySVQxgewhz?Cy#8^*PkqeLx0!F<9sU;(w$$49(qPy@%o{t7Zk>!)PHrFgFw?sd1U znJOF}!$QFOMe#SGTsobdrie~45X>oiTBHOp2(-7g2YgG?Ew6ITdZY2-vV{kpK-n~U zOoD3q^yPJTMVUY#6{_$Ju&QiFE=<9|2TIHkUunnkQ#|1Mmlva9CrT&b@G-dl-9c51 z$yrQ9lDwU6r?#6Mkz&ZmNw9KXliVuO1x5RO7`-xk1)C~`+-M|PXWtc-tly%>NDk}m zw+2TjeS^kIdhR)tuiD=_$(7$=803r&=NUe!3s^{*w`(P#IJQZn)5^+ma-7C%Pz`!$ z<-XUXoc87$kgCV-t@hx?%L$jtX$bhSNLW>;v$-GvoQNBAynpWj35UPm1dE&ntP$;&3SixFL zJso^k!}^01P_ekjKIMXeX%$Oy}fa(JxV%_OmJ-3kSq|VFD7avrfpzl z$w~Y?d`w%JLZ0Qxrqtm9_mt(LXA%~#Z@v;IiEPIfU8n)COcIN4?!7Y)wxG*u;Us+f z9m=!*)kXen@G=`^(zCejjMnPjIRGw76nng~VCNo1AP^aAtQ3g&J1;6ge7l61BwDMP zs@oG@*UA0#SC((ci{-xu(a5AjCg{jlr4g)Dt#_? z2EGhe4)>)XZecs%HI!kzE$A+mJBu|AuEZ{TJ8Pc8R|Px}Ggl6>M8A>~pL5|ey^bxD zIQ{5!8@3h>WvZ7d+0met$J3@gnCpPOY*tq*8l!Vv8SQeD5oUUXJWS~N4YEqo5H~Ur zCk`_kR6juiw+1bs?pP7Po;ouxENwgnzH*o|5-FOhjKT9C*nKM$4}!J-5%5l7+fJ zK(`{LuKK+4*cS4+-20l5snhjxJPk7JO|lp0^!(PXV~`i?Q!2rJ6E)3ixwi~G^ROK|oCccEz+&$rAK&J@cmV;$ zvBNfC5d4PDTCbuHX)R9ahrxRzu7D(WO2W(s-op84kMwQ%nyTv*c?+ zp^JHO_+c_VPN%>}?ZJyjc|~4~S47fR(>ILpJ72x_Xz!MoG=AvD+*&!hZ`kI}?$dY@ z3s%RI`-mO4G1m!7U6_&T-SZ~R3(Ubt(E|ks@_{>mKjnTODegHeMegcwjZr^!oDkQM zWF16*q>US|vf$5&b_P->C*a3AD9Z_1(Ts(CfoDAQd*_%T_+oazz#b1~F##4z4Gcm8 zpv4+!Vdq%~BFj`dMN-*oP2S_ry<}J)3Y&qC1SkQFw+B?)2m2-`Zdg}!C6C14q`qGy zqJ)!(;oCI|cd@~do57+qv~P&oWh{(72aei;@P#_4DV#ms8fD@3gGKwY3-%rv6V#D0 zgf!NJuD-I^%1ROeJ$~5x>ZY^`W#ieS%;Gk&X2aCl40_K6_`x|=Bzhb!uq#TftBrtq zQpid3w?!*TB6-m`#hFRj`lt*}S{t#+2hNh=v3Hd%c{9C)1|>j$0PUp4?Y@Apkcf|= zN?t(Vrjnxfa>I#P;XU_)W!=JPHotzkh8RBOcwO=Pb}u) zMrW}D^(xG`omneSM{s~4 zpi2dpE*A;kSoP5HK7k3V3b~HDlqkVli#}w|U~(%1xS$0%7bg9*S+=3Kr9yg7Z(P}E zMI?{wGU&RMCq3o)Ap95g)keN<98EPJ5o&-*6YR6A)f^96)0t&Ll)3G7r383O9^!|K zwxtViZ{Q}V)YbePS|TJ2*;EKM7t~4+AToJsbdr5Nf*e0wE5q)NvcCKyfVq@G__hnw* zj~sWuE8X+4JA7?EU5l+FIbyJu2wI?~jw6iW+In<}il# zmAP@;2I0_mJ?#a%;$W}i0mWS3=} z^_&XmPhVrNdmu9+4(Z8GyJ^)~Yn(j@n7zb}GDfBzsy*nq>e5Qk(ktBW3B-U5CD_UZ zitg0V#^~#vgB${g^nJp{$VfofPD;WKp`i69<02eP>I{)Ph2?7|jGlmVN}e5|TQK|5 zsJy|XZcL9Auz}Z}a4w#yit=WJ1MxRHEI>2RCE{$ua|2DR>TZ<^B=W#=&&8(N*Ogc| zof@o3CeSM?w37fee}tiB?9>w*f4OLOIeba;UI$EkDT6Ja-wC67TTv`|V12E?JMQBk zLaHnuClCR`cQc`!y|&Xqwyp~BC@PKZHi#9E-e@o0+{y%Z+&!2L?}qbk0xfzVdJC0* zE=p78pum8qgfds7775O-HBvD|J1ZQ>CQ#}jEaE96(~$EEHjNw}xaapBcCm|JScE0# zjvb&9FdcmlZ#)sqCxZ&4a&JTZ2wI1J3C{zX{;-|wmSA324hcYcN+SO9TL3C}DNxqg z%{YehAz#$cx2CR|*%>8_{%;s#A4u!zKFD2Wte&wSpNcaWS$9sh90^*|m%>8hyn}WG zKr9jhDn1DAE%q#L-8wL{(37Y>IU{9iA@Kc-LoT;bd-Bif4a=ezmy4#3)@CU|2Iy*y z#ks8koL^(s^QJCJIi1Zs^`9GSywi{s(sOKYRQftgSwADD*OIpEa;T_Cr6jl~QU|B) zE17HRt-U#wk;d^(Arx|W2~p=?s7U}fD#$F|tMU4}x!@-W$QH_-5m-I2tNOSTSJ7Ms zV$Opm2V$(J+*a;Iv5f2bNsInxgEu}xI;dmA*EWzAnnUooU`p6s9vJHPJn1E?U4VWv z$~jgD|Ctmojd}V*Ot!}9?9H4-i|yHWJ$qBZuAnZ3^Z(?bE{T%k@yRL}lixx}y0NMj z(gek`4nPfoWmolwH?ghEBW!3%^!4UZ9WptQ0>-Jh<)70Um zVN4=&lM#v-+(@A0@T)&WPV}DDj2kJIu_2|cI%M7@v+!Ctl^N|~$i0?yd<`H?dX&eI zPae877E-g4Y3bj%zDO;*BG`F@s1-u^T$Qo}VDEBs*bU<4T*g{clU{gCz;ThOAtXed z#91~du^$>E#BynjMw&irU6q`yHN}O%a{$TQ8}kCP7GK>fEomk5F(T#{vnwCdaseb{ zQCO>@lcMiRBkV=3x>K#q@;h!7-p(^!>b$gvyb$JwYGuo)(zoy90rZGFnbGrDWHg~& zj=e0h)iL`?3I(TRM5-#D?w>tkgInR9yLO37N~Cjg7&C~B!V_(x+c+SH;d^WBU&p!- z$QBBf8^GmC!VxzMtBM3<&FwcDpm*S?fcWwO-6$FDB0cjzw8^79-VK{J<$j~RD0}5@ z?Wl#f01N#TSy`!hoPqmJqP4wdFW72@pTt>|85OcU5m;B@rUx~8@~NhZlII1hwnj<$ z8CYY`DMU0X^GM7deV;vUTOj%%tE!J!H`n9OY2iHP%x8B_^xNU}^Bl%e&?&w3E4m6G ziIK~BB9Yq_VhHBs_ALp)jv1STR^;8NLA4_1QLll>$xqj5?3^0m0eY>yXEK)rnIrYh#m%$0Gc;uPbRc9Ohao!|nL^>d&*bGexAv!3jM=*<$pP$#k>bFFU zJ9jH`$FG!%{5=v~ptm)KF>{NRk;=Jkg{∋Ss*-;*U@^xvLFK0L(t<@Yxle?#k!F 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%0Dn|r4d8zipXYh+J%^brL1dR#OH1BfwDlkSRP z03q9XbgW!SjrR_}?(_=-)H9~;;Jb5?^~Gfhy$;kbMT?vC)j~1R1rcVROeAjRng+cP zU;b9;!^g(J@MZf0(rpxPG?`n+@;V-Bk)8zI&K^D0{2RWa7EXtmH1JV_mQLxQksA-Qp2niNIL)9Q|vsEGu zSiMKKNkH;>&Db*bIGp3E!ynL^FVYd8mgrTPMhijM5?pZvMhcoHT6>4tI2$zWL=D4! z7o`9FKfk`@_w{SNfB*aFQ++`6^QV^&-#;n~K6xE)OAhp%d_E$L!W`~F;i7N}D91=` zMsW99d)H_VrAaCJ4v9+`o≷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

BNN<{1&h7@=(0uw$AOS!%m}cBdcWx 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�zC^U)GhtPp;X(ts=LK-*?2yq)EG!9b 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⩰=U`@iw>^&jl@>dWV! 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 DHz#1zXq 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 uKS&*R#=avNEyFP5N)|pmcB4pwrSPsT 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 156af08..a701073 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,24 @@ -# note⛏️ -**notemine** mines nostr notes, is written in rust, targets web and compiles to wasm. Variable difficulty and realtime hashrate. There's a [demo](https://sandwichfarm.github.io/notemine). +# @notemine -# related -- [`notemine-js`](https://github.com/sandwichfarm/notemine-js) is an npm module that wraps this package with observables for use with modern stacks. -- [`notemine-hw`](https://github.com/plebemineira/notemine_hw) is a fork ported to a cli application that leverages hardware acceleration +**notemine** mines nostr notes, is written in rust, targets web and compiles to wasm. Variable difficulty and realtime hashrate. There's some [demos](https://sandwichfarm.github.io/notemine). -# deps -``` -cargo install wasm-pack -``` +## Packages: +- [`@notemine/core`](./packages/core/) - It is in here you find the `rust` source for the moner. Build step generates JS Bindings, type declarations and wasm file via `wasm-bindgen`. The base of all packages in this monorepo. +- [`@notemine/wrapper`](./packages/wrapper/) - A user-friendly wrapper for `@notemine/core` that greatly simplifies usage in modern stacks and deployments with modern bundlers. Provides observables, manages workers, tracks internal state and bundles wasm as _inline base64_ within _inline_ web-workers for hassle-free use in modern apps targeted for the browser. +- _[`@notemine/svelte`](./packages/svelte/)_ [coming soon] - Library optimized for Svelte that exports stores and components for hassle-free use in svelte projects. +- _[`@notemine/reactjs`](./packages/reactjs/)_ [coming soon] - Library optimized for ReactJS that exports stores and components for hassle-free use in svelte projects. + +## Demos: +- [`@notemine/vanilla-js-demo`](./demos/vanilla-js/) - Demo of Notemine written with vanilla Javascript, HTML and CSS that implements `@notemine/core`. No bundlers. +- [`@notemine/svelte-demo`](./demos/svelte/) - Vanilla JS Demo Ported to Svelte that implements `@notemine/wrapper` (note: future version will implement `@notemine/svelte`) -# build +## Contrib +`@notemine` monorepo presently uses `yarn workspaces` without any monorepo toolkit (pending). Recommended to use `yarn v2` until monorepo is fully configured. ``` -cargo clean -wasm-pack build --target web --release +yarn install ``` -# run demo +Use workspace commands: ``` -cd demo && npx serve +yarn workspace @notemine/wrapper ... ``` - -# license -GNU General Public License v3.0 - diff --git a/demo/pkg b/demo/pkg deleted file mode 120000 index 4394270..0000000 --- a/demo/pkg +++ /dev/null @@ -1 +0,0 @@ -../pkg \ No newline at end of file diff --git a/demos/reactjs/.gitkeep b/demos/reactjs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/demos/svelte/.eslintrc.json b/demos/svelte/.eslintrc.json new file mode 100644 index 0000000..de3c08e --- /dev/null +++ b/demos/svelte/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "rules": { + "jsx-a11y/rule-name": "off" + } +} \ No newline at end of file diff --git a/demos/svelte/.gitignore b/demos/svelte/.gitignore new file mode 100644 index 0000000..da93220 --- /dev/null +++ b/demos/svelte/.gitignore @@ -0,0 +1,4 @@ +/node_modules/ +/public/build/ + +.DS_Store diff --git a/demos/svelte/.gitkeep b/demos/svelte/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/demos/svelte/README.md b/demos/svelte/README.md new file mode 100644 index 0000000..1f1ab74 --- /dev/null +++ b/demos/svelte/README.md @@ -0,0 +1,18 @@ +# `@notemine/svelte-demo` + +The vanilla-js demo ported to Svelte with `@notemine/wrapper` as the dependency instead of `@notemine/core` + +``` +yarn install +``` + +## Usage +Run development server +``` +yarn dev +``` + +Build package +``` +yarn build +``` \ No newline at end of file diff --git a/demos/svelte/package.json b/demos/svelte/package.json new file mode 100644 index 0000000..75ce7ee --- /dev/null +++ b/demos/svelte/package.json @@ -0,0 +1,36 @@ +{ + "name": "@notemine/svelte-demo", + "version": "0.1.0", + "type": "module", + "scripts": { + "build": "rollup -c", + "dev": "rollup -c -w", + "start": "sirv public --no-clear" + }, + "dependencies": { + "@notemine/wrapper": "workspace:*", + "@rollup/plugin-alias": "5.1.1", + "@rollup/plugin-url": "8.0.2", + "@rollup/plugin-wasm": "6.2.2", + "nostr-tools": "2.7.2", + "rollup-plugin-terser": "7.0.2", + "rollup-plugin-typescript2": "0.36.0", + "rollup-plugin-web-worker-loader": "1.6.1", + "sirv-cli": "^2.0.0", + "webpack-env": "0.8.0" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "28.0.0", + "@rollup/plugin-node-resolve": "15.3.0", + "@rollup/plugin-terser": "^0.4.0", + "rollup": "^3.15.0", + "rollup-plugin-copy": "3.5.0", + "rollup-plugin-css-only": "^4.3.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-postcss": "4.0.2", + "rollup-plugin-svelte": "^7.1.2", + "svelte": "^3.55.0", + "svelte-preprocess": "6.0.2", + "webpack": "5.94.0" + } +} diff --git a/demos/svelte/public/build/bundle.css b/demos/svelte/public/build/bundle.css new file mode 100644 index 0000000..cc522e6 --- /dev/null +++ b/demos/svelte/public/build/bundle.css @@ -0,0 +1 @@ +#user.svelte-1qw1mb0{margin:10px 0}#relaysContainer.svelte-1qw1mb0{margin-top:10px}textarea.svelte-1qw1mb0,input[type="number"].svelte-1qw1mb0{width:100%;padding:8px;margin-top:5px;box-sizing:border-box}button.svelte-1qw1mb0{padding:10px 15px;margin-right:10px;cursor:pointer}pre.svelte-1qw1mb0{background-color:#f4f4f4;padding:10px;overflow:auto}ul.svelte-1qw1mb0{list-style-type:none;padding-left:0}li.svelte-1qw1mb0{margin-bottom:5px} \ No newline at end of file diff --git a/demos/svelte/public/build/bundle.js b/demos/svelte/public/build/bundle.js new file mode 100644 index 0000000..54efe46 --- /dev/null +++ b/demos/svelte/public/build/bundle.js @@ -0,0 +1,9091 @@ + +(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); +var app = (function () { + 'use strict'; + + function noop$1() { } + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + function run(fn) { + return fn(); + } + function blank_object() { + return Object.create(null); + } + function run_all(fns) { + fns.forEach(run); + } + function is_function(thing) { + return typeof thing === 'function'; + } + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + let src_url_equal_anchor; + function src_url_equal(element_src, url) { + if (!src_url_equal_anchor) { + src_url_equal_anchor = document.createElement('a'); + } + src_url_equal_anchor.href = url; + return element_src === src_url_equal_anchor.href; + } + function is_empty(obj) { + return Object.keys(obj).length === 0; + } + function validate_store(store, name) { + if (store != null && typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + function subscribe(store, ...callbacks) { + if (store == null) { + return noop$1; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; + } + function get_store_value(store) { + let value; + subscribe(store, _ => value = _)(); + return value; + } + function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); + } + function set_store_value(store, ret, value) { + store.set(value); + return ret; + } + + const globals = (typeof window !== 'undefined' + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : global); + function append(target, node) { + target.appendChild(node); + } + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + function detach(node) { + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } + } + function element(name) { + return document.createElement(name); + } + function text(data) { + return document.createTextNode(data); + } + function space() { + return text(' '); + } + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); + } + function to_number(value) { + return value === '' ? null : +value; + } + function children(element) { + return Array.from(element.childNodes); + } + function set_input_value(input, value) { + input.value = value == null ? '' : value; + } + function set_style(node, key, value, important) { + if (value == null) { + node.style.removeProperty(key); + } + else { + node.style.setProperty(key, value, important ? 'important' : ''); + } + } + function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, cancelable, detail); + return e; + } + + let current_component; + function set_current_component(component) { + current_component = component; + } + function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; + } + /** + * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. + * It must be called during the component's initialisation (but doesn't need to live *inside* the component; + * it can be called from an external module). + * + * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). + * + * https://svelte.dev/docs#run-time-svelte-onmount + */ + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + /** + * Schedules a callback to run immediately before the component is unmounted. + * + * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the + * only one that runs inside a server-side component. + * + * https://svelte.dev/docs#run-time-svelte-ondestroy + */ + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + + const dirty_components = []; + const binding_callbacks = []; + let render_callbacks = []; + const flush_callbacks = []; + const resolved_promise = /* @__PURE__ */ Promise.resolve(); + let update_scheduled = false; + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + function add_render_callback(fn) { + render_callbacks.push(fn); + } + // flush() calls callbacks in this order: + // 1. All beforeUpdate callbacks, in order: parents before children + // 2. All bind:this callbacks, in reverse order: children before parents. + // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT + // for afterUpdates called during the initial onMount, which are called in + // reverse order: children before parents. + // Since callbacks might update component values, which could trigger another + // call to flush(), the following steps guard against this: + // 1. During beforeUpdate, any updated components will be added to the + // dirty_components array and will cause a reentrant call to flush(). Because + // the flush index is kept outside the function, the reentrant call will pick + // up where the earlier call left off and go through all dirty components. The + // current_component value is saved and restored so that the reentrant call will + // not interfere with the "parent" flush() call. + // 2. bind:this callbacks cannot trigger new flush() calls. + // 3. During afterUpdate, any updated components will NOT have their afterUpdate + // callback called a second time; the seen_callbacks set, outside the flush() + // function, guarantees this behavior. + const seen_callbacks = new Set(); + let flushidx = 0; // Do *not* move this inside the flush() function + function flush() { + // Do not reenter flush while dirty components are updated, as this can + // result in an infinite loop. Instead, let the inner flush handle it. + // Reentrancy is ok afterwards for bindings etc. + if (flushidx !== 0) { + return; + } + const saved_component = current_component; + do { + // first, call beforeUpdate functions + // and update components + try { + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + } + catch (e) { + // reset dirty state to not end up in a deadlocked state and then rethrow + dirty_components.length = 0; + flushidx = 0; + throw e; + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); + } + function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } + } + /** + * Useful for example to execute remaining `afterUpdate` callbacks before executing `destroy`. + */ + function flush_render_callbacks(fns) { + const filtered = []; + const targets = []; + render_callbacks.forEach((c) => fns.indexOf(c) === -1 ? filtered.push(c) : targets.push(c)); + targets.forEach((c) => c()); + render_callbacks = filtered; + } + const outroing = new Set(); + function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } + } + function mount_component(component, target, anchor, customElement) { + const { fragment, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + // if the component was destroyed immediately + // it will update the `$$.on_destroy` reference to `null`. + // the destructured on_destroy may still reference to the old array + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); + } + function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + flush_render_callbacks($$.after_update); + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } + } + function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); + } + function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + // state + props, + update: noop$1, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); + } + /** + * Base class for Svelte components. Used when dev=false. + */ + class SvelteComponent { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop$1; + } + $on(type, callback) { + if (!is_function(callback)) { + return noop$1; + } + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + } + + function dispatch_dev(type, detail) { + document.dispatchEvent(custom_event(type, Object.assign({ version: '3.59.2' }, detail), { bubbles: true })); + } + function append_dev(target, node) { + dispatch_dev('SvelteDOMInsert', { target, node }); + append(target, node); + } + function insert_dev(target, node, anchor) { + dispatch_dev('SvelteDOMInsert', { target, node, anchor }); + insert(target, node, anchor); + } + function detach_dev(node) { + dispatch_dev('SvelteDOMRemove', { node }); + detach(node); + } + function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation, has_stop_immediate_propagation) { + const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; + if (has_prevent_default) + modifiers.push('preventDefault'); + if (has_stop_propagation) + modifiers.push('stopPropagation'); + if (has_stop_immediate_propagation) + modifiers.push('stopImmediatePropagation'); + dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); + const dispose = listen(node, event, handler, options); + return () => { + dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); + dispose(); + }; + } + function attr_dev(node, attribute, value) { + attr(node, attribute, value); + if (value == null) + dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); + else + dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); + } + function prop_dev(node, property, value) { + node[property] = value; + dispatch_dev('SvelteDOMSetProperty', { node, property, value }); + } + function set_data_dev(text, data) { + data = '' + data; + if (text.data === data) + return; + dispatch_dev('SvelteDOMSetData', { node: text, data }); + text.data = data; + } + function validate_each_argument(arg) { + if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { + let msg = '{#each} only iterates over array-like objects.'; + if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { + msg += ' You can use a spread to convert this iterable into an array.'; + } + throw new Error(msg); + } + } + function validate_slots(name, slot, keys) { + for (const slot_key of Object.keys(slot)) { + if (!~keys.indexOf(slot_key)) { + console.warn(`<${name}> received an unexpected slot "${slot_key}".`); + } + } + } + /** + * Base class for Svelte components with some minor dev-enhancements. Used when dev=true. + */ + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error("'target' is a required option"); + } + super(); + } + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn('Component was already destroyed'); // eslint-disable-line no-console + }; + } + $capture_state() { } + $inject_state() { } + } + + const subscriber_queue = []; + /** + * Creates a `Readable` store that allows reading by subscription. + * @param value initial value + * @param {StartStopNotifier} [start] + */ + function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; + } + /** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=} start + */ + function writable(value, start = noop$1) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop$1) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop$1; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0 && stop) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; + } + function derived(stores, fn, initial_value) { + const single = !Array.isArray(stores); + const stores_array = single + ? [stores] + : stores; + const auto = fn.length < 2; + return readable(initial_value, (set) => { + let started = false; + const values = []; + let pending = 0; + let cleanup = noop$1; + const sync = () => { + if (pending) { + return; + } + cleanup(); + const result = fn(single ? values[0] : values, set); + if (auto) { + set(result); + } + else { + cleanup = is_function(result) ? result : noop$1; + } + }; + const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { + values[i] = value; + pending &= ~(1 << i); + if (started) { + sync(); + } + }, () => { + pending |= (1 << i); + })); + started = true; + sync(); + return function stop() { + run_all(unsubscribers); + cleanup(); + // We need to set this to false because callbacks can still happen despite having unsubscribed: + // Callbacks might already be placed in the queue which doesn't know it should no longer + // invoke this derived store. + started = false; + }; + }); + } + + function number$2(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error(`Wrong positive integer: ${n}`); + } + function bytes$2(b, ...lengths) { + if (!(b instanceof Uint8Array)) + throw new Error('Expected Uint8Array'); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`); + } + function hash$1(hash) { + if (typeof hash !== 'function' || typeof hash.create !== 'function') + throw new Error('Hash should be wrapped by utils.wrapConstructor'); + number$2(hash.outputLen); + number$2(hash.blockLen); + } + function exists$1(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error('Hash instance has been destroyed'); + if (checkFinished && instance.finished) + throw new Error('Hash#digest() has already been called'); + } + function output$1(out, instance) { + bytes$2(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error(`digestInto() expects output buffer of length at least ${min}`); + } + } + + const crypto$1 = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined; + + /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. + // node.js versions earlier than v19 don't declare it in global scope. + // For node.js, package.json#exports field mapping rewrites import + // from `crypto` to `cryptoNode`, which imports native module. + // Makes the utils un-importable in browsers without a bundler. + // Once node.js 18 is deprecated, we can just drop the import. + const u8a$2 = (a) => a instanceof Uint8Array; + // Cast array to view + const createView$1 = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength); + // The rotate right (circular right shift) operation for uint32 + const rotr$1 = (word, shift) => (word << (32 - shift)) | (word >>> shift); + // big-endian hardware is rare. Just in case someone still decides to run hashes: + // early-throw an error because we don't support BE yet. + const isLE$2 = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44; + if (!isLE$2) + throw new Error('Non little-endian hardware is not supported'); + /** + * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99]) + */ + function utf8ToBytes$2(str) { + if (typeof str !== 'string') + throw new Error(`utf8ToBytes expected string, got ${typeof str}`); + return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809 + } + /** + * Normalizes (non-hex) string or Uint8Array to Uint8Array. + * Warning: when Uint8Array is passed, it would NOT get copied. + * Keep in mind for future mutable operations. + */ + function toBytes$1(data) { + if (typeof data === 'string') + data = utf8ToBytes$2(data); + if (!u8a$2(data)) + throw new Error(`expected Uint8Array, got ${typeof data}`); + return data; + } + /** + * Copies several Uint8Arrays into one. + */ + function concatBytes$2(...arrays) { + const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0)); + let pad = 0; // walk through each item, ensure they have proper type + arrays.forEach((a) => { + if (!u8a$2(a)) + throw new Error('Uint8Array expected'); + r.set(a, pad); + pad += a.length; + }); + return r; + } + // For runtime check if class implements interface + let Hash$1 = class Hash { + // Safe version that clones internal state + clone() { + return this._cloneInto(); + } + }; + function wrapConstructor$1(hashCons) { + const hashC = (msg) => hashCons().update(toBytes$1(msg)).digest(); + const tmp = hashCons(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashCons(); + return hashC; + } + /** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ + function randomBytes$1(bytesLength = 32) { + if (crypto$1 && typeof crypto$1.getRandomValues === 'function') { + return crypto$1.getRandomValues(new Uint8Array(bytesLength)); + } + throw new Error('crypto.getRandomValues must be defined'); + } + + // Polyfill for Safari 14 + function setBigUint64$1(view, byteOffset, value, isLE) { + if (typeof view.setBigUint64 === 'function') + return view.setBigUint64(byteOffset, value, isLE); + const _32n = BigInt(32); + const _u32_max = BigInt(0xffffffff); + const wh = Number((value >> _32n) & _u32_max); + const wl = Number(value & _u32_max); + const h = isLE ? 4 : 0; + const l = isLE ? 0 : 4; + view.setUint32(byteOffset + h, wh, isLE); + view.setUint32(byteOffset + l, wl, isLE); + } + // Base SHA2 class (RFC 6234) + let SHA2$1 = class SHA2 extends Hash$1 { + constructor(blockLen, outputLen, padOffset, isLE) { + super(); + this.blockLen = blockLen; + this.outputLen = outputLen; + this.padOffset = padOffset; + this.isLE = isLE; + this.finished = false; + this.length = 0; + this.pos = 0; + this.destroyed = false; + this.buffer = new Uint8Array(blockLen); + this.view = createView$1(this.buffer); + } + update(data) { + exists$1(this); + const { view, buffer, blockLen } = this; + data = toBytes$1(data); + const len = data.length; + for (let pos = 0; pos < len;) { + const take = Math.min(blockLen - this.pos, len - pos); + // Fast path: we have at least one block in input, cast it to view and process + if (take === blockLen) { + const dataView = createView$1(data); + for (; blockLen <= len - pos; pos += blockLen) + this.process(dataView, pos); + continue; + } + buffer.set(data.subarray(pos, pos + take), this.pos); + this.pos += take; + pos += take; + if (this.pos === blockLen) { + this.process(view, 0); + this.pos = 0; + } + } + this.length += data.length; + this.roundClean(); + return this; + } + digestInto(out) { + exists$1(this); + output$1(out, this); + this.finished = true; + // Padding + // We can avoid allocation of buffer for padding completely if it + // was previously not allocated here. But it won't change performance. + const { buffer, view, blockLen, isLE } = this; + let { pos } = this; + // append the bit '1' to the message + buffer[pos++] = 0b10000000; + this.buffer.subarray(pos).fill(0); + // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again + if (this.padOffset > blockLen - pos) { + this.process(view, 0); + pos = 0; + } + // Pad until full block byte with zeros + for (let i = pos; i < blockLen; i++) + buffer[i] = 0; + // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that + // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen. + // So we just write lowest 64 bits of that value. + setBigUint64$1(view, blockLen - 8, BigInt(this.length * 8), isLE); + this.process(view, 0); + const oview = createView$1(out); + const len = this.outputLen; + // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT + if (len % 4) + throw new Error('_sha2: outputLen should be aligned to 32bit'); + const outLen = len / 4; + const state = this.get(); + if (outLen > state.length) + throw new Error('_sha2: outputLen bigger than state'); + for (let i = 0; i < outLen; i++) + oview.setUint32(4 * i, state[i], isLE); + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneInto(to) { + to || (to = new this.constructor()); + to.set(...this.get()); + const { blockLen, buffer, length, finished, destroyed, pos } = this; + to.length = length; + to.pos = pos; + to.finished = finished; + to.destroyed = destroyed; + if (length % blockLen) + to.buffer.set(buffer); + return to; + } + }; + + // SHA2-256 need to try 2^128 hashes to execute birthday attack. + // BTC network is doing 2^67 hashes/sec as per early 2023. + // Choice: a ? b : c + const Chi$1 = (a, b, c) => (a & b) ^ (~a & c); + // Majority function, true if any two inpust is true + const Maj$1 = (a, b, c) => (a & b) ^ (a & c) ^ (b & c); + // Round constants: + // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) + // prettier-ignore + const SHA256_K$1 = /* @__PURE__ */ new Uint32Array([ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ]); + // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): + // prettier-ignore + const IV$1 = /* @__PURE__ */ new Uint32Array([ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + ]); + // Temporary buffer, not used to store anything between runs + // Named this way because it matches specification. + const SHA256_W$1 = /* @__PURE__ */ new Uint32Array(64); + let SHA256$1 = class SHA256 extends SHA2$1 { + constructor() { + super(64, 32, 8, false); + // We cannot use array here since array allows indexing by variable + // which means optimizer/compiler cannot use registers. + this.A = IV$1[0] | 0; + this.B = IV$1[1] | 0; + this.C = IV$1[2] | 0; + this.D = IV$1[3] | 0; + this.E = IV$1[4] | 0; + this.F = IV$1[5] | 0; + this.G = IV$1[6] | 0; + this.H = IV$1[7] | 0; + } + get() { + const { A, B, C, D, E, F, G, H } = this; + return [A, B, C, D, E, F, G, H]; + } + // prettier-ignore + set(A, B, C, D, E, F, G, H) { + this.A = A | 0; + this.B = B | 0; + this.C = C | 0; + this.D = D | 0; + this.E = E | 0; + this.F = F | 0; + this.G = G | 0; + this.H = H | 0; + } + process(view, offset) { + // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array + for (let i = 0; i < 16; i++, offset += 4) + SHA256_W$1[i] = view.getUint32(offset, false); + for (let i = 16; i < 64; i++) { + const W15 = SHA256_W$1[i - 15]; + const W2 = SHA256_W$1[i - 2]; + const s0 = rotr$1(W15, 7) ^ rotr$1(W15, 18) ^ (W15 >>> 3); + const s1 = rotr$1(W2, 17) ^ rotr$1(W2, 19) ^ (W2 >>> 10); + SHA256_W$1[i] = (s1 + SHA256_W$1[i - 7] + s0 + SHA256_W$1[i - 16]) | 0; + } + // Compression function main loop, 64 rounds + let { A, B, C, D, E, F, G, H } = this; + for (let i = 0; i < 64; i++) { + const sigma1 = rotr$1(E, 6) ^ rotr$1(E, 11) ^ rotr$1(E, 25); + const T1 = (H + sigma1 + Chi$1(E, F, G) + SHA256_K$1[i] + SHA256_W$1[i]) | 0; + const sigma0 = rotr$1(A, 2) ^ rotr$1(A, 13) ^ rotr$1(A, 22); + const T2 = (sigma0 + Maj$1(A, B, C)) | 0; + H = G; + G = F; + F = E; + E = (D + T1) | 0; + D = C; + C = B; + B = A; + A = (T1 + T2) | 0; + } + // Add the compressed chunk to the current hash value + A = (A + this.A) | 0; + B = (B + this.B) | 0; + C = (C + this.C) | 0; + D = (D + this.D) | 0; + E = (E + this.E) | 0; + F = (F + this.F) | 0; + G = (G + this.G) | 0; + H = (H + this.H) | 0; + this.set(A, B, C, D, E, F, G, H); + } + roundClean() { + SHA256_W$1.fill(0); + } + destroy() { + this.set(0, 0, 0, 0, 0, 0, 0, 0); + this.buffer.fill(0); + } + }; + /** + * SHA2-256 hash function + * @param message - data that would be hashed + */ + const sha256$1 = /* @__PURE__ */ wrapConstructor$1(() => new SHA256$1()); + + /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // 100 lines of code in the file are duplicated from noble-hashes (utils). + // This is OK: `abstract` directory does not use noble-hashes. + // User may opt-in into using different hashing library. This way, noble-hashes + // won't be included into their bundle. + const _0n$4 = BigInt(0); + const _1n$4 = BigInt(1); + const _2n$2 = BigInt(2); + const u8a$1 = (a) => a instanceof Uint8Array; + const hexes$1 = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0')); + /** + * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123' + */ + function bytesToHex$1(bytes) { + if (!u8a$1(bytes)) + throw new Error('Uint8Array expected'); + // pre-caching improves the speed 6x + let hex = ''; + for (let i = 0; i < bytes.length; i++) { + hex += hexes$1[bytes[i]]; + } + return hex; + } + function numberToHexUnpadded(num) { + const hex = num.toString(16); + return hex.length & 1 ? `0${hex}` : hex; + } + function hexToNumber(hex) { + if (typeof hex !== 'string') + throw new Error('hex string expected, got ' + typeof hex); + // Big Endian + return BigInt(hex === '' ? '0' : `0x${hex}`); + } + /** + * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23]) + */ + function hexToBytes$1(hex) { + if (typeof hex !== 'string') + throw new Error('hex string expected, got ' + typeof hex); + const len = hex.length; + if (len % 2) + throw new Error('padded hex string expected, got unpadded hex of length ' + len); + const array = new Uint8Array(len / 2); + for (let i = 0; i < array.length; i++) { + const j = i * 2; + const hexByte = hex.slice(j, j + 2); + const byte = Number.parseInt(hexByte, 16); + if (Number.isNaN(byte) || byte < 0) + throw new Error('Invalid byte sequence'); + array[i] = byte; + } + return array; + } + // BE: Big Endian, LE: Little Endian + function bytesToNumberBE(bytes) { + return hexToNumber(bytesToHex$1(bytes)); + } + function bytesToNumberLE(bytes) { + if (!u8a$1(bytes)) + throw new Error('Uint8Array expected'); + return hexToNumber(bytesToHex$1(Uint8Array.from(bytes).reverse())); + } + function numberToBytesBE(n, len) { + return hexToBytes$1(n.toString(16).padStart(len * 2, '0')); + } + function numberToBytesLE(n, len) { + return numberToBytesBE(n, len).reverse(); + } + // Unpadded, rarely used + function numberToVarBytesBE(n) { + return hexToBytes$1(numberToHexUnpadded(n)); + } + /** + * Takes hex string or Uint8Array, converts to Uint8Array. + * Validates output length. + * Will throw error for other types. + * @param title descriptive title for an error e.g. 'private key' + * @param hex hex string or Uint8Array + * @param expectedLength optional, will compare to result array's length + * @returns + */ + function ensureBytes(title, hex, expectedLength) { + let res; + if (typeof hex === 'string') { + try { + res = hexToBytes$1(hex); + } + catch (e) { + throw new Error(`${title} must be valid hex string, got "${hex}". Cause: ${e}`); + } + } + else if (u8a$1(hex)) { + // Uint8Array.from() instead of hash.slice() because node.js Buffer + // is instance of Uint8Array, and its slice() creates **mutable** copy + res = Uint8Array.from(hex); + } + else { + throw new Error(`${title} must be hex string or Uint8Array`); + } + const len = res.length; + if (typeof expectedLength === 'number' && len !== expectedLength) + throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`); + return res; + } + /** + * Copies several Uint8Arrays into one. + */ + function concatBytes$1(...arrays) { + const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0)); + let pad = 0; // walk through each item, ensure they have proper type + arrays.forEach((a) => { + if (!u8a$1(a)) + throw new Error('Uint8Array expected'); + r.set(a, pad); + pad += a.length; + }); + return r; + } + function equalBytes$1(b1, b2) { + // We don't care about timing attacks here + if (b1.length !== b2.length) + return false; + for (let i = 0; i < b1.length; i++) + if (b1[i] !== b2[i]) + return false; + return true; + } + /** + * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99]) + */ + function utf8ToBytes$1(str) { + if (typeof str !== 'string') + throw new Error(`utf8ToBytes expected string, got ${typeof str}`); + return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809 + } + // Bit operations + /** + * Calculates amount of bits in a bigint. + * Same as `n.toString(2).length` + */ + function bitLen(n) { + let len; + for (len = 0; n > _0n$4; n >>= _1n$4, len += 1) + ; + return len; + } + /** + * Gets single bit at position. + * NOTE: first bit position is 0 (same as arrays) + * Same as `!!+Array.from(n.toString(2)).reverse()[pos]` + */ + function bitGet(n, pos) { + return (n >> BigInt(pos)) & _1n$4; + } + /** + * Sets single bit at position. + */ + const bitSet = (n, pos, value) => { + return n | ((value ? _1n$4 : _0n$4) << BigInt(pos)); + }; + /** + * Calculate mask for N bits. Not using ** operator with bigints because of old engines. + * Same as BigInt(`0b${Array(i).fill('1').join('')}`) + */ + const bitMask = (n) => (_2n$2 << BigInt(n - 1)) - _1n$4; + // DRBG + const u8n = (data) => new Uint8Array(data); // creates Uint8Array + const u8fr = (arr) => Uint8Array.from(arr); // another shortcut + /** + * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs. + * @returns function that will call DRBG until 2nd arg returns something meaningful + * @example + * const drbg = createHmacDRBG(32, 32, hmac); + * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined + */ + function createHmacDrbg(hashLen, qByteLen, hmacFn) { + if (typeof hashLen !== 'number' || hashLen < 2) + throw new Error('hashLen must be a number'); + if (typeof qByteLen !== 'number' || qByteLen < 2) + throw new Error('qByteLen must be a number'); + if (typeof hmacFn !== 'function') + throw new Error('hmacFn must be a function'); + // Step B, Step C: set hashLen to 8*ceil(hlen/8) + let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs. + let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same + let i = 0; // Iterations counter, will throw when over 1000 + const reset = () => { + v.fill(1); + k.fill(0); + i = 0; + }; + const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values) + const reseed = (seed = u8n()) => { + // HMAC-DRBG reseed() function. Steps D-G + k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed) + v = h(); // v = hmac(k || v) + if (seed.length === 0) + return; + k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed) + v = h(); // v = hmac(k || v) + }; + const gen = () => { + // HMAC-DRBG generate() function + if (i++ >= 1000) + throw new Error('drbg: tried 1000 values'); + let len = 0; + const out = []; + while (len < qByteLen) { + v = h(); + const sl = v.slice(); + out.push(sl); + len += v.length; + } + return concatBytes$1(...out); + }; + const genUntil = (seed, pred) => { + reset(); + reseed(seed); // Steps D-G + let res = undefined; // Step H: grind until k is in [1..n-1] + while (!(res = pred(gen()))) + reseed(); + reset(); + return res; + }; + return genUntil; + } + // Validating curves and fields + const validatorFns = { + bigint: (val) => typeof val === 'bigint', + function: (val) => typeof val === 'function', + boolean: (val) => typeof val === 'boolean', + string: (val) => typeof val === 'string', + stringOrUint8Array: (val) => typeof val === 'string' || val instanceof Uint8Array, + isSafeInteger: (val) => Number.isSafeInteger(val), + array: (val) => Array.isArray(val), + field: (val, object) => object.Fp.isValid(val), + hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen), + }; + // type Record = { [P in K]: T; } + function validateObject(object, validators, optValidators = {}) { + const checkField = (fieldName, type, isOptional) => { + const checkVal = validatorFns[type]; + if (typeof checkVal !== 'function') + throw new Error(`Invalid validator "${type}", expected function`); + const val = object[fieldName]; + if (isOptional && val === undefined) + return; + if (!checkVal(val, object)) { + throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`); + } + }; + for (const [fieldName, type] of Object.entries(validators)) + checkField(fieldName, type, false); + for (const [fieldName, type] of Object.entries(optValidators)) + checkField(fieldName, type, true); + return object; + } + // validate type tests + // const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 }; + // const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok! + // // Should fail type-check + // const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' }); + // const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' }); + // const z3 = validateObject(o, { test: 'boolean', z: 'bug' }); + // const z4 = validateObject(o, { a: 'boolean', z: 'bug' }); + + var ut = /*#__PURE__*/Object.freeze({ + __proto__: null, + bitGet: bitGet, + bitLen: bitLen, + bitMask: bitMask, + bitSet: bitSet, + bytesToHex: bytesToHex$1, + bytesToNumberBE: bytesToNumberBE, + bytesToNumberLE: bytesToNumberLE, + concatBytes: concatBytes$1, + createHmacDrbg: createHmacDrbg, + ensureBytes: ensureBytes, + equalBytes: equalBytes$1, + hexToBytes: hexToBytes$1, + hexToNumber: hexToNumber, + numberToBytesBE: numberToBytesBE, + numberToBytesLE: numberToBytesLE, + numberToHexUnpadded: numberToHexUnpadded, + numberToVarBytesBE: numberToVarBytesBE, + utf8ToBytes: utf8ToBytes$1, + validateObject: validateObject + }); + + /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // Utilities for modular arithmetics and finite fields + // prettier-ignore + const _0n$3 = BigInt(0), _1n$3 = BigInt(1), _2n$1 = BigInt(2), _3n$1 = BigInt(3); + // prettier-ignore + const _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8); + // prettier-ignore + BigInt(9); BigInt(16); + // Calculates a modulo b + function mod(a, b) { + const result = a % b; + return result >= _0n$3 ? result : b + result; + } + /** + * Efficiently raise num to power and do modular division. + * Unsafe in some contexts: uses ladder, so can expose bigint bits. + * @example + * pow(2n, 6n, 11n) // 64n % 11n == 9n + */ + // TODO: use field version && remove + function pow(num, power, modulo) { + if (modulo <= _0n$3 || power < _0n$3) + throw new Error('Expected power/modulo > 0'); + if (modulo === _1n$3) + return _0n$3; + let res = _1n$3; + while (power > _0n$3) { + if (power & _1n$3) + res = (res * num) % modulo; + num = (num * num) % modulo; + power >>= _1n$3; + } + return res; + } + // Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4) + function pow2(x, power, modulo) { + let res = x; + while (power-- > _0n$3) { + res *= res; + res %= modulo; + } + return res; + } + // Inverses number over modulo + function invert(number, modulo) { + if (number === _0n$3 || modulo <= _0n$3) { + throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`); + } + // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/ + // Fermat's little theorem "CT-like" version inv(n) = n^(m-2) mod m is 30x slower. + let a = mod(number, modulo); + let b = modulo; + // prettier-ignore + let x = _0n$3, u = _1n$3; + while (a !== _0n$3) { + // JIT applies optimization if those two lines follow each other + const q = b / a; + const r = b % a; + const m = x - u * q; + // prettier-ignore + b = a, a = r, x = u, u = m; + } + const gcd = b; + if (gcd !== _1n$3) + throw new Error('invert: does not exist'); + return mod(x, modulo); + } + /** + * Tonelli-Shanks square root search algorithm. + * 1. https://eprint.iacr.org/2012/685.pdf (page 12) + * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks + * Will start an infinite loop if field order P is not prime. + * @param P field order + * @returns function that takes field Fp (created from P) and number n + */ + function tonelliShanks(P) { + // Legendre constant: used to calculate Legendre symbol (a | p), + // which denotes the value of a^((p-1)/2) (mod p). + // (a | p) ≡ 1 if a is a square (mod p) + // (a | p) ≡ -1 if a is not a square (mod p) + // (a | p) ≡ 0 if a ≡ 0 (mod p) + const legendreC = (P - _1n$3) / _2n$1; + let Q, S, Z; + // Step 1: By factoring out powers of 2 from p - 1, + // find q and s such that p - 1 = q*(2^s) with q odd + for (Q = P - _1n$3, S = 0; Q % _2n$1 === _0n$3; Q /= _2n$1, S++) + ; + // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq + for (Z = _2n$1; Z < P && pow(Z, legendreC, P) !== P - _1n$3; Z++) + ; + // Fast-path + if (S === 1) { + const p1div4 = (P + _1n$3) / _4n; + return function tonelliFast(Fp, n) { + const root = Fp.pow(n, p1div4); + if (!Fp.eql(Fp.sqr(root), n)) + throw new Error('Cannot find square root'); + return root; + }; + } + // Slow-path + const Q1div2 = (Q + _1n$3) / _2n$1; + return function tonelliSlow(Fp, n) { + // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1 + if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) + throw new Error('Cannot find square root'); + let r = S; + // TODO: will fail at Fp2/etc + let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b + let x = Fp.pow(n, Q1div2); // first guess at the square root + let b = Fp.pow(n, Q); // first guess at the fudge factor + while (!Fp.eql(b, Fp.ONE)) { + if (Fp.eql(b, Fp.ZERO)) + return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0) + // Find m such b^(2^m)==1 + let m = 1; + for (let t2 = Fp.sqr(b); m < r; m++) { + if (Fp.eql(t2, Fp.ONE)) + break; + t2 = Fp.sqr(t2); // t2 *= t2 + } + // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow + const ge = Fp.pow(g, _1n$3 << BigInt(r - m - 1)); // ge = 2^(r-m-1) + g = Fp.sqr(ge); // g = ge * ge + x = Fp.mul(x, ge); // x *= ge + b = Fp.mul(b, g); // b *= g + r = m; + } + return x; + }; + } + function FpSqrt(P) { + // NOTE: different algorithms can give different roots, it is up to user to decide which one they want. + // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve). + // P ≡ 3 (mod 4) + // √n = n^((P+1)/4) + if (P % _4n === _3n$1) { + // Not all roots possible! + // const ORDER = + // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn; + // const NUM = 72057594037927816n; + const p1div4 = (P + _1n$3) / _4n; + return function sqrt3mod4(Fp, n) { + const root = Fp.pow(n, p1div4); + // Throw if root**2 != n + if (!Fp.eql(Fp.sqr(root), n)) + throw new Error('Cannot find square root'); + return root; + }; + } + // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10) + if (P % _8n === _5n) { + const c1 = (P - _5n) / _8n; + return function sqrt5mod8(Fp, n) { + const n2 = Fp.mul(n, _2n$1); + const v = Fp.pow(n2, c1); + const nv = Fp.mul(n, v); + const i = Fp.mul(Fp.mul(nv, _2n$1), v); + const root = Fp.mul(nv, Fp.sub(i, Fp.ONE)); + if (!Fp.eql(Fp.sqr(root), n)) + throw new Error('Cannot find square root'); + return root; + }; + } + // Other cases: Tonelli-Shanks algorithm + return tonelliShanks(P); + } + // prettier-ignore + const FIELD_FIELDS = [ + 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr', + 'eql', 'add', 'sub', 'mul', 'pow', 'div', + 'addN', 'subN', 'mulN', 'sqrN' + ]; + function validateField(field) { + const initial = { + ORDER: 'bigint', + MASK: 'bigint', + BYTES: 'isSafeInteger', + BITS: 'isSafeInteger', + }; + const opts = FIELD_FIELDS.reduce((map, val) => { + map[val] = 'function'; + return map; + }, initial); + return validateObject(field, opts); + } + // Generic field functions + /** + * Same as `pow` but for Fp: non-constant-time. + * Unsafe in some contexts: uses ladder, so can expose bigint bits. + */ + function FpPow(f, num, power) { + // Should have same speed as pow for bigints + // TODO: benchmark! + if (power < _0n$3) + throw new Error('Expected power > 0'); + if (power === _0n$3) + return f.ONE; + if (power === _1n$3) + return num; + let p = f.ONE; + let d = num; + while (power > _0n$3) { + if (power & _1n$3) + p = f.mul(p, d); + d = f.sqr(d); + power >>= _1n$3; + } + return p; + } + /** + * Efficiently invert an array of Field elements. + * `inv(0)` will return `undefined` here: make sure to throw an error. + */ + function FpInvertBatch(f, nums) { + const tmp = new Array(nums.length); + // Walk from first to last, multiply them by each other MOD p + const lastMultiplied = nums.reduce((acc, num, i) => { + if (f.is0(num)) + return acc; + tmp[i] = acc; + return f.mul(acc, num); + }, f.ONE); + // Invert last element + const inverted = f.inv(lastMultiplied); + // Walk from last to first, multiply them by inverted each other MOD p + nums.reduceRight((acc, num, i) => { + if (f.is0(num)) + return acc; + tmp[i] = f.mul(acc, tmp[i]); + return f.mul(acc, num); + }, inverted); + return tmp; + } + // CURVE.n lengths + function nLength(n, nBitLength) { + // Bit size, byte size of CURVE.n + const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length; + const nByteLength = Math.ceil(_nBitLength / 8); + return { nBitLength: _nBitLength, nByteLength }; + } + /** + * Initializes a finite field over prime. **Non-primes are not supported.** + * Do not init in loop: slow. Very fragile: always run a benchmark on a change. + * Major performance optimizations: + * * a) denormalized operations like mulN instead of mul + * * b) same object shape: never add or remove keys + * * c) Object.freeze + * @param ORDER prime positive bigint + * @param bitLen how many bits the field consumes + * @param isLE (def: false) if encoding / decoding should be in little-endian + * @param redef optional faster redefinitions of sqrt and other methods + */ + function Field(ORDER, bitLen, isLE = false, redef = {}) { + if (ORDER <= _0n$3) + throw new Error(`Expected Field ORDER > 0, got ${ORDER}`); + const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen); + if (BYTES > 2048) + throw new Error('Field lengths over 2048 bytes are not supported'); + const sqrtP = FpSqrt(ORDER); + const f = Object.freeze({ + ORDER, + BITS, + BYTES, + MASK: bitMask(BITS), + ZERO: _0n$3, + ONE: _1n$3, + create: (num) => mod(num, ORDER), + isValid: (num) => { + if (typeof num !== 'bigint') + throw new Error(`Invalid field element: expected bigint, got ${typeof num}`); + return _0n$3 <= num && num < ORDER; // 0 is valid element, but it's not invertible + }, + is0: (num) => num === _0n$3, + isOdd: (num) => (num & _1n$3) === _1n$3, + neg: (num) => mod(-num, ORDER), + eql: (lhs, rhs) => lhs === rhs, + sqr: (num) => mod(num * num, ORDER), + add: (lhs, rhs) => mod(lhs + rhs, ORDER), + sub: (lhs, rhs) => mod(lhs - rhs, ORDER), + mul: (lhs, rhs) => mod(lhs * rhs, ORDER), + pow: (num, power) => FpPow(f, num, power), + div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER), + // Same as above, but doesn't normalize + sqrN: (num) => num * num, + addN: (lhs, rhs) => lhs + rhs, + subN: (lhs, rhs) => lhs - rhs, + mulN: (lhs, rhs) => lhs * rhs, + inv: (num) => invert(num, ORDER), + sqrt: redef.sqrt || ((n) => sqrtP(f, n)), + invertBatch: (lst) => FpInvertBatch(f, lst), + // TODO: do we really need constant cmov? + // We don't have const-time bigints anyway, so probably will be not very useful + cmov: (a, b, c) => (c ? b : a), + toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)), + fromBytes: (bytes) => { + if (bytes.length !== BYTES) + throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`); + return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes); + }, + }); + return Object.freeze(f); + } + /** + * Returns total number of bytes consumed by the field element. + * For example, 32 bytes for usual 256-bit weierstrass curve. + * @param fieldOrder number of field elements, usually CURVE.n + * @returns byte length of field + */ + function getFieldBytesLength(fieldOrder) { + if (typeof fieldOrder !== 'bigint') + throw new Error('field order must be bigint'); + const bitLength = fieldOrder.toString(2).length; + return Math.ceil(bitLength / 8); + } + /** + * Returns minimal amount of bytes that can be safely reduced + * by field order. + * Should be 2^-128 for 128-bit curve such as P256. + * @param fieldOrder number of field elements, usually CURVE.n + * @returns byte length of target hash + */ + function getMinHashLength(fieldOrder) { + const length = getFieldBytesLength(fieldOrder); + return length + Math.ceil(length / 2); + } + /** + * "Constant-time" private key generation utility. + * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF + * and convert them into private scalar, with the modulo bias being negligible. + * Needs at least 48 bytes of input for 32-byte private key. + * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/ + * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final + * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5 + * @param hash hash output from SHA3 or a similar function + * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n) + * @param isLE interpret hash bytes as LE num + * @returns valid private scalar + */ + function mapHashToField(key, fieldOrder, isLE = false) { + const len = key.length; + const fieldLen = getFieldBytesLength(fieldOrder); + const minLen = getMinHashLength(fieldOrder); + // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings. + if (len < 16 || len < minLen || len > 1024) + throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`); + const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key); + // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0 + const reduced = mod(num, fieldOrder - _1n$3) + _1n$3; + return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen); + } + + /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // Abelian group utilities + const _0n$2 = BigInt(0); + const _1n$2 = BigInt(1); + // Elliptic curve multiplication of Point by scalar. Fragile. + // Scalars should always be less than curve order: this should be checked inside of a curve itself. + // Creates precomputation tables for fast multiplication: + // - private scalar is split by fixed size windows of W bits + // - every window point is collected from window's table & added to accumulator + // - since windows are different, same point inside tables won't be accessed more than once per calc + // - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar) + // - +1 window is neccessary for wNAF + // - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication + // TODO: Research returning 2d JS array of windows, instead of a single window. This would allow + // windows to be in different memory locations + function wNAF(c, bits) { + const constTimeNegate = (condition, item) => { + const neg = item.negate(); + return condition ? neg : item; + }; + const opts = (W) => { + const windows = Math.ceil(bits / W) + 1; // +1, because + const windowSize = 2 ** (W - 1); // -1 because we skip zero + return { windows, windowSize }; + }; + return { + constTimeNegate, + // non-const time multiplication ladder + unsafeLadder(elm, n) { + let p = c.ZERO; + let d = elm; + while (n > _0n$2) { + if (n & _1n$2) + p = p.add(d); + d = d.double(); + n >>= _1n$2; + } + return p; + }, + /** + * Creates a wNAF precomputation window. Used for caching. + * Default window size is set by `utils.precompute()` and is equal to 8. + * Number of precomputed points depends on the curve size: + * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where: + * - 𝑊 is the window size + * - 𝑛 is the bitlength of the curve order. + * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224. + * @returns precomputed point tables flattened to a single array + */ + precomputeWindow(elm, W) { + const { windows, windowSize } = opts(W); + const points = []; + let p = elm; + let base = p; + for (let window = 0; window < windows; window++) { + base = p; + points.push(base); + // =1, because we skip zero + for (let i = 1; i < windowSize; i++) { + base = base.add(p); + points.push(base); + } + p = base.double(); + } + return points; + }, + /** + * Implements ec multiplication using precomputed tables and w-ary non-adjacent form. + * @param W window size + * @param precomputes precomputed tables + * @param n scalar (we don't check here, but should be less than curve order) + * @returns real and fake (for const-time) points + */ + wNAF(W, precomputes, n) { + // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise + // But need to carefully remove other checks before wNAF. ORDER == bits here + const { windows, windowSize } = opts(W); + let p = c.ZERO; + let f = c.BASE; + const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc. + const maxNumber = 2 ** W; + const shiftBy = BigInt(W); + for (let window = 0; window < windows; window++) { + const offset = window * windowSize; + // Extract W bits. + let wbits = Number(n & mask); + // Shift number by W bits. + n >>= shiftBy; + // If the bits are bigger than max size, we'll split those. + // +224 => 256 - 32 + if (wbits > windowSize) { + wbits -= maxNumber; + n += _1n$2; + } + // This code was first written with assumption that 'f' and 'p' will never be infinity point: + // since each addition is multiplied by 2 ** W, it cannot cancel each other. However, + // there is negate now: it is possible that negated element from low value + // would be the same as high element, which will create carry into next window. + // It's not obvious how this can fail, but still worth investigating later. + // Check if we're onto Zero point. + // Add random point inside current window to f. + const offset1 = offset; + const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero + const cond1 = window % 2 !== 0; + const cond2 = wbits < 0; + if (wbits === 0) { + // The most important part for const-time getPublicKey + f = f.add(constTimeNegate(cond1, precomputes[offset1])); + } + else { + p = p.add(constTimeNegate(cond2, precomputes[offset2])); + } + } + // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ() + // Even if the variable is still unused, there are some checks which will + // throw an exception, so compiler needs to prove they won't happen, which is hard. + // At this point there is a way to F be infinity-point even if p is not, + // which makes it less const-time: around 1 bigint multiply. + return { p, f }; + }, + wNAFCached(P, precomputesMap, n, transform) { + // @ts-ignore + const W = P._WINDOW_SIZE || 1; + // Calculate precomputes on a first run, reuse them after + let comp = precomputesMap.get(P); + if (!comp) { + comp = this.precomputeWindow(P, W); + if (W !== 1) { + precomputesMap.set(P, transform(comp)); + } + } + return this.wNAF(W, comp, n); + }, + }; + } + function validateBasic(curve) { + validateField(curve.Fp); + validateObject(curve, { + n: 'bigint', + h: 'bigint', + Gx: 'field', + Gy: 'field', + }, { + nBitLength: 'isSafeInteger', + nByteLength: 'isSafeInteger', + }); + // Set defaults + return Object.freeze({ + ...nLength(curve.n, curve.nBitLength), + ...curve, + ...{ p: curve.Fp.ORDER }, + }); + } + + /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // Short Weierstrass curve. The formula is: y² = x³ + ax + b + function validatePointOpts(curve) { + const opts = validateBasic(curve); + validateObject(opts, { + a: 'field', + b: 'field', + }, { + allowedPrivateKeyLengths: 'array', + wrapPrivateKey: 'boolean', + isTorsionFree: 'function', + clearCofactor: 'function', + allowInfinityPoint: 'boolean', + fromBytes: 'function', + toBytes: 'function', + }); + const { endo, Fp, a } = opts; + if (endo) { + if (!Fp.eql(a, Fp.ZERO)) { + throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0'); + } + if (typeof endo !== 'object' || + typeof endo.beta !== 'bigint' || + typeof endo.splitScalar !== 'function') { + throw new Error('Expected endomorphism with beta: bigint and splitScalar: function'); + } + } + return Object.freeze({ ...opts }); + } + // ASN.1 DER encoding utilities + const { bytesToNumberBE: b2n, hexToBytes: h2b } = ut; + const DER = { + // asn.1 DER encoding utils + Err: class DERErr extends Error { + constructor(m = '') { + super(m); + } + }, + _parseInt(data) { + const { Err: E } = DER; + if (data.length < 2 || data[0] !== 0x02) + throw new E('Invalid signature integer tag'); + const len = data[1]; + const res = data.subarray(2, len + 2); + if (!len || res.length !== len) + throw new E('Invalid signature integer: wrong length'); + // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag, + // since we always use positive integers here. It must always be empty: + // - add zero byte if exists + // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding) + if (res[0] & 0b10000000) + throw new E('Invalid signature integer: negative'); + if (res[0] === 0x00 && !(res[1] & 0b10000000)) + throw new E('Invalid signature integer: unnecessary leading zero'); + return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left + }, + toSig(hex) { + // parse DER signature + const { Err: E } = DER; + const data = typeof hex === 'string' ? h2b(hex) : hex; + if (!(data instanceof Uint8Array)) + throw new Error('ui8a expected'); + let l = data.length; + if (l < 2 || data[0] != 0x30) + throw new E('Invalid signature tag'); + if (data[1] !== l - 2) + throw new E('Invalid signature: incorrect length'); + const { d: r, l: sBytes } = DER._parseInt(data.subarray(2)); + const { d: s, l: rBytesLeft } = DER._parseInt(sBytes); + if (rBytesLeft.length) + throw new E('Invalid signature: left bytes after parsing'); + return { r, s }; + }, + hexFromSig(sig) { + // Add leading zero if first byte has negative bit enabled. More details in '_parseInt' + const slice = (s) => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s); + const h = (num) => { + const hex = num.toString(16); + return hex.length & 1 ? `0${hex}` : hex; + }; + const s = slice(h(sig.s)); + const r = slice(h(sig.r)); + const shl = s.length / 2; + const rhl = r.length / 2; + const sl = h(shl); + const rl = h(rhl); + return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`; + }, + }; + // Be friendly to bad ECMAScript parsers by not using bigint literals + // prettier-ignore + const _0n$1 = BigInt(0), _1n$1 = BigInt(1); BigInt(2); const _3n = BigInt(3); BigInt(4); + function weierstrassPoints(opts) { + const CURVE = validatePointOpts(opts); + const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ + const toBytes = CURVE.toBytes || + ((_c, point, _isCompressed) => { + const a = point.toAffine(); + return concatBytes$1(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y)); + }); + const fromBytes = CURVE.fromBytes || + ((bytes) => { + // const head = bytes[0]; + const tail = bytes.subarray(1); + // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported'); + const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES)); + const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES)); + return { x, y }; + }); + /** + * y² = x³ + ax + b: Short weierstrass curve formula + * @returns y² + */ + function weierstrassEquation(x) { + const { a, b } = CURVE; + const x2 = Fp.sqr(x); // x * x + const x3 = Fp.mul(x2, x); // x2 * x + return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b + } + // Validate whether the passed curve params are valid. + // We check if curve equation works for generator point. + // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381. + // ProjectivePoint class has not been initialized yet. + if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx))) + throw new Error('bad generator point: equation left != right'); + // Valid group elements reside in range 1..n-1 + function isWithinCurveOrder(num) { + return typeof num === 'bigint' && _0n$1 < num && num < CURVE.n; + } + function assertGE(num) { + if (!isWithinCurveOrder(num)) + throw new Error('Expected valid bigint: 0 < bigint < curve.n'); + } + // Validates if priv key is valid and converts it to bigint. + // Supports options allowedPrivateKeyLengths and wrapPrivateKey. + function normPrivateKeyToScalar(key) { + const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE; + if (lengths && typeof key !== 'bigint') { + if (key instanceof Uint8Array) + key = bytesToHex$1(key); + // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes + if (typeof key !== 'string' || !lengths.includes(key.length)) + throw new Error('Invalid key'); + key = key.padStart(nByteLength * 2, '0'); + } + let num; + try { + num = + typeof key === 'bigint' + ? key + : bytesToNumberBE(ensureBytes('private key', key, nByteLength)); + } + catch (error) { + throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`); + } + if (wrapPrivateKey) + num = mod(num, n); // disabled by default, enabled for BLS + assertGE(num); // num in range [1..N-1] + return num; + } + const pointPrecomputes = new Map(); + function assertPrjPoint(other) { + if (!(other instanceof Point)) + throw new Error('ProjectivePoint expected'); + } + /** + * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z) + * Default Point works in 2d / affine coordinates: (x, y) + * We're doing calculations in projective, because its operations don't require costly inversion. + */ + class Point { + constructor(px, py, pz) { + this.px = px; + this.py = py; + this.pz = pz; + if (px == null || !Fp.isValid(px)) + throw new Error('x required'); + if (py == null || !Fp.isValid(py)) + throw new Error('y required'); + if (pz == null || !Fp.isValid(pz)) + throw new Error('z required'); + } + // Does not validate if the point is on-curve. + // Use fromHex instead, or call assertValidity() later. + static fromAffine(p) { + const { x, y } = p || {}; + if (!p || !Fp.isValid(x) || !Fp.isValid(y)) + throw new Error('invalid affine point'); + if (p instanceof Point) + throw new Error('projective point not allowed'); + const is0 = (i) => Fp.eql(i, Fp.ZERO); + // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0) + if (is0(x) && is0(y)) + return Point.ZERO; + return new Point(x, y, Fp.ONE); + } + get x() { + return this.toAffine().x; + } + get y() { + return this.toAffine().y; + } + /** + * Takes a bunch of Projective Points but executes only one + * inversion on all of them. Inversion is very slow operation, + * so this improves performance massively. + * Optimization: converts a list of projective points to a list of identical points with Z=1. + */ + static normalizeZ(points) { + const toInv = Fp.invertBatch(points.map((p) => p.pz)); + return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine); + } + /** + * Converts hash string or Uint8Array to Point. + * @param hex short/long ECDSA hex + */ + static fromHex(hex) { + const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex))); + P.assertValidity(); + return P; + } + // Multiplies generator point by privateKey. + static fromPrivateKey(privateKey) { + return Point.BASE.multiply(normPrivateKeyToScalar(privateKey)); + } + // "Private method", don't use it directly + _setWindowSize(windowSize) { + this._WINDOW_SIZE = windowSize; + pointPrecomputes.delete(this); + } + // A point on curve is valid if it conforms to equation. + assertValidity() { + if (this.is0()) { + // (0, 1, 0) aka ZERO is invalid in most contexts. + // In BLS, ZERO can be serialized, so we allow it. + // (0, 0, 0) is wrong representation of ZERO and is always invalid. + if (CURVE.allowInfinityPoint && !Fp.is0(this.py)) + return; + throw new Error('bad point: ZERO'); + } + // Some 3rd-party test vectors require different wording between here & `fromCompressedHex` + const { x, y } = this.toAffine(); + // Check if x, y are valid field elements + if (!Fp.isValid(x) || !Fp.isValid(y)) + throw new Error('bad point: x or y not FE'); + const left = Fp.sqr(y); // y² + const right = weierstrassEquation(x); // x³ + ax + b + if (!Fp.eql(left, right)) + throw new Error('bad point: equation left != right'); + if (!this.isTorsionFree()) + throw new Error('bad point: not in prime-order subgroup'); + } + hasEvenY() { + const { y } = this.toAffine(); + if (Fp.isOdd) + return !Fp.isOdd(y); + throw new Error("Field doesn't support isOdd"); + } + /** + * Compare one point to another. + */ + equals(other) { + assertPrjPoint(other); + const { px: X1, py: Y1, pz: Z1 } = this; + const { px: X2, py: Y2, pz: Z2 } = other; + const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1)); + const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1)); + return U1 && U2; + } + /** + * Flips point to one corresponding to (x, -y) in Affine coordinates. + */ + negate() { + return new Point(this.px, Fp.neg(this.py), this.pz); + } + // Renes-Costello-Batina exception-free doubling formula. + // There is 30% faster Jacobian formula, but it is not complete. + // https://eprint.iacr.org/2015/1060, algorithm 3 + // Cost: 8M + 3S + 3*a + 2*b3 + 15add. + double() { + const { a, b } = CURVE; + const b3 = Fp.mul(b, _3n); + const { px: X1, py: Y1, pz: Z1 } = this; + let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore + let t0 = Fp.mul(X1, X1); // step 1 + let t1 = Fp.mul(Y1, Y1); + let t2 = Fp.mul(Z1, Z1); + let t3 = Fp.mul(X1, Y1); + t3 = Fp.add(t3, t3); // step 5 + Z3 = Fp.mul(X1, Z1); + Z3 = Fp.add(Z3, Z3); + X3 = Fp.mul(a, Z3); + Y3 = Fp.mul(b3, t2); + Y3 = Fp.add(X3, Y3); // step 10 + X3 = Fp.sub(t1, Y3); + Y3 = Fp.add(t1, Y3); + Y3 = Fp.mul(X3, Y3); + X3 = Fp.mul(t3, X3); + Z3 = Fp.mul(b3, Z3); // step 15 + t2 = Fp.mul(a, t2); + t3 = Fp.sub(t0, t2); + t3 = Fp.mul(a, t3); + t3 = Fp.add(t3, Z3); + Z3 = Fp.add(t0, t0); // step 20 + t0 = Fp.add(Z3, t0); + t0 = Fp.add(t0, t2); + t0 = Fp.mul(t0, t3); + Y3 = Fp.add(Y3, t0); + t2 = Fp.mul(Y1, Z1); // step 25 + t2 = Fp.add(t2, t2); + t0 = Fp.mul(t2, t3); + X3 = Fp.sub(X3, t0); + Z3 = Fp.mul(t2, t1); + Z3 = Fp.add(Z3, Z3); // step 30 + Z3 = Fp.add(Z3, Z3); + return new Point(X3, Y3, Z3); + } + // Renes-Costello-Batina exception-free addition formula. + // There is 30% faster Jacobian formula, but it is not complete. + // https://eprint.iacr.org/2015/1060, algorithm 1 + // Cost: 12M + 0S + 3*a + 3*b3 + 23add. + add(other) { + assertPrjPoint(other); + const { px: X1, py: Y1, pz: Z1 } = this; + const { px: X2, py: Y2, pz: Z2 } = other; + let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore + const a = CURVE.a; + const b3 = Fp.mul(CURVE.b, _3n); + let t0 = Fp.mul(X1, X2); // step 1 + let t1 = Fp.mul(Y1, Y2); + let t2 = Fp.mul(Z1, Z2); + let t3 = Fp.add(X1, Y1); + let t4 = Fp.add(X2, Y2); // step 5 + t3 = Fp.mul(t3, t4); + t4 = Fp.add(t0, t1); + t3 = Fp.sub(t3, t4); + t4 = Fp.add(X1, Z1); + let t5 = Fp.add(X2, Z2); // step 10 + t4 = Fp.mul(t4, t5); + t5 = Fp.add(t0, t2); + t4 = Fp.sub(t4, t5); + t5 = Fp.add(Y1, Z1); + X3 = Fp.add(Y2, Z2); // step 15 + t5 = Fp.mul(t5, X3); + X3 = Fp.add(t1, t2); + t5 = Fp.sub(t5, X3); + Z3 = Fp.mul(a, t4); + X3 = Fp.mul(b3, t2); // step 20 + Z3 = Fp.add(X3, Z3); + X3 = Fp.sub(t1, Z3); + Z3 = Fp.add(t1, Z3); + Y3 = Fp.mul(X3, Z3); + t1 = Fp.add(t0, t0); // step 25 + t1 = Fp.add(t1, t0); + t2 = Fp.mul(a, t2); + t4 = Fp.mul(b3, t4); + t1 = Fp.add(t1, t2); + t2 = Fp.sub(t0, t2); // step 30 + t2 = Fp.mul(a, t2); + t4 = Fp.add(t4, t2); + t0 = Fp.mul(t1, t4); + Y3 = Fp.add(Y3, t0); + t0 = Fp.mul(t5, t4); // step 35 + X3 = Fp.mul(t3, X3); + X3 = Fp.sub(X3, t0); + t0 = Fp.mul(t3, t1); + Z3 = Fp.mul(t5, Z3); + Z3 = Fp.add(Z3, t0); // step 40 + return new Point(X3, Y3, Z3); + } + subtract(other) { + return this.add(other.negate()); + } + is0() { + return this.equals(Point.ZERO); + } + wNAF(n) { + return wnaf.wNAFCached(this, pointPrecomputes, n, (comp) => { + const toInv = Fp.invertBatch(comp.map((p) => p.pz)); + return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine); + }); + } + /** + * Non-constant-time multiplication. Uses double-and-add algorithm. + * It's faster, but should only be used when you don't care about + * an exposed private key e.g. sig verification, which works over *public* keys. + */ + multiplyUnsafe(n) { + const I = Point.ZERO; + if (n === _0n$1) + return I; + assertGE(n); // Will throw on 0 + if (n === _1n$1) + return this; + const { endo } = CURVE; + if (!endo) + return wnaf.unsafeLadder(this, n); + // Apply endomorphism + let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n); + let k1p = I; + let k2p = I; + let d = this; + while (k1 > _0n$1 || k2 > _0n$1) { + if (k1 & _1n$1) + k1p = k1p.add(d); + if (k2 & _1n$1) + k2p = k2p.add(d); + d = d.double(); + k1 >>= _1n$1; + k2 >>= _1n$1; + } + if (k1neg) + k1p = k1p.negate(); + if (k2neg) + k2p = k2p.negate(); + k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz); + return k1p.add(k2p); + } + /** + * Constant time multiplication. + * Uses wNAF method. Windowed method may be 10% faster, + * but takes 2x longer to generate and consumes 2x memory. + * Uses precomputes when available. + * Uses endomorphism for Koblitz curves. + * @param scalar by which the point would be multiplied + * @returns New point + */ + multiply(scalar) { + assertGE(scalar); + let n = scalar; + let point, fake; // Fake point is used to const-time mult + const { endo } = CURVE; + if (endo) { + const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n); + let { p: k1p, f: f1p } = this.wNAF(k1); + let { p: k2p, f: f2p } = this.wNAF(k2); + k1p = wnaf.constTimeNegate(k1neg, k1p); + k2p = wnaf.constTimeNegate(k2neg, k2p); + k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz); + point = k1p.add(k2p); + fake = f1p.add(f2p); + } + else { + const { p, f } = this.wNAF(n); + point = p; + fake = f; + } + // Normalize `z` for both points, but return only real one + return Point.normalizeZ([point, fake])[0]; + } + /** + * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly. + * Not using Strauss-Shamir trick: precomputation tables are faster. + * The trick could be useful if both P and Q are not G (not in our case). + * @returns non-zero affine point + */ + multiplyAndAddUnsafe(Q, a, b) { + const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes + const mul = (P, a // Select faster multiply() method + ) => (a === _0n$1 || a === _1n$1 || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a)); + const sum = mul(this, a).add(mul(Q, b)); + return sum.is0() ? undefined : sum; + } + // Converts Projective point to affine (x, y) coordinates. + // Can accept precomputed Z^-1 - for example, from invertBatch. + // (x, y, z) ∋ (x=x/z, y=y/z) + toAffine(iz) { + const { px: x, py: y, pz: z } = this; + const is0 = this.is0(); + // If invZ was 0, we return zero point. However we still want to execute + // all operations, so we replace invZ with a random number, 1. + if (iz == null) + iz = is0 ? Fp.ONE : Fp.inv(z); + const ax = Fp.mul(x, iz); + const ay = Fp.mul(y, iz); + const zz = Fp.mul(z, iz); + if (is0) + return { x: Fp.ZERO, y: Fp.ZERO }; + if (!Fp.eql(zz, Fp.ONE)) + throw new Error('invZ was invalid'); + return { x: ax, y: ay }; + } + isTorsionFree() { + const { h: cofactor, isTorsionFree } = CURVE; + if (cofactor === _1n$1) + return true; // No subgroups, always torsion-free + if (isTorsionFree) + return isTorsionFree(Point, this); + throw new Error('isTorsionFree() has not been declared for the elliptic curve'); + } + clearCofactor() { + const { h: cofactor, clearCofactor } = CURVE; + if (cofactor === _1n$1) + return this; // Fast-path + if (clearCofactor) + return clearCofactor(Point, this); + return this.multiplyUnsafe(CURVE.h); + } + toRawBytes(isCompressed = true) { + this.assertValidity(); + return toBytes(Point, this, isCompressed); + } + toHex(isCompressed = true) { + return bytesToHex$1(this.toRawBytes(isCompressed)); + } + } + Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE); + Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); + const _bits = CURVE.nBitLength; + const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits); + // Validate if generator point is on curve + return { + CURVE, + ProjectivePoint: Point, + normPrivateKeyToScalar, + weierstrassEquation, + isWithinCurveOrder, + }; + } + function validateOpts(curve) { + const opts = validateBasic(curve); + validateObject(opts, { + hash: 'hash', + hmac: 'function', + randomBytes: 'function', + }, { + bits2int: 'function', + bits2int_modN: 'function', + lowS: 'boolean', + }); + return Object.freeze({ lowS: true, ...opts }); + } + function weierstrass(curveDef) { + const CURVE = validateOpts(curveDef); + const { Fp, n: CURVE_ORDER } = CURVE; + const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32 + const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32 + function isValidFieldElement(num) { + return _0n$1 < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE + } + function modN(a) { + return mod(a, CURVE_ORDER); + } + function invN(a) { + return invert(a, CURVE_ORDER); + } + const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({ + ...CURVE, + toBytes(_c, point, isCompressed) { + const a = point.toAffine(); + const x = Fp.toBytes(a.x); + const cat = concatBytes$1; + if (isCompressed) { + return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x); + } + else { + return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y)); + } + }, + fromBytes(bytes) { + const len = bytes.length; + const head = bytes[0]; + const tail = bytes.subarray(1); + // this.assertValidity() is done inside of fromHex + if (len === compressedLen && (head === 0x02 || head === 0x03)) { + const x = bytesToNumberBE(tail); + if (!isValidFieldElement(x)) + throw new Error('Point is not on curve'); + const y2 = weierstrassEquation(x); // y² = x³ + ax + b + let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4 + const isYOdd = (y & _1n$1) === _1n$1; + // ECDSA + const isHeadOdd = (head & 1) === 1; + if (isHeadOdd !== isYOdd) + y = Fp.neg(y); + return { x, y }; + } + else if (len === uncompressedLen && head === 0x04) { + const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES)); + const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES)); + return { x, y }; + } + else { + throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`); + } + }, + }); + const numToNByteStr = (num) => bytesToHex$1(numberToBytesBE(num, CURVE.nByteLength)); + function isBiggerThanHalfOrder(number) { + const HALF = CURVE_ORDER >> _1n$1; + return number > HALF; + } + function normalizeS(s) { + return isBiggerThanHalfOrder(s) ? modN(-s) : s; + } + // slice bytes num + const slcNum = (b, from, to) => bytesToNumberBE(b.slice(from, to)); + /** + * ECDSA signature with its (r, s) properties. Supports DER & compact representations. + */ + class Signature { + constructor(r, s, recovery) { + this.r = r; + this.s = s; + this.recovery = recovery; + this.assertValidity(); + } + // pair (bytes of r, bytes of s) + static fromCompact(hex) { + const l = CURVE.nByteLength; + hex = ensureBytes('compactSignature', hex, l * 2); + return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l)); + } + // DER encoded ECDSA signature + // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script + static fromDER(hex) { + const { r, s } = DER.toSig(ensureBytes('DER', hex)); + return new Signature(r, s); + } + assertValidity() { + // can use assertGE here + if (!isWithinCurveOrder(this.r)) + throw new Error('r must be 0 < r < CURVE.n'); + if (!isWithinCurveOrder(this.s)) + throw new Error('s must be 0 < s < CURVE.n'); + } + addRecoveryBit(recovery) { + return new Signature(this.r, this.s, recovery); + } + recoverPublicKey(msgHash) { + const { r, s, recovery: rec } = this; + const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash + if (rec == null || ![0, 1, 2, 3].includes(rec)) + throw new Error('recovery id invalid'); + const radj = rec === 2 || rec === 3 ? r + CURVE.n : r; + if (radj >= Fp.ORDER) + throw new Error('recovery id 2 or 3 invalid'); + const prefix = (rec & 1) === 0 ? '02' : '03'; + const R = Point.fromHex(prefix + numToNByteStr(radj)); + const ir = invN(radj); // r^-1 + const u1 = modN(-h * ir); // -hr^-1 + const u2 = modN(s * ir); // sr^-1 + const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1) + if (!Q) + throw new Error('point at infinify'); // unsafe is fine: no priv data leaked + Q.assertValidity(); + return Q; + } + // Signatures should be low-s, to prevent malleability. + hasHighS() { + return isBiggerThanHalfOrder(this.s); + } + normalizeS() { + return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this; + } + // DER-encoded + toDERRawBytes() { + return hexToBytes$1(this.toDERHex()); + } + toDERHex() { + return DER.hexFromSig({ r: this.r, s: this.s }); + } + // padded bytes of r, then padded bytes of s + toCompactRawBytes() { + return hexToBytes$1(this.toCompactHex()); + } + toCompactHex() { + return numToNByteStr(this.r) + numToNByteStr(this.s); + } + } + const utils = { + isValidPrivateKey(privateKey) { + try { + normPrivateKeyToScalar(privateKey); + return true; + } + catch (error) { + return false; + } + }, + normPrivateKeyToScalar: normPrivateKeyToScalar, + /** + * Produces cryptographically secure private key from random of size + * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible. + */ + randomPrivateKey: () => { + const length = getMinHashLength(CURVE.n); + return mapHashToField(CURVE.randomBytes(length), CURVE.n); + }, + /** + * Creates precompute table for an arbitrary EC point. Makes point "cached". + * Allows to massively speed-up `point.multiply(scalar)`. + * @returns cached point + * @example + * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey)); + * fast.multiply(privKey); // much faster ECDH now + */ + precompute(windowSize = 8, point = Point.BASE) { + point._setWindowSize(windowSize); + point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here + return point; + }, + }; + /** + * Computes public key for a private key. Checks for validity of the private key. + * @param privateKey private key + * @param isCompressed whether to return compact (default), or full key + * @returns Public key, full when isCompressed=false; short when isCompressed=true + */ + function getPublicKey(privateKey, isCompressed = true) { + return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed); + } + /** + * Quick and dirty check for item being public key. Does not validate hex, or being on-curve. + */ + function isProbPub(item) { + const arr = item instanceof Uint8Array; + const str = typeof item === 'string'; + const len = (arr || str) && item.length; + if (arr) + return len === compressedLen || len === uncompressedLen; + if (str) + return len === 2 * compressedLen || len === 2 * uncompressedLen; + if (item instanceof Point) + return true; + return false; + } + /** + * ECDH (Elliptic Curve Diffie Hellman). + * Computes shared public key from private key and public key. + * Checks: 1) private key validity 2) shared key is on-curve. + * Does NOT hash the result. + * @param privateA private key + * @param publicB different public key + * @param isCompressed whether to return compact (default), or full key + * @returns shared public key + */ + function getSharedSecret(privateA, publicB, isCompressed = true) { + if (isProbPub(privateA)) + throw new Error('first arg must be private key'); + if (!isProbPub(publicB)) + throw new Error('second arg must be public key'); + const b = Point.fromHex(publicB); // check for being on-curve + return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed); + } + // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets. + // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int. + // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same. + // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors + const bits2int = CURVE.bits2int || + function (bytes) { + // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m) + // for some cases, since bytes.length * 8 is not actual bitLength. + const num = bytesToNumberBE(bytes); // check for == u8 done here + const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits + return delta > 0 ? num >> BigInt(delta) : num; + }; + const bits2int_modN = CURVE.bits2int_modN || + function (bytes) { + return modN(bits2int(bytes)); // can't use bytesToNumberBE here + }; + // NOTE: pads output with zero as per spec + const ORDER_MASK = bitMask(CURVE.nBitLength); + /** + * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`. + */ + function int2octets(num) { + if (typeof num !== 'bigint') + throw new Error('bigint expected'); + if (!(_0n$1 <= num && num < ORDER_MASK)) + throw new Error(`bigint expected < 2^${CURVE.nBitLength}`); + // works with order, can have different size than numToField! + return numberToBytesBE(num, CURVE.nByteLength); + } + // Steps A, D of RFC6979 3.2 + // Creates RFC6979 seed; converts msg/privKey to numbers. + // Used only in sign, not in verify. + // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521. + // Also it can be bigger for P224 + SHA256 + function prepSig(msgHash, privateKey, opts = defaultSigOpts) { + if (['recovered', 'canonical'].some((k) => k in opts)) + throw new Error('sign() legacy options not supported'); + const { hash, randomBytes } = CURVE; + let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default + if (lowS == null) + lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash + msgHash = ensureBytes('msgHash', msgHash); + if (prehash) + msgHash = ensureBytes('prehashed msgHash', hash(msgHash)); + // We can't later call bits2octets, since nested bits2int is broken for curves + // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call. + // const bits2octets = (bits) => int2octets(bits2int_modN(bits)) + const h1int = bits2int_modN(msgHash); + const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint + const seedArgs = [int2octets(d), int2octets(h1int)]; + // extraEntropy. RFC6979 3.6: additional k' (optional). + if (ent != null) { + // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k') + const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is + seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes + } + const seed = concatBytes$1(...seedArgs); // Step D of RFC6979 3.2 + const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash! + // Converts signature params into point w r/s, checks result for validity. + function k2sig(kBytes) { + // RFC 6979 Section 3.2, step 3: k = bits2int(T) + const k = bits2int(kBytes); // Cannot use fields methods, since it is group element + if (!isWithinCurveOrder(k)) + return; // Important: all mod() calls here must be done over N + const ik = invN(k); // k^-1 mod n + const q = Point.BASE.multiply(k).toAffine(); // q = Gk + const r = modN(q.x); // r = q.x mod n + if (r === _0n$1) + return; + // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to + // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it: + // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT + const s = modN(ik * modN(m + r * d)); // Not using blinding here + if (s === _0n$1) + return; + let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n$1); // recovery bit (2 or 3, when q.x > n) + let normS = s; + if (lowS && isBiggerThanHalfOrder(s)) { + normS = normalizeS(s); // if lowS was passed, ensure s is always + recovery ^= 1; // // in the bottom half of N + } + return new Signature(r, normS, recovery); // use normS, not s + } + return { seed, k2sig }; + } + const defaultSigOpts = { lowS: CURVE.lowS, prehash: false }; + const defaultVerOpts = { lowS: CURVE.lowS, prehash: false }; + /** + * Signs message hash with a private key. + * ``` + * sign(m, d, k) where + * (x, y) = G × k + * r = x mod n + * s = (m + dr)/k mod n + * ``` + * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`. + * @param privKey private key + * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg. + * @returns signature with recovery param + */ + function sign(msgHash, privKey, opts = defaultSigOpts) { + const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2. + const C = CURVE; + const drbg = createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac); + return drbg(seed, k2sig); // Steps B, C, D, E, F, G + } + // Enable precomputes. Slows down first publicKey computation by 20ms. + Point.BASE._setWindowSize(8); + // utils.precompute(8, ProjectivePoint.BASE) + /** + * Verifies a signature against message hash and public key. + * Rejects lowS signatures by default: to override, + * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf: + * + * ``` + * verify(r, s, h, P) where + * U1 = hs^-1 mod n + * U2 = rs^-1 mod n + * R = U1⋅G - U2⋅P + * mod(R.x, n) == r + * ``` + */ + function verify(signature, msgHash, publicKey, opts = defaultVerOpts) { + const sg = signature; + msgHash = ensureBytes('msgHash', msgHash); + publicKey = ensureBytes('publicKey', publicKey); + if ('strict' in opts) + throw new Error('options.strict was renamed to lowS'); + const { lowS, prehash } = opts; + let _sig = undefined; + let P; + try { + if (typeof sg === 'string' || sg instanceof Uint8Array) { + // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length). + // Since DER can also be 2*nByteLength bytes, we check for it first. + try { + _sig = Signature.fromDER(sg); + } + catch (derError) { + if (!(derError instanceof DER.Err)) + throw derError; + _sig = Signature.fromCompact(sg); + } + } + else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') { + const { r, s } = sg; + _sig = new Signature(r, s); + } + else { + throw new Error('PARSE'); + } + P = Point.fromHex(publicKey); + } + catch (error) { + if (error.message === 'PARSE') + throw new Error(`signature must be Signature instance, Uint8Array or hex string`); + return false; + } + if (lowS && _sig.hasHighS()) + return false; + if (prehash) + msgHash = CURVE.hash(msgHash); + const { r, s } = _sig; + const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element + const is = invN(s); // s^-1 + const u1 = modN(h * is); // u1 = hs^-1 mod n + const u2 = modN(r * is); // u2 = rs^-1 mod n + const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P + if (!R) + return false; + const v = modN(R.x); + return v === r; + } + return { + CURVE, + getPublicKey, + getSharedSecret, + sign, + verify, + ProjectivePoint: Point, + Signature, + utils, + }; + } + + // HMAC (RFC 2104) + let HMAC$1 = class HMAC extends Hash$1 { + constructor(hash, _key) { + super(); + this.finished = false; + this.destroyed = false; + hash$1(hash); + const key = toBytes$1(_key); + this.iHash = hash.create(); + if (typeof this.iHash.update !== 'function') + throw new Error('Expected instance of class which extends utils.Hash'); + this.blockLen = this.iHash.blockLen; + this.outputLen = this.iHash.outputLen; + const blockLen = this.blockLen; + const pad = new Uint8Array(blockLen); + // blockLen can be bigger than outputLen + pad.set(key.length > blockLen ? hash.create().update(key).digest() : key); + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36; + this.iHash.update(pad); + // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone + this.oHash = hash.create(); + // Undo internal XOR && apply outer XOR + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36 ^ 0x5c; + this.oHash.update(pad); + pad.fill(0); + } + update(buf) { + exists$1(this); + this.iHash.update(buf); + return this; + } + digestInto(out) { + exists$1(this); + bytes$2(out, this.outputLen); + this.finished = true; + this.iHash.digestInto(out); + this.oHash.update(out); + this.oHash.digestInto(out); + this.destroy(); + } + digest() { + const out = new Uint8Array(this.oHash.outputLen); + this.digestInto(out); + return out; + } + _cloneInto(to) { + // Create new instance without calling constructor since key already in state and we don't know it. + to || (to = Object.create(Object.getPrototypeOf(this), {})); + const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this; + to = to; + to.finished = finished; + to.destroyed = destroyed; + to.blockLen = blockLen; + to.outputLen = outputLen; + to.oHash = oHash._cloneInto(to.oHash); + to.iHash = iHash._cloneInto(to.iHash); + return to; + } + destroy() { + this.destroyed = true; + this.oHash.destroy(); + this.iHash.destroy(); + } + }; + /** + * HMAC: RFC2104 message authentication code. + * @param hash - function that would be used e.g. sha256 + * @param key - message key + * @param message - message data + */ + const hmac$1 = (hash, key, message) => new HMAC$1(hash, key).update(message).digest(); + hmac$1.create = (hash, key) => new HMAC$1(hash, key); + + /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // connects noble-curves to noble-hashes + function getHash(hash) { + return { + hash, + hmac: (key, ...msgs) => hmac$1(hash, key, concatBytes$2(...msgs)), + randomBytes: randomBytes$1, + }; + } + function createCurve(curveDef, defHash) { + const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) }); + return Object.freeze({ ...create(defHash), create }); + } + + /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + const secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'); + const secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'); + const _1n = BigInt(1); + const _2n = BigInt(2); + const divNearest = (a, b) => (a + b / _2n) / b; + /** + * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit. + * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00] + */ + function sqrtMod(y) { + const P = secp256k1P; + // prettier-ignore + const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22); + // prettier-ignore + const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88); + const b2 = (y * y * y) % P; // x^3, 11 + const b3 = (b2 * b2 * y) % P; // x^7 + const b6 = (pow2(b3, _3n, P) * b3) % P; + const b9 = (pow2(b6, _3n, P) * b3) % P; + const b11 = (pow2(b9, _2n, P) * b2) % P; + const b22 = (pow2(b11, _11n, P) * b11) % P; + const b44 = (pow2(b22, _22n, P) * b22) % P; + const b88 = (pow2(b44, _44n, P) * b44) % P; + const b176 = (pow2(b88, _88n, P) * b88) % P; + const b220 = (pow2(b176, _44n, P) * b44) % P; + const b223 = (pow2(b220, _3n, P) * b3) % P; + const t1 = (pow2(b223, _23n, P) * b22) % P; + const t2 = (pow2(t1, _6n, P) * b2) % P; + const root = pow2(t2, _2n, P); + if (!Fp.eql(Fp.sqr(root), y)) + throw new Error('Cannot find square root'); + return root; + } + const Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod }); + const secp256k1 = createCurve({ + a: BigInt(0), + b: BigInt(7), + Fp, + n: secp256k1N, + // Base point (x, y) aka generator point + Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'), + Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'), + h: BigInt(1), + lowS: true, + /** + * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism. + * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%. + * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit. + * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066 + */ + endo: { + beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'), + splitScalar: (k) => { + const n = secp256k1N; + const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15'); + const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3'); + const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'); + const b2 = a1; + const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16) + const c1 = divNearest(b2 * k, n); + const c2 = divNearest(-b1 * k, n); + let k1 = mod(k - c1 * a1 - c2 * a2, n); + let k2 = mod(-c1 * b1 - c2 * b2, n); + const k1neg = k1 > POW_2_128; + const k2neg = k2 > POW_2_128; + if (k1neg) + k1 = n - k1; + if (k2neg) + k2 = n - k2; + if (k1 > POW_2_128 || k2 > POW_2_128) { + throw new Error('splitScalar: Endomorphism failed, k=' + k); + } + return { k1neg, k1, k2neg, k2 }; + }, + }, + }, sha256$1); + // Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code. + // https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki + const _0n = BigInt(0); + const fe = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1P; + const ge = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1N; + /** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */ + const TAGGED_HASH_PREFIXES = {}; + function taggedHash(tag, ...messages) { + let tagP = TAGGED_HASH_PREFIXES[tag]; + if (tagP === undefined) { + const tagH = sha256$1(Uint8Array.from(tag, (c) => c.charCodeAt(0))); + tagP = concatBytes$1(tagH, tagH); + TAGGED_HASH_PREFIXES[tag] = tagP; + } + return sha256$1(concatBytes$1(tagP, ...messages)); + } + // ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03 + const pointToBytes = (point) => point.toRawBytes(true).slice(1); + const numTo32b = (n) => numberToBytesBE(n, 32); + const modP = (x) => mod(x, secp256k1P); + const modN = (x) => mod(x, secp256k1N); + const Point = secp256k1.ProjectivePoint; + const GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b); + // Calculate point, scalar and bytes + function schnorrGetExtPubKey(priv) { + let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey + let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside + const scalar = p.hasEvenY() ? d_ : modN(-d_); + return { scalar: scalar, bytes: pointToBytes(p) }; + } + /** + * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point. + * @returns valid point checked for being on-curve + */ + function lift_x(x) { + if (!fe(x)) + throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p. + const xx = modP(x * x); + const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p. + let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p. + if (y % _2n !== _0n) + y = modP(-y); // Return the unique point P such that x(P) = x and + const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise. + p.assertValidity(); + return p; + } + /** + * Create tagged hash, convert it to bigint, reduce modulo-n. + */ + function challenge(...args) { + return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args))); + } + /** + * Schnorr public key is just `x` coordinate of Point as per BIP340. + */ + function schnorrGetPublicKey(privateKey) { + return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G) + } + /** + * Creates Schnorr signature as per BIP340. Verifies itself before returning anything. + * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous. + */ + function schnorrSign(message, privateKey, auxRand = randomBytes$1(32)) { + const m = ensureBytes('message', message); + const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder + const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array + const t = numTo32b(d ^ bytesToNumberBE(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a) + const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m) + const k_ = modN(bytesToNumberBE(rand)); // Let k' = int(rand) mod n + if (k_ === _0n) + throw new Error('sign failed: k is zero'); // Fail if k' = 0. + const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G. + const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n. + const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n). + sig.set(rx, 0); + sig.set(numTo32b(modN(k + e * d)), 32); + // If Verify(bytes(P), m, sig) (see below) returns failure, abort + if (!schnorrVerify(sig, m, px)) + throw new Error('sign: Invalid signature produced'); + return sig; + } + /** + * Verifies Schnorr signature. + * Will swallow errors & return false except for initial type validation of arguments. + */ + function schnorrVerify(signature, message, publicKey) { + const sig = ensureBytes('signature', signature, 64); + const m = ensureBytes('message', message); + const pub = ensureBytes('publicKey', publicKey, 32); + try { + const P = lift_x(bytesToNumberBE(pub)); // P = lift_x(int(pk)); fail if that fails + const r = bytesToNumberBE(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p. + if (!fe(r)) + return false; + const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n. + if (!ge(s)) + return false; + const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n + const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P + if (!R || !R.hasEvenY() || R.toAffine().x !== r) + return false; // -eP == (n-e)P + return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r. + } + catch (error) { + return false; + } + } + const schnorr = /* @__PURE__ */ (() => ({ + getPublicKey: schnorrGetPublicKey, + sign: schnorrSign, + verify: schnorrVerify, + utils: { + randomPrivateKey: secp256k1.utils.randomPrivateKey, + lift_x, + pointToBytes, + numberToBytesBE, + bytesToNumberBE, + taggedHash, + mod, + }, + }))(); + + const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined; + + /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. + // node.js versions earlier than v19 don't declare it in global scope. + // For node.js, package.json#exports field mapping rewrites import + // from `crypto` to `cryptoNode`, which imports native module. + // Makes the utils un-importable in browsers without a bundler. + // Once node.js 18 is deprecated, we can just drop the import. + const u8a = (a) => a instanceof Uint8Array; + // Cast array to view + const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength); + // The rotate right (circular right shift) operation for uint32 + const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift); + // big-endian hardware is rare. Just in case someone still decides to run hashes: + // early-throw an error because we don't support BE yet. + const isLE$1 = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44; + if (!isLE$1) + throw new Error('Non little-endian hardware is not supported'); + const hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0')); + /** + * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123' + */ + function bytesToHex(bytes) { + if (!u8a(bytes)) + throw new Error('Uint8Array expected'); + // pre-caching improves the speed 6x + let hex = ''; + for (let i = 0; i < bytes.length; i++) { + hex += hexes[bytes[i]]; + } + return hex; + } + /** + * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23]) + */ + function hexToBytes(hex) { + if (typeof hex !== 'string') + throw new Error('hex string expected, got ' + typeof hex); + const len = hex.length; + if (len % 2) + throw new Error('padded hex string expected, got unpadded hex of length ' + len); + const array = new Uint8Array(len / 2); + for (let i = 0; i < array.length; i++) { + const j = i * 2; + const hexByte = hex.slice(j, j + 2); + const byte = Number.parseInt(hexByte, 16); + if (Number.isNaN(byte) || byte < 0) + throw new Error('Invalid byte sequence'); + array[i] = byte; + } + return array; + } + /** + * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99]) + */ + function utf8ToBytes(str) { + if (typeof str !== 'string') + throw new Error(`utf8ToBytes expected string, got ${typeof str}`); + return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809 + } + /** + * Normalizes (non-hex) string or Uint8Array to Uint8Array. + * Warning: when Uint8Array is passed, it would NOT get copied. + * Keep in mind for future mutable operations. + */ + function toBytes(data) { + if (typeof data === 'string') + data = utf8ToBytes(data); + if (!u8a(data)) + throw new Error(`expected Uint8Array, got ${typeof data}`); + return data; + } + /** + * Copies several Uint8Arrays into one. + */ + function concatBytes(...arrays) { + const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0)); + let pad = 0; // walk through each item, ensure they have proper type + arrays.forEach((a) => { + if (!u8a(a)) + throw new Error('Uint8Array expected'); + r.set(a, pad); + pad += a.length; + }); + return r; + } + // For runtime check if class implements interface + class Hash { + // Safe version that clones internal state + clone() { + return this._cloneInto(); + } + } + function wrapConstructor(hashCons) { + const hashC = (msg) => hashCons().update(toBytes(msg)).digest(); + const tmp = hashCons(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashCons(); + return hashC; + } + /** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ + function randomBytes(bytesLength = 32) { + if (crypto && typeof crypto.getRandomValues === 'function') { + return crypto.getRandomValues(new Uint8Array(bytesLength)); + } + throw new Error('crypto.getRandomValues must be defined'); + } + + function number$1(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error(`Wrong positive integer: ${n}`); + } + function bool$1(b) { + if (typeof b !== 'boolean') + throw new Error(`Expected boolean, not ${b}`); + } + function bytes$1(b, ...lengths) { + if (!(b instanceof Uint8Array)) + throw new Error('Expected Uint8Array'); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`); + } + function hash(hash) { + if (typeof hash !== 'function' || typeof hash.create !== 'function') + throw new Error('Hash should be wrapped by utils.wrapConstructor'); + number$1(hash.outputLen); + number$1(hash.blockLen); + } + function exists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error('Hash instance has been destroyed'); + if (checkFinished && instance.finished) + throw new Error('Hash#digest() has already been called'); + } + function output(out, instance) { + bytes$1(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error(`digestInto() expects output buffer of length at least ${min}`); + } + } + const assert = { + number: number$1, + bool: bool$1, + bytes: bytes$1, + hash, + exists, + output, + }; + + // Polyfill for Safari 14 + function setBigUint64(view, byteOffset, value, isLE) { + if (typeof view.setBigUint64 === 'function') + return view.setBigUint64(byteOffset, value, isLE); + const _32n = BigInt(32); + const _u32_max = BigInt(0xffffffff); + const wh = Number((value >> _32n) & _u32_max); + const wl = Number(value & _u32_max); + const h = isLE ? 4 : 0; + const l = isLE ? 0 : 4; + view.setUint32(byteOffset + h, wh, isLE); + view.setUint32(byteOffset + l, wl, isLE); + } + // Base SHA2 class (RFC 6234) + class SHA2 extends Hash { + constructor(blockLen, outputLen, padOffset, isLE) { + super(); + this.blockLen = blockLen; + this.outputLen = outputLen; + this.padOffset = padOffset; + this.isLE = isLE; + this.finished = false; + this.length = 0; + this.pos = 0; + this.destroyed = false; + this.buffer = new Uint8Array(blockLen); + this.view = createView(this.buffer); + } + update(data) { + assert.exists(this); + const { view, buffer, blockLen } = this; + data = toBytes(data); + const len = data.length; + for (let pos = 0; pos < len;) { + const take = Math.min(blockLen - this.pos, len - pos); + // Fast path: we have at least one block in input, cast it to view and process + if (take === blockLen) { + const dataView = createView(data); + for (; blockLen <= len - pos; pos += blockLen) + this.process(dataView, pos); + continue; + } + buffer.set(data.subarray(pos, pos + take), this.pos); + this.pos += take; + pos += take; + if (this.pos === blockLen) { + this.process(view, 0); + this.pos = 0; + } + } + this.length += data.length; + this.roundClean(); + return this; + } + digestInto(out) { + assert.exists(this); + assert.output(out, this); + this.finished = true; + // Padding + // We can avoid allocation of buffer for padding completely if it + // was previously not allocated here. But it won't change performance. + const { buffer, view, blockLen, isLE } = this; + let { pos } = this; + // append the bit '1' to the message + buffer[pos++] = 0b10000000; + this.buffer.subarray(pos).fill(0); + // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again + if (this.padOffset > blockLen - pos) { + this.process(view, 0); + pos = 0; + } + // Pad until full block byte with zeros + for (let i = pos; i < blockLen; i++) + buffer[i] = 0; + // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that + // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen. + // So we just write lowest 64 bits of that value. + setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE); + this.process(view, 0); + const oview = createView(out); + const len = this.outputLen; + // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT + if (len % 4) + throw new Error('_sha2: outputLen should be aligned to 32bit'); + const outLen = len / 4; + const state = this.get(); + if (outLen > state.length) + throw new Error('_sha2: outputLen bigger than state'); + for (let i = 0; i < outLen; i++) + oview.setUint32(4 * i, state[i], isLE); + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneInto(to) { + to || (to = new this.constructor()); + to.set(...this.get()); + const { blockLen, buffer, length, finished, destroyed, pos } = this; + to.length = length; + to.pos = pos; + to.finished = finished; + to.destroyed = destroyed; + if (length % blockLen) + to.buffer.set(buffer); + return to; + } + } + + // Choice: a ? b : c + const Chi = (a, b, c) => (a & b) ^ (~a & c); + // Majority function, true if any two inpust is true + const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c); + // Round constants: + // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) + // prettier-ignore + const SHA256_K = new Uint32Array([ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ]); + // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): + // prettier-ignore + const IV = new Uint32Array([ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + ]); + // Temporary buffer, not used to store anything between runs + // Named this way because it matches specification. + const SHA256_W = new Uint32Array(64); + class SHA256 extends SHA2 { + constructor() { + super(64, 32, 8, false); + // We cannot use array here since array allows indexing by variable + // which means optimizer/compiler cannot use registers. + this.A = IV[0] | 0; + this.B = IV[1] | 0; + this.C = IV[2] | 0; + this.D = IV[3] | 0; + this.E = IV[4] | 0; + this.F = IV[5] | 0; + this.G = IV[6] | 0; + this.H = IV[7] | 0; + } + get() { + const { A, B, C, D, E, F, G, H } = this; + return [A, B, C, D, E, F, G, H]; + } + // prettier-ignore + set(A, B, C, D, E, F, G, H) { + this.A = A | 0; + this.B = B | 0; + this.C = C | 0; + this.D = D | 0; + this.E = E | 0; + this.F = F | 0; + this.G = G | 0; + this.H = H | 0; + } + process(view, offset) { + // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array + for (let i = 0; i < 16; i++, offset += 4) + SHA256_W[i] = view.getUint32(offset, false); + for (let i = 16; i < 64; i++) { + const W15 = SHA256_W[i - 15]; + const W2 = SHA256_W[i - 2]; + const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3); + const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10); + SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0; + } + // Compression function main loop, 64 rounds + let { A, B, C, D, E, F, G, H } = this; + for (let i = 0; i < 64; i++) { + const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25); + const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0; + const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22); + const T2 = (sigma0 + Maj(A, B, C)) | 0; + H = G; + G = F; + F = E; + E = (D + T1) | 0; + D = C; + C = B; + B = A; + A = (T1 + T2) | 0; + } + // Add the compressed chunk to the current hash value + A = (A + this.A) | 0; + B = (B + this.B) | 0; + C = (C + this.C) | 0; + D = (D + this.D) | 0; + E = (E + this.E) | 0; + F = (F + this.F) | 0; + G = (G + this.G) | 0; + H = (H + this.H) | 0; + this.set(A, B, C, D, E, F, G, H); + } + roundClean() { + SHA256_W.fill(0); + } + destroy() { + this.set(0, 0, 0, 0, 0, 0, 0, 0); + this.buffer.fill(0); + } + } + // Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf + class SHA224 extends SHA256 { + constructor() { + super(); + this.A = 0xc1059ed8 | 0; + this.B = 0x367cd507 | 0; + this.C = 0x3070dd17 | 0; + this.D = 0xf70e5939 | 0; + this.E = 0xffc00b31 | 0; + this.F = 0x68581511 | 0; + this.G = 0x64f98fa7 | 0; + this.H = 0xbefa4fa4 | 0; + this.outputLen = 28; + } + } + /** + * SHA2-256 hash function + * @param message - data that would be hashed + */ + const sha256 = wrapConstructor(() => new SHA256()); + wrapConstructor(() => new SHA224()); + + /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + function assertNumber(n) { + if (!Number.isSafeInteger(n)) + throw new Error(`Wrong integer: ${n}`); + } + function chain(...args) { + const wrap = (a, b) => (c) => a(b(c)); + const encode = Array.from(args) + .reverse() + .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined); + const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined); + return { encode, decode }; + } + function alphabet(alphabet) { + return { + encode: (digits) => { + if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number')) + throw new Error('alphabet.encode input should be an array of numbers'); + return digits.map((i) => { + assertNumber(i); + if (i < 0 || i >= alphabet.length) + throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`); + return alphabet[i]; + }); + }, + decode: (input) => { + if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string')) + throw new Error('alphabet.decode input should be array of strings'); + return input.map((letter) => { + if (typeof letter !== 'string') + throw new Error(`alphabet.decode: not string element=${letter}`); + const index = alphabet.indexOf(letter); + if (index === -1) + throw new Error(`Unknown letter: "${letter}". Allowed: ${alphabet}`); + return index; + }); + }, + }; + } + function join(separator = '') { + if (typeof separator !== 'string') + throw new Error('join separator should be string'); + return { + encode: (from) => { + if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string')) + throw new Error('join.encode input should be array of strings'); + for (let i of from) + if (typeof i !== 'string') + throw new Error(`join.encode: non-string input=${i}`); + return from.join(separator); + }, + decode: (to) => { + if (typeof to !== 'string') + throw new Error('join.decode input should be string'); + return to.split(separator); + }, + }; + } + function padding(bits, chr = '=') { + assertNumber(bits); + if (typeof chr !== 'string') + throw new Error('padding chr should be string'); + return { + encode(data) { + if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string')) + throw new Error('padding.encode input should be array of strings'); + for (let i of data) + if (typeof i !== 'string') + throw new Error(`padding.encode: non-string input=${i}`); + while ((data.length * bits) % 8) + data.push(chr); + return data; + }, + decode(input) { + if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string')) + throw new Error('padding.encode input should be array of strings'); + for (let i of input) + if (typeof i !== 'string') + throw new Error(`padding.decode: non-string input=${i}`); + let end = input.length; + if ((end * bits) % 8) + throw new Error('Invalid padding: string should have whole number of bytes'); + for (; end > 0 && input[end - 1] === chr; end--) { + if (!(((end - 1) * bits) % 8)) + throw new Error('Invalid padding: string has too much padding'); + } + return input.slice(0, end); + }, + }; + } + function normalize(fn) { + if (typeof fn !== 'function') + throw new Error('normalize fn should be function'); + return { encode: (from) => from, decode: (to) => fn(to) }; + } + function convertRadix(data, from, to) { + if (from < 2) + throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`); + if (to < 2) + throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`); + if (!Array.isArray(data)) + throw new Error('convertRadix: data should be array'); + if (!data.length) + return []; + let pos = 0; + const res = []; + const digits = Array.from(data); + digits.forEach((d) => { + assertNumber(d); + if (d < 0 || d >= from) + throw new Error(`Wrong integer: ${d}`); + }); + while (true) { + let carry = 0; + let done = true; + for (let i = pos; i < digits.length; i++) { + const digit = digits[i]; + const digitBase = from * carry + digit; + if (!Number.isSafeInteger(digitBase) || + (from * carry) / from !== carry || + digitBase - digit !== from * carry) { + throw new Error('convertRadix: carry overflow'); + } + carry = digitBase % to; + digits[i] = Math.floor(digitBase / to); + if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase) + throw new Error('convertRadix: carry overflow'); + if (!done) + continue; + else if (!digits[i]) + pos = i; + else + done = false; + } + res.push(carry); + if (done) + break; + } + for (let i = 0; i < data.length - 1 && data[i] === 0; i++) + res.push(0); + return res.reverse(); + } + const gcd = (a, b) => (!b ? a : gcd(b, a % b)); + const radix2carry = (from, to) => from + (to - gcd(from, to)); + function convertRadix2(data, from, to, padding) { + if (!Array.isArray(data)) + throw new Error('convertRadix2: data should be array'); + if (from <= 0 || from > 32) + throw new Error(`convertRadix2: wrong from=${from}`); + if (to <= 0 || to > 32) + throw new Error(`convertRadix2: wrong to=${to}`); + if (radix2carry(from, to) > 32) { + throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`); + } + let carry = 0; + let pos = 0; + const mask = 2 ** to - 1; + const res = []; + for (const n of data) { + assertNumber(n); + if (n >= 2 ** from) + throw new Error(`convertRadix2: invalid data word=${n} from=${from}`); + carry = (carry << from) | n; + if (pos + from > 32) + throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`); + pos += from; + for (; pos >= to; pos -= to) + res.push(((carry >> (pos - to)) & mask) >>> 0); + carry &= 2 ** pos - 1; + } + carry = (carry << (to - pos)) & mask; + if (!padding && pos >= from) + throw new Error('Excess padding'); + if (!padding && carry) + throw new Error(`Non-zero padding: ${carry}`); + if (padding && pos > 0) + res.push(carry >>> 0); + return res; + } + function radix(num) { + assertNumber(num); + return { + encode: (bytes) => { + if (!(bytes instanceof Uint8Array)) + throw new Error('radix.encode input should be Uint8Array'); + return convertRadix(Array.from(bytes), 2 ** 8, num); + }, + decode: (digits) => { + if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number')) + throw new Error('radix.decode input should be array of strings'); + return Uint8Array.from(convertRadix(digits, num, 2 ** 8)); + }, + }; + } + function radix2(bits, revPadding = false) { + assertNumber(bits); + if (bits <= 0 || bits > 32) + throw new Error('radix2: bits should be in (0..32]'); + if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32) + throw new Error('radix2: carry overflow'); + return { + encode: (bytes) => { + if (!(bytes instanceof Uint8Array)) + throw new Error('radix2.encode input should be Uint8Array'); + return convertRadix2(Array.from(bytes), 8, bits, !revPadding); + }, + decode: (digits) => { + if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number')) + throw new Error('radix2.decode input should be array of strings'); + return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding)); + }, + }; + } + function unsafeWrapper(fn) { + if (typeof fn !== 'function') + throw new Error('unsafeWrapper fn should be function'); + return function (...args) { + try { + return fn.apply(null, args); + } + catch (e) { } + }; + } + const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join('')); + const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join('')); + chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join('')); + chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1'))); + const base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join('')); + const base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join('')); + const genBase58 = (abc) => chain(radix(58), alphabet(abc), join('')); + const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'); + genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'); + genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'); + const XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11]; + const base58xmr = { + encode(data) { + let res = ''; + for (let i = 0; i < data.length; i += 8) { + const block = data.subarray(i, i + 8); + res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1'); + } + return res; + }, + decode(str) { + let res = []; + for (let i = 0; i < str.length; i += 11) { + const slice = str.slice(i, i + 11); + const blockLen = XMR_BLOCK_LEN.indexOf(slice.length); + const block = base58.decode(slice); + for (let j = 0; j < block.length - blockLen; j++) { + if (block[j] !== 0) + throw new Error('base58xmr: wrong padding'); + } + res = res.concat(Array.from(block.slice(block.length - blockLen))); + } + return Uint8Array.from(res); + }, + }; + const BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join('')); + const POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]; + function bech32Polymod(pre) { + const b = pre >> 25; + let chk = (pre & 0x1ffffff) << 5; + for (let i = 0; i < POLYMOD_GENERATORS.length; i++) { + if (((b >> i) & 1) === 1) + chk ^= POLYMOD_GENERATORS[i]; + } + return chk; + } + function bechChecksum(prefix, words, encodingConst = 1) { + const len = prefix.length; + let chk = 1; + for (let i = 0; i < len; i++) { + const c = prefix.charCodeAt(i); + if (c < 33 || c > 126) + throw new Error(`Invalid prefix (${prefix})`); + chk = bech32Polymod(chk) ^ (c >> 5); + } + chk = bech32Polymod(chk); + for (let i = 0; i < len; i++) + chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f); + for (let v of words) + chk = bech32Polymod(chk) ^ v; + for (let i = 0; i < 6; i++) + chk = bech32Polymod(chk); + chk ^= encodingConst; + return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false)); + } + function genBech32(encoding) { + const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3; + const _words = radix2(5); + const fromWords = _words.decode; + const toWords = _words.encode; + const fromWordsUnsafe = unsafeWrapper(fromWords); + function encode(prefix, words, limit = 90) { + if (typeof prefix !== 'string') + throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`); + if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number')) + throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`); + const actualLength = prefix.length + 7 + words.length; + if (limit !== false && actualLength > limit) + throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`); + prefix = prefix.toLowerCase(); + return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`; + } + function decode(str, limit = 90) { + if (typeof str !== 'string') + throw new Error(`bech32.decode input should be string, not ${typeof str}`); + if (str.length < 8 || (limit !== false && str.length > limit)) + throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`); + const lowered = str.toLowerCase(); + if (str !== lowered && str !== str.toUpperCase()) + throw new Error(`String must be lowercase or uppercase`); + str = lowered; + const sepIndex = str.lastIndexOf('1'); + if (sepIndex === 0 || sepIndex === -1) + throw new Error(`Letter "1" must be present between prefix and data only`); + const prefix = str.slice(0, sepIndex); + const _words = str.slice(sepIndex + 1); + if (_words.length < 6) + throw new Error('Data must be at least 6 characters long'); + const words = BECH_ALPHABET.decode(_words).slice(0, -6); + const sum = bechChecksum(prefix, words, ENCODING_CONST); + if (!_words.endsWith(sum)) + throw new Error(`Invalid checksum in ${str}: expected "${sum}"`); + return { prefix, words }; + } + const decodeUnsafe = unsafeWrapper(decode); + function decodeToBytes(str) { + const { prefix, words } = decode(str, false); + return { prefix, words, bytes: fromWords(words) }; + } + return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords }; + } + const bech32 = genBech32('bech32'); + genBech32('bech32m'); + const utf8 = { + encode: (data) => new TextDecoder().decode(data), + decode: (str) => new TextEncoder().encode(str), + }; + const hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => { + if (typeof s !== 'string' || s.length % 2) + throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`); + return s.toLowerCase(); + })); + const CODERS = { + utf8, hex, base16, base32, base64, base64url, base58, base58xmr + }; +`Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`; + + function number(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error(`positive integer expected, not ${n}`); + } + function bool(b) { + if (typeof b !== 'boolean') + throw new Error(`boolean expected, not ${b}`); + } + function isBytes(a) { + return (a instanceof Uint8Array || + (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')); + } + function bytes(b, ...lengths) { + if (!isBytes(b)) + throw new Error('Uint8Array expected'); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`); + } + + /*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */ + const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); + // big-endian hardware is rare. Just in case someone still decides to run ciphers: + // early-throw an error because we don't support BE yet. + const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44; + if (!isLE) + throw new Error('Non little-endian hardware is not supported'); + function checkOpts(defaults, opts) { + if (opts == null || typeof opts !== 'object') + throw new Error('options must be defined'); + const merged = Object.assign(defaults, opts); + return merged; + } + // Compares 2 u8a-s in kinda constant time + function equalBytes(a, b) { + if (a.length !== b.length) + return false; + let diff = 0; + for (let i = 0; i < a.length; i++) + diff |= a[i] ^ b[i]; + return diff === 0; + } + /** + * @__NO_SIDE_EFFECTS__ + */ + const wrapCipher = (params, c) => { + Object.assign(c, params); + return c; + }; + + // prettier-ignore + /* + AES (Advanced Encryption Standard) aka Rijndael block cipher. + + Data is split into 128-bit blocks. Encrypted in 10/12/14 rounds (128/192/256 bits). In every round: + 1. **S-box**, table substitution + 2. **Shift rows**, cyclic shift left of all rows of data array + 3. **Mix columns**, multiplying every column by fixed polynomial + 4. **Add round key**, round_key xor i-th column of array + + Resources: + - FIPS-197 https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf + - Original proposal: https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf + */ + const BLOCK_SIZE = 16; + const POLY = 0x11b; // 1 + x + x**3 + x**4 + x**8 + // TODO: remove multiplication, binary ops only + function mul2(n) { + return (n << 1) ^ (POLY & -(n >> 7)); + } + function mul(a, b) { + let res = 0; + for (; b > 0; b >>= 1) { + // Montgomery ladder + res ^= a & -(b & 1); // if (b&1) res ^=a (but const-time). + a = mul2(a); // a = 2*a + } + return res; + } + // AES S-box is generated using finite field inversion, + // an affine transform, and xor of a constant 0x63. + const sbox = /* @__PURE__ */ (() => { + let t = new Uint8Array(256); + for (let i = 0, x = 1; i < 256; i++, x ^= mul2(x)) + t[i] = x; + const box = new Uint8Array(256); + box[0] = 0x63; // first elm + for (let i = 0; i < 255; i++) { + let x = t[255 - i]; + x |= x << 8; + box[t[i]] = (x ^ (x >> 4) ^ (x >> 5) ^ (x >> 6) ^ (x >> 7) ^ 0x63) & 0xff; + } + return box; + })(); + // Inverted S-box + const invSbox = /* @__PURE__ */ sbox.map((_, j) => sbox.indexOf(j)); + // Rotate u32 by 8 + const rotr32_8 = (n) => (n << 24) | (n >>> 8); + const rotl32_8 = (n) => (n << 8) | (n >>> 24); + // T-table is optimization suggested in 5.2 of original proposal (missed from FIPS-197). Changes: + // - LE instead of BE + // - bigger tables: T0 and T1 are merged into T01 table and T2 & T3 into T23; + // so index is u16, instead of u8. This speeds up things, unexpectedly + function genTtable(sbox, fn) { + if (sbox.length !== 256) + throw new Error('Wrong sbox length'); + const T0 = new Uint32Array(256).map((_, j) => fn(sbox[j])); + const T1 = T0.map(rotl32_8); + const T2 = T1.map(rotl32_8); + const T3 = T2.map(rotl32_8); + const T01 = new Uint32Array(256 * 256); + const T23 = new Uint32Array(256 * 256); + const sbox2 = new Uint16Array(256 * 256); + for (let i = 0; i < 256; i++) { + for (let j = 0; j < 256; j++) { + const idx = i * 256 + j; + T01[idx] = T0[i] ^ T1[j]; + T23[idx] = T2[i] ^ T3[j]; + sbox2[idx] = (sbox[i] << 8) | sbox[j]; + } + } + return { sbox, sbox2, T0, T1, T2, T3, T01, T23 }; + } + const tableEncoding = /* @__PURE__ */ genTtable(sbox, (s) => (mul(s, 3) << 24) | (s << 16) | (s << 8) | mul(s, 2)); + const tableDecoding = /* @__PURE__ */ genTtable(invSbox, (s) => (mul(s, 11) << 24) | (mul(s, 13) << 16) | (mul(s, 9) << 8) | mul(s, 14)); + const xPowers = /* @__PURE__ */ (() => { + const p = new Uint8Array(16); + for (let i = 0, x = 1; i < 16; i++, x = mul2(x)) + p[i] = x; + return p; + })(); + function expandKeyLE(key) { + bytes(key); + const len = key.length; + if (![16, 24, 32].includes(len)) + throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${len}`); + const { sbox2 } = tableEncoding; + const k32 = u32(key); + const Nk = k32.length; + const subByte = (n) => applySbox(sbox2, n, n, n, n); + const xk = new Uint32Array(len + 28); // expanded key + xk.set(k32); + // 4.3.1 Key expansion + for (let i = Nk; i < xk.length; i++) { + let t = xk[i - 1]; + if (i % Nk === 0) + t = subByte(rotr32_8(t)) ^ xPowers[i / Nk - 1]; + else if (Nk > 6 && i % Nk === 4) + t = subByte(t); + xk[i] = xk[i - Nk] ^ t; + } + return xk; + } + function expandKeyDecLE(key) { + const encKey = expandKeyLE(key); + const xk = encKey.slice(); + const Nk = encKey.length; + const { sbox2 } = tableEncoding; + const { T0, T1, T2, T3 } = tableDecoding; + // Inverse key by chunks of 4 (rounds) + for (let i = 0; i < Nk; i += 4) { + for (let j = 0; j < 4; j++) + xk[i + j] = encKey[Nk - i - 4 + j]; + } + encKey.fill(0); + // apply InvMixColumn except first & last round + for (let i = 4; i < Nk - 4; i++) { + const x = xk[i]; + const w = applySbox(sbox2, x, x, x, x); + xk[i] = T0[w & 0xff] ^ T1[(w >>> 8) & 0xff] ^ T2[(w >>> 16) & 0xff] ^ T3[w >>> 24]; + } + return xk; + } + // Apply tables + function apply0123(T01, T23, s0, s1, s2, s3) { + return (T01[((s0 << 8) & 0xff00) | ((s1 >>> 8) & 0xff)] ^ + T23[((s2 >>> 8) & 0xff00) | ((s3 >>> 24) & 0xff)]); + } + function applySbox(sbox2, s0, s1, s2, s3) { + return (sbox2[(s0 & 0xff) | (s1 & 0xff00)] | + (sbox2[((s2 >>> 16) & 0xff) | ((s3 >>> 16) & 0xff00)] << 16)); + } + function encrypt$1(xk, s0, s1, s2, s3) { + const { sbox2, T01, T23 } = tableEncoding; + let k = 0; + (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]); + const rounds = xk.length / 4 - 2; + for (let i = 0; i < rounds; i++) { + const t0 = xk[k++] ^ apply0123(T01, T23, s0, s1, s2, s3); + const t1 = xk[k++] ^ apply0123(T01, T23, s1, s2, s3, s0); + const t2 = xk[k++] ^ apply0123(T01, T23, s2, s3, s0, s1); + const t3 = xk[k++] ^ apply0123(T01, T23, s3, s0, s1, s2); + (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3); + } + // last round (without mixcolumns, so using SBOX2 table) + const t0 = xk[k++] ^ applySbox(sbox2, s0, s1, s2, s3); + const t1 = xk[k++] ^ applySbox(sbox2, s1, s2, s3, s0); + const t2 = xk[k++] ^ applySbox(sbox2, s2, s3, s0, s1); + const t3 = xk[k++] ^ applySbox(sbox2, s3, s0, s1, s2); + return { s0: t0, s1: t1, s2: t2, s3: t3 }; + } + function decrypt$1(xk, s0, s1, s2, s3) { + const { sbox2, T01, T23 } = tableDecoding; + let k = 0; + (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]); + const rounds = xk.length / 4 - 2; + for (let i = 0; i < rounds; i++) { + const t0 = xk[k++] ^ apply0123(T01, T23, s0, s3, s2, s1); + const t1 = xk[k++] ^ apply0123(T01, T23, s1, s0, s3, s2); + const t2 = xk[k++] ^ apply0123(T01, T23, s2, s1, s0, s3); + const t3 = xk[k++] ^ apply0123(T01, T23, s3, s2, s1, s0); + (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3); + } + // Last round + const t0 = xk[k++] ^ applySbox(sbox2, s0, s3, s2, s1); + const t1 = xk[k++] ^ applySbox(sbox2, s1, s0, s3, s2); + const t2 = xk[k++] ^ applySbox(sbox2, s2, s1, s0, s3); + const t3 = xk[k++] ^ applySbox(sbox2, s3, s2, s1, s0); + return { s0: t0, s1: t1, s2: t2, s3: t3 }; + } + function getDst(len, dst) { + if (!dst) + return new Uint8Array(len); + bytes(dst); + if (dst.length < len) + throw new Error(`aes: wrong destination length, expected at least ${len}, got: ${dst.length}`); + return dst; + } + function validateBlockDecrypt(data) { + bytes(data); + if (data.length % BLOCK_SIZE !== 0) { + throw new Error(`aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size ${BLOCK_SIZE}`); + } + } + function validateBlockEncrypt(plaintext, pcks5, dst) { + let outLen = plaintext.length; + const remaining = outLen % BLOCK_SIZE; + if (!pcks5 && remaining !== 0) + throw new Error('aec/(cbc-ecb): unpadded plaintext with disabled padding'); + const b = u32(plaintext); + if (pcks5) { + let left = BLOCK_SIZE - remaining; + if (!left) + left = BLOCK_SIZE; // if no bytes left, create empty padding block + outLen = outLen + left; + } + const out = getDst(outLen, dst); + const o = u32(out); + return { b, o, out }; + } + function validatePCKS(data, pcks5) { + if (!pcks5) + return data; + const len = data.length; + if (!len) + throw new Error(`aes/pcks5: empty ciphertext not allowed`); + const lastByte = data[len - 1]; + if (lastByte <= 0 || lastByte > 16) + throw new Error(`aes/pcks5: wrong padding byte: ${lastByte}`); + const out = data.subarray(0, -lastByte); + for (let i = 0; i < lastByte; i++) + if (data[len - i - 1] !== lastByte) + throw new Error(`aes/pcks5: wrong padding`); + return out; + } + function padPCKS(left) { + const tmp = new Uint8Array(16); + const tmp32 = u32(tmp); + tmp.set(left); + const paddingByte = BLOCK_SIZE - left.length; + for (let i = BLOCK_SIZE - paddingByte; i < BLOCK_SIZE; i++) + tmp[i] = paddingByte; + return tmp32; + } + /** + * CBC: Cipher-Block-Chaining. Key is previous round’s block. + * Fragile: needs proper padding. Unauthenticated: needs MAC. + */ + const cbc = wrapCipher({ blockSize: 16, nonceLength: 16 }, function cbc(key, iv, opts = {}) { + bytes(key); + bytes(iv, 16); + const pcks5 = !opts.disablePadding; + return { + encrypt: (plaintext, dst) => { + const xk = expandKeyLE(key); + const { b, o, out: _out } = validateBlockEncrypt(plaintext, pcks5, dst); + const n32 = u32(iv); + // prettier-ignore + let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3]; + let i = 0; + for (; i + 4 <= b.length;) { + (s0 ^= b[i + 0]), (s1 ^= b[i + 1]), (s2 ^= b[i + 2]), (s3 ^= b[i + 3]); + ({ s0, s1, s2, s3 } = encrypt$1(xk, s0, s1, s2, s3)); + (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3); + } + if (pcks5) { + const tmp32 = padPCKS(plaintext.subarray(i * 4)); + (s0 ^= tmp32[0]), (s1 ^= tmp32[1]), (s2 ^= tmp32[2]), (s3 ^= tmp32[3]); + ({ s0, s1, s2, s3 } = encrypt$1(xk, s0, s1, s2, s3)); + (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3); + } + xk.fill(0); + return _out; + }, + decrypt: (ciphertext, dst) => { + validateBlockDecrypt(ciphertext); + const xk = expandKeyDecLE(key); + const n32 = u32(iv); + const out = getDst(ciphertext.length, dst); + const b = u32(ciphertext); + const o = u32(out); + // prettier-ignore + let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3]; + for (let i = 0; i + 4 <= b.length;) { + // prettier-ignore + const ps0 = s0, ps1 = s1, ps2 = s2, ps3 = s3; + (s0 = b[i + 0]), (s1 = b[i + 1]), (s2 = b[i + 2]), (s3 = b[i + 3]); + const { s0: o0, s1: o1, s2: o2, s3: o3 } = decrypt$1(xk, s0, s1, s2, s3); + (o[i++] = o0 ^ ps0), (o[i++] = o1 ^ ps1), (o[i++] = o2 ^ ps2), (o[i++] = o3 ^ ps3); + } + xk.fill(0); + return validatePCKS(out, pcks5); + }, + }; + }); + + // Basic utils for ARX (add-rotate-xor) salsa and chacha ciphers. + /* + RFC8439 requires multi-step cipher stream, where + authKey starts with counter: 0, actual msg with counter: 1. + + For this, we need a way to re-use nonce / counter: + + const counter = new Uint8Array(4); + chacha(..., counter, ...); // counter is now 1 + chacha(..., counter, ...); // counter is now 2 + + This is complicated: + + - 32-bit counters are enough, no need for 64-bit: max ArrayBuffer size in JS is 4GB + - Original papers don't allow mutating counters + - Counter overflow is undefined [^1] + - Idea A: allow providing (nonce | counter) instead of just nonce, re-use it + - Caveat: Cannot be re-used through all cases: + - * chacha has (counter | nonce) + - * xchacha has (nonce16 | counter | nonce16) + - Idea B: separate nonce / counter and provide separate API for counter re-use + - Caveat: there are different counter sizes depending on an algorithm. + - salsa & chacha also differ in structures of key & sigma: + salsa20: s[0] | k(4) | s[1] | nonce(2) | ctr(2) | s[2] | k(4) | s[3] + chacha: s(4) | k(8) | ctr(1) | nonce(3) + chacha20orig: s(4) | k(8) | ctr(2) | nonce(2) + - Idea C: helper method such as `setSalsaState(key, nonce, sigma, data)` + - Caveat: we can't re-use counter array + + xchacha [^2] uses the subkey and remaining 8 byte nonce with ChaCha20 as normal + (prefixed by 4 NUL bytes, since [RFC8439] specifies a 12-byte nonce). + + [^1]: https://mailarchive.ietf.org/arch/msg/cfrg/gsOnTJzcbgG6OqD8Sc0GO5aR_tU/ + [^2]: https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha#appendix-A.2 + */ + // We can't make top-level var depend on utils.utf8ToBytes + // because it's not present in all envs. Creating a similar fn here + const _utf8ToBytes = (str) => Uint8Array.from(str.split('').map((c) => c.charCodeAt(0))); + const sigma16 = _utf8ToBytes('expand 16-byte k'); + const sigma32 = _utf8ToBytes('expand 32-byte k'); + const sigma16_32 = u32(sigma16); + const sigma32_32 = u32(sigma32); + sigma32_32.slice(); + function rotl(a, b) { + return (a << b) | (a >>> (32 - b)); + } + // Is byte array aligned to 4 byte offset (u32)? + function isAligned32(b) { + return b.byteOffset % 4 === 0; + } + // Salsa and Chacha block length is always 512-bit + const BLOCK_LEN = 64; + const BLOCK_LEN32 = 16; + // new Uint32Array([2**32]) // => Uint32Array(1) [ 0 ] + // new Uint32Array([2**32-1]) // => Uint32Array(1) [ 4294967295 ] + const MAX_COUNTER = 2 ** 32 - 1; + const U32_EMPTY = new Uint32Array(); + function runCipher(core, sigma, key, nonce, data, output, counter, rounds) { + const len = data.length; + const block = new Uint8Array(BLOCK_LEN); + const b32 = u32(block); + // Make sure that buffers aligned to 4 bytes + const isAligned = isAligned32(data) && isAligned32(output); + const d32 = isAligned ? u32(data) : U32_EMPTY; + const o32 = isAligned ? u32(output) : U32_EMPTY; + for (let pos = 0; pos < len; counter++) { + core(sigma, key, nonce, b32, counter, rounds); + if (counter >= MAX_COUNTER) + throw new Error('arx: counter overflow'); + const take = Math.min(BLOCK_LEN, len - pos); + // aligned to 4 bytes + if (isAligned && take === BLOCK_LEN) { + const pos32 = pos / 4; + if (pos % 4 !== 0) + throw new Error('arx: invalid block position'); + for (let j = 0, posj; j < BLOCK_LEN32; j++) { + posj = pos32 + j; + o32[posj] = d32[posj] ^ b32[j]; + } + pos += BLOCK_LEN; + continue; + } + for (let j = 0, posj; j < take; j++) { + posj = pos + j; + output[posj] = data[posj] ^ block[j]; + } + pos += take; + } + } + function createCipher(core, opts) { + const { allowShortKeys, extendNonceFn, counterLength, counterRight, rounds } = checkOpts({ allowShortKeys: false, counterLength: 8, counterRight: false, rounds: 20 }, opts); + if (typeof core !== 'function') + throw new Error('core must be a function'); + number(counterLength); + number(rounds); + bool(counterRight); + bool(allowShortKeys); + return (key, nonce, data, output, counter = 0) => { + bytes(key); + bytes(nonce); + bytes(data); + const len = data.length; + if (!output) + output = new Uint8Array(len); + bytes(output); + number(counter); + if (counter < 0 || counter >= MAX_COUNTER) + throw new Error('arx: counter overflow'); + if (output.length < len) + throw new Error(`arx: output (${output.length}) is shorter than data (${len})`); + const toClean = []; + // Key & sigma + // key=16 -> sigma16, k=key|key + // key=32 -> sigma32, k=key + let l = key.length, k, sigma; + if (l === 32) { + k = key.slice(); + toClean.push(k); + sigma = sigma32_32; + } + else if (l === 16 && allowShortKeys) { + k = new Uint8Array(32); + k.set(key); + k.set(key, 16); + sigma = sigma16_32; + toClean.push(k); + } + else { + throw new Error(`arx: invalid 32-byte key, got length=${l}`); + } + // Nonce + // salsa20: 8 (8-byte counter) + // chacha20orig: 8 (8-byte counter) + // chacha20: 12 (4-byte counter) + // xsalsa20: 24 (16 -> hsalsa, 8 -> old nonce) + // xchacha20: 24 (16 -> hchacha, 8 -> old nonce) + // Align nonce to 4 bytes + if (!isAligned32(nonce)) { + nonce = nonce.slice(); + toClean.push(nonce); + } + const k32 = u32(k); + // hsalsa & hchacha: handle extended nonce + if (extendNonceFn) { + if (nonce.length !== 24) + throw new Error(`arx: extended nonce must be 24 bytes`); + extendNonceFn(sigma, k32, u32(nonce.subarray(0, 16)), k32); + nonce = nonce.subarray(16); + } + // Handle nonce counter + const nonceNcLen = 16 - counterLength; + if (nonceNcLen !== nonce.length) + throw new Error(`arx: nonce must be ${nonceNcLen} or 16 bytes`); + // Pad counter when nonce is 64 bit + if (nonceNcLen !== 12) { + const nc = new Uint8Array(12); + nc.set(nonce, counterRight ? 0 : 12 - nonce.length); + nonce = nc; + toClean.push(nonce); + } + const n32 = u32(nonce); + runCipher(core, sigma, k32, n32, data, output, counter, rounds); + while (toClean.length > 0) + toClean.pop().fill(0); + return output; + }; + } + + // prettier-ignore + // ChaCha20 stream cipher was released in 2008. ChaCha aims to increase + // the diffusion per round, but had slightly less cryptanalysis. + // https://cr.yp.to/chacha.html, http://cr.yp.to/chacha/chacha-20080128.pdf + /** + * ChaCha core function. + */ + // prettier-ignore + function chachaCore(s, k, n, out, cnt, rounds = 20) { + let y00 = s[0], y01 = s[1], y02 = s[2], y03 = s[3], // "expa" "nd 3" "2-by" "te k" + y04 = k[0], y05 = k[1], y06 = k[2], y07 = k[3], // Key Key Key Key + y08 = k[4], y09 = k[5], y10 = k[6], y11 = k[7], // Key Key Key Key + y12 = cnt, y13 = n[0], y14 = n[1], y15 = n[2]; // Counter Counter Nonce Nonce + // Save state to temporary variables + let x00 = y00, x01 = y01, x02 = y02, x03 = y03, x04 = y04, x05 = y05, x06 = y06, x07 = y07, x08 = y08, x09 = y09, x10 = y10, x11 = y11, x12 = y12, x13 = y13, x14 = y14, x15 = y15; + for (let r = 0; r < rounds; r += 2) { + x00 = (x00 + x04) | 0; + x12 = rotl(x12 ^ x00, 16); + x08 = (x08 + x12) | 0; + x04 = rotl(x04 ^ x08, 12); + x00 = (x00 + x04) | 0; + x12 = rotl(x12 ^ x00, 8); + x08 = (x08 + x12) | 0; + x04 = rotl(x04 ^ x08, 7); + x01 = (x01 + x05) | 0; + x13 = rotl(x13 ^ x01, 16); + x09 = (x09 + x13) | 0; + x05 = rotl(x05 ^ x09, 12); + x01 = (x01 + x05) | 0; + x13 = rotl(x13 ^ x01, 8); + x09 = (x09 + x13) | 0; + x05 = rotl(x05 ^ x09, 7); + x02 = (x02 + x06) | 0; + x14 = rotl(x14 ^ x02, 16); + x10 = (x10 + x14) | 0; + x06 = rotl(x06 ^ x10, 12); + x02 = (x02 + x06) | 0; + x14 = rotl(x14 ^ x02, 8); + x10 = (x10 + x14) | 0; + x06 = rotl(x06 ^ x10, 7); + x03 = (x03 + x07) | 0; + x15 = rotl(x15 ^ x03, 16); + x11 = (x11 + x15) | 0; + x07 = rotl(x07 ^ x11, 12); + x03 = (x03 + x07) | 0; + x15 = rotl(x15 ^ x03, 8); + x11 = (x11 + x15) | 0; + x07 = rotl(x07 ^ x11, 7); + x00 = (x00 + x05) | 0; + x15 = rotl(x15 ^ x00, 16); + x10 = (x10 + x15) | 0; + x05 = rotl(x05 ^ x10, 12); + x00 = (x00 + x05) | 0; + x15 = rotl(x15 ^ x00, 8); + x10 = (x10 + x15) | 0; + x05 = rotl(x05 ^ x10, 7); + x01 = (x01 + x06) | 0; + x12 = rotl(x12 ^ x01, 16); + x11 = (x11 + x12) | 0; + x06 = rotl(x06 ^ x11, 12); + x01 = (x01 + x06) | 0; + x12 = rotl(x12 ^ x01, 8); + x11 = (x11 + x12) | 0; + x06 = rotl(x06 ^ x11, 7); + x02 = (x02 + x07) | 0; + x13 = rotl(x13 ^ x02, 16); + x08 = (x08 + x13) | 0; + x07 = rotl(x07 ^ x08, 12); + x02 = (x02 + x07) | 0; + x13 = rotl(x13 ^ x02, 8); + x08 = (x08 + x13) | 0; + x07 = rotl(x07 ^ x08, 7); + x03 = (x03 + x04) | 0; + x14 = rotl(x14 ^ x03, 16); + x09 = (x09 + x14) | 0; + x04 = rotl(x04 ^ x09, 12); + x03 = (x03 + x04) | 0; + x14 = rotl(x14 ^ x03, 8); + x09 = (x09 + x14) | 0; + x04 = rotl(x04 ^ x09, 7); + } + // Write output + let oi = 0; + out[oi++] = (y00 + x00) | 0; + out[oi++] = (y01 + x01) | 0; + out[oi++] = (y02 + x02) | 0; + out[oi++] = (y03 + x03) | 0; + out[oi++] = (y04 + x04) | 0; + out[oi++] = (y05 + x05) | 0; + out[oi++] = (y06 + x06) | 0; + out[oi++] = (y07 + x07) | 0; + out[oi++] = (y08 + x08) | 0; + out[oi++] = (y09 + x09) | 0; + out[oi++] = (y10 + x10) | 0; + out[oi++] = (y11 + x11) | 0; + out[oi++] = (y12 + x12) | 0; + out[oi++] = (y13 + x13) | 0; + out[oi++] = (y14 + x14) | 0; + out[oi++] = (y15 + x15) | 0; + } + /** + * ChaCha stream cipher. Conforms to RFC 8439 (IETF, TLS). 12-byte nonce, 4-byte counter. + * With 12-byte nonce, it's not safe to use fill it with random (CSPRNG), due to collision chance. + */ + const chacha20 = /* @__PURE__ */ createCipher(chachaCore, { + counterRight: false, + counterLength: 4, + allowShortKeys: false, + }); + + // HMAC (RFC 2104) + class HMAC extends Hash { + constructor(hash, _key) { + super(); + this.finished = false; + this.destroyed = false; + assert.hash(hash); + const key = toBytes(_key); + this.iHash = hash.create(); + if (typeof this.iHash.update !== 'function') + throw new Error('Expected instance of class which extends utils.Hash'); + this.blockLen = this.iHash.blockLen; + this.outputLen = this.iHash.outputLen; + const blockLen = this.blockLen; + const pad = new Uint8Array(blockLen); + // blockLen can be bigger than outputLen + pad.set(key.length > blockLen ? hash.create().update(key).digest() : key); + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36; + this.iHash.update(pad); + // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone + this.oHash = hash.create(); + // Undo internal XOR && apply outer XOR + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36 ^ 0x5c; + this.oHash.update(pad); + pad.fill(0); + } + update(buf) { + assert.exists(this); + this.iHash.update(buf); + return this; + } + digestInto(out) { + assert.exists(this); + assert.bytes(out, this.outputLen); + this.finished = true; + this.iHash.digestInto(out); + this.oHash.update(out); + this.oHash.digestInto(out); + this.destroy(); + } + digest() { + const out = new Uint8Array(this.oHash.outputLen); + this.digestInto(out); + return out; + } + _cloneInto(to) { + // Create new instance without calling constructor since key already in state and we don't know it. + to || (to = Object.create(Object.getPrototypeOf(this), {})); + const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this; + to = to; + to.finished = finished; + to.destroyed = destroyed; + to.blockLen = blockLen; + to.outputLen = outputLen; + to.oHash = oHash._cloneInto(to.oHash); + to.iHash = iHash._cloneInto(to.iHash); + return to; + } + destroy() { + this.destroyed = true; + this.oHash.destroy(); + this.iHash.destroy(); + } + } + /** + * HMAC: RFC2104 message authentication code. + * @param hash - function that would be used e.g. sha256 + * @param key - message key + * @param message - message data + */ + const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest(); + hmac.create = (hash, key) => new HMAC(hash, key); + + // HKDF (RFC 5869) + // https://soatok.blog/2021/11/17/understanding-hkdf/ + /** + * HKDF-Extract(IKM, salt) -> PRK + * Arguments position differs from spec (IKM is first one, since it is not optional) + * @param hash + * @param ikm + * @param salt + * @returns + */ + function extract(hash, ikm, salt) { + assert.hash(hash); + // NOTE: some libraries treat zero-length array as 'not provided'; + // we don't, since we have undefined as 'not provided' + // https://github.com/RustCrypto/KDFs/issues/15 + if (salt === undefined) + salt = new Uint8Array(hash.outputLen); // if not provided, it is set to a string of HashLen zeros + return hmac(hash, toBytes(salt), toBytes(ikm)); + } + // HKDF-Expand(PRK, info, L) -> OKM + const HKDF_COUNTER = new Uint8Array([0]); + const EMPTY_BUFFER = new Uint8Array(); + /** + * HKDF-expand from the spec. + * @param prk - a pseudorandom key of at least HashLen octets (usually, the output from the extract step) + * @param info - optional context and application specific information (can be a zero-length string) + * @param length - length of output keying material in octets + */ + function expand(hash, prk, info, length = 32) { + assert.hash(hash); + assert.number(length); + if (length > 255 * hash.outputLen) + throw new Error('Length should be <= 255*HashLen'); + const blocks = Math.ceil(length / hash.outputLen); + if (info === undefined) + info = EMPTY_BUFFER; + // first L(ength) octets of T + const okm = new Uint8Array(blocks * hash.outputLen); + // Re-use HMAC instance between blocks + const HMAC = hmac.create(hash, prk); + const HMACTmp = HMAC._cloneInto(); + const T = new Uint8Array(HMAC.outputLen); + for (let counter = 0; counter < blocks; counter++) { + HKDF_COUNTER[0] = counter + 1; + // T(0) = empty string (zero length) + // T(N) = HMAC-Hash(PRK, T(N-1) | info | N) + HMACTmp.update(counter === 0 ? EMPTY_BUFFER : T) + .update(info) + .update(HKDF_COUNTER) + .digestInto(T); + okm.set(T, hash.outputLen * counter); + HMAC._cloneInto(HMACTmp); + } + HMAC.destroy(); + HMACTmp.destroy(); + T.fill(0); + HKDF_COUNTER.fill(0); + return okm.slice(0, length); + } + + var __defProp = Object.defineProperty; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + + // core.ts + var verifiedSymbol = Symbol("verified"); + var isRecord = (obj) => obj instanceof Object; + function validateEvent(event) { + if (!isRecord(event)) + return false; + if (typeof event.kind !== "number") + return false; + if (typeof event.content !== "string") + return false; + if (typeof event.created_at !== "number") + return false; + if (typeof event.pubkey !== "string") + return false; + if (!event.pubkey.match(/^[a-f0-9]{64}$/)) + return false; + if (!Array.isArray(event.tags)) + return false; + for (let i2 = 0; i2 < event.tags.length; i2++) { + let tag = event.tags[i2]; + if (!Array.isArray(tag)) + return false; + for (let j = 0; j < tag.length; j++) { + if (typeof tag[j] === "object") + return false; + } + } + return true; + } + + // utils.ts + var utils_exports = {}; + __export(utils_exports, { + Queue: () => Queue, + QueueNode: () => QueueNode, + binarySearch: () => binarySearch, + insertEventIntoAscendingList: () => insertEventIntoAscendingList, + insertEventIntoDescendingList: () => insertEventIntoDescendingList, + normalizeURL: () => normalizeURL, + utf8Decoder: () => utf8Decoder, + utf8Encoder: () => utf8Encoder + }); + var utf8Decoder = new TextDecoder("utf-8"); + var utf8Encoder = new TextEncoder(); + function normalizeURL(url) { + if (url.indexOf("://") === -1) + url = "wss://" + url; + let p = new URL(url); + p.pathname = p.pathname.replace(/\/+/g, "/"); + if (p.pathname.endsWith("/")) + p.pathname = p.pathname.slice(0, -1); + if (p.port === "80" && p.protocol === "ws:" || p.port === "443" && p.protocol === "wss:") + p.port = ""; + p.searchParams.sort(); + p.hash = ""; + return p.toString(); + } + function insertEventIntoDescendingList(sortedArray, event) { + const [idx, found] = binarySearch(sortedArray, (b) => { + if (event.id === b.id) + return 0; + if (event.created_at === b.created_at) + return -1; + return b.created_at - event.created_at; + }); + if (!found) { + sortedArray.splice(idx, 0, event); + } + return sortedArray; + } + function insertEventIntoAscendingList(sortedArray, event) { + const [idx, found] = binarySearch(sortedArray, (b) => { + if (event.id === b.id) + return 0; + if (event.created_at === b.created_at) + return -1; + return event.created_at - b.created_at; + }); + if (!found) { + sortedArray.splice(idx, 0, event); + } + return sortedArray; + } + function binarySearch(arr, compare) { + let start = 0; + let end = arr.length - 1; + while (start <= end) { + const mid = Math.floor((start + end) / 2); + const cmp = compare(arr[mid]); + if (cmp === 0) { + return [mid, true]; + } + if (cmp < 0) { + end = mid - 1; + } else { + start = mid + 1; + } + } + return [start, false]; + } + var QueueNode = class { + value; + next = null; + prev = null; + constructor(message) { + this.value = message; + } + }; + var Queue = class { + first; + last; + constructor() { + this.first = null; + this.last = null; + } + enqueue(value) { + const newNode = new QueueNode(value); + if (!this.last) { + this.first = newNode; + this.last = newNode; + } else if (this.last === this.first) { + this.last = newNode; + this.last.prev = this.first; + this.first.next = newNode; + } else { + newNode.prev = this.last; + this.last.next = newNode; + this.last = newNode; + } + return true; + } + dequeue() { + if (!this.first) + return null; + if (this.first === this.last) { + const target2 = this.first; + this.first = null; + this.last = null; + return target2.value; + } + const target = this.first; + this.first = target.next; + return target.value; + } + }; + + // pure.ts + var JS = class { + generateSecretKey() { + return schnorr.utils.randomPrivateKey(); + } + getPublicKey(secretKey) { + return bytesToHex(schnorr.getPublicKey(secretKey)); + } + finalizeEvent(t, secretKey) { + const event = t; + event.pubkey = bytesToHex(schnorr.getPublicKey(secretKey)); + event.id = getEventHash(event); + event.sig = bytesToHex(schnorr.sign(getEventHash(event), secretKey)); + event[verifiedSymbol] = true; + return event; + } + verifyEvent(event) { + if (typeof event[verifiedSymbol] === "boolean") + return event[verifiedSymbol]; + const hash = getEventHash(event); + if (hash !== event.id) { + event[verifiedSymbol] = false; + return false; + } + try { + const valid = schnorr.verify(event.sig, hash, event.pubkey); + event[verifiedSymbol] = valid; + return valid; + } catch (err) { + event[verifiedSymbol] = false; + return false; + } + } + }; + function serializeEvent(evt) { + if (!validateEvent(evt)) + throw new Error("can't serialize event with wrong or missing properties"); + return JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content]); + } + function getEventHash(event) { + let eventHash = sha256(utf8Encoder.encode(serializeEvent(event))); + return bytesToHex(eventHash); + } + var i = new JS(); + var generateSecretKey = i.generateSecretKey; + var getPublicKey = i.getPublicKey; + var finalizeEvent = i.finalizeEvent; + var verifyEvent = i.verifyEvent; + + // kinds.ts + var kinds_exports = {}; + __export(kinds_exports, { + Application: () => Application, + BadgeAward: () => BadgeAward, + BadgeDefinition: () => BadgeDefinition, + BlockedRelaysList: () => BlockedRelaysList, + BookmarkList: () => BookmarkList, + Bookmarksets: () => Bookmarksets, + Calendar: () => Calendar, + CalendarEventRSVP: () => CalendarEventRSVP, + ChannelCreation: () => ChannelCreation, + ChannelHideMessage: () => ChannelHideMessage, + ChannelMessage: () => ChannelMessage, + ChannelMetadata: () => ChannelMetadata, + ChannelMuteUser: () => ChannelMuteUser, + ClassifiedListing: () => ClassifiedListing, + ClientAuth: () => ClientAuth, + CommunitiesList: () => CommunitiesList, + CommunityDefinition: () => CommunityDefinition, + CommunityPostApproval: () => CommunityPostApproval, + Contacts: () => Contacts, + CreateOrUpdateProduct: () => CreateOrUpdateProduct, + CreateOrUpdateStall: () => CreateOrUpdateStall, + Curationsets: () => Curationsets, + Date: () => Date2, + DraftClassifiedListing: () => DraftClassifiedListing, + DraftLong: () => DraftLong, + Emojisets: () => Emojisets, + EncryptedDirectMessage: () => EncryptedDirectMessage, + EncryptedDirectMessages: () => EncryptedDirectMessages, + EventDeletion: () => EventDeletion, + FileMetadata: () => FileMetadata, + FileServerPreference: () => FileServerPreference, + Followsets: () => Followsets, + GenericRepost: () => GenericRepost, + Genericlists: () => Genericlists, + HTTPAuth: () => HTTPAuth, + Handlerinformation: () => Handlerinformation, + Handlerrecommendation: () => Handlerrecommendation, + Highlights: () => Highlights, + InterestsList: () => InterestsList, + Interestsets: () => Interestsets, + JobFeedback: () => JobFeedback, + JobRequest: () => JobRequest, + JobResult: () => JobResult, + Label: () => Label, + LightningPubRPC: () => LightningPubRPC, + LiveChatMessage: () => LiveChatMessage, + LiveEvent: () => LiveEvent, + LongFormArticle: () => LongFormArticle, + Metadata: () => Metadata, + Mutelist: () => Mutelist, + NWCWalletInfo: () => NWCWalletInfo, + NWCWalletRequest: () => NWCWalletRequest, + NWCWalletResponse: () => NWCWalletResponse, + NostrConnect: () => NostrConnect, + OpenTimestamps: () => OpenTimestamps, + Pinlist: () => Pinlist, + ProblemTracker: () => ProblemTracker, + ProfileBadges: () => ProfileBadges, + PublicChatsList: () => PublicChatsList, + Reaction: () => Reaction, + RecommendRelay: () => RecommendRelay, + RelayList: () => RelayList, + Relaysets: () => Relaysets, + Report: () => Report, + Reporting: () => Reporting, + Repost: () => Repost, + SearchRelaysList: () => SearchRelaysList, + ShortTextNote: () => ShortTextNote, + Time: () => Time, + UserEmojiList: () => UserEmojiList, + UserStatuses: () => UserStatuses, + Zap: () => Zap, + ZapGoal: () => ZapGoal, + ZapRequest: () => ZapRequest, + classifyKind: () => classifyKind, + isEphemeralKind: () => isEphemeralKind, + isParameterizedReplaceableKind: () => isParameterizedReplaceableKind, + isRegularKind: () => isRegularKind, + isReplaceableKind: () => isReplaceableKind + }); + function isRegularKind(kind) { + return 1e3 <= kind && kind < 1e4 || [1, 2, 4, 5, 6, 7, 8, 16, 40, 41, 42, 43, 44].includes(kind); + } + function isReplaceableKind(kind) { + return [0, 3].includes(kind) || 1e4 <= kind && kind < 2e4; + } + function isEphemeralKind(kind) { + return 2e4 <= kind && kind < 3e4; + } + function isParameterizedReplaceableKind(kind) { + return 3e4 <= kind && kind < 4e4; + } + function classifyKind(kind) { + if (isRegularKind(kind)) + return "regular"; + if (isReplaceableKind(kind)) + return "replaceable"; + if (isEphemeralKind(kind)) + return "ephemeral"; + if (isParameterizedReplaceableKind(kind)) + return "parameterized"; + return "unknown"; + } + var Metadata = 0; + var ShortTextNote = 1; + var RecommendRelay = 2; + var Contacts = 3; + var EncryptedDirectMessage = 4; + var EncryptedDirectMessages = 4; + var EventDeletion = 5; + var Repost = 6; + var Reaction = 7; + var BadgeAward = 8; + var GenericRepost = 16; + var ChannelCreation = 40; + var ChannelMetadata = 41; + var ChannelMessage = 42; + var ChannelHideMessage = 43; + var ChannelMuteUser = 44; + var OpenTimestamps = 1040; + var FileMetadata = 1063; + var LiveChatMessage = 1311; + var ProblemTracker = 1971; + var Report = 1984; + var Reporting = 1984; + var Label = 1985; + var CommunityPostApproval = 4550; + var JobRequest = 5999; + var JobResult = 6999; + var JobFeedback = 7e3; + var ZapGoal = 9041; + var ZapRequest = 9734; + var Zap = 9735; + var Highlights = 9802; + var Mutelist = 1e4; + var Pinlist = 10001; + var RelayList = 10002; + var BookmarkList = 10003; + var CommunitiesList = 10004; + var PublicChatsList = 10005; + var BlockedRelaysList = 10006; + var SearchRelaysList = 10007; + var InterestsList = 10015; + var UserEmojiList = 10030; + var FileServerPreference = 10096; + var NWCWalletInfo = 13194; + var LightningPubRPC = 21e3; + var ClientAuth = 22242; + var NWCWalletRequest = 23194; + var NWCWalletResponse = 23195; + var NostrConnect = 24133; + var HTTPAuth = 27235; + var Followsets = 3e4; + var Genericlists = 30001; + var Relaysets = 30002; + var Bookmarksets = 30003; + var Curationsets = 30004; + var ProfileBadges = 30008; + var BadgeDefinition = 30009; + var Interestsets = 30015; + var CreateOrUpdateStall = 30017; + var CreateOrUpdateProduct = 30018; + var LongFormArticle = 30023; + var DraftLong = 30024; + var Emojisets = 30030; + var Application = 30078; + var LiveEvent = 30311; + var UserStatuses = 30315; + var ClassifiedListing = 30402; + var DraftClassifiedListing = 30403; + var Date2 = 31922; + var Time = 31923; + var Calendar = 31924; + var CalendarEventRSVP = 31925; + var Handlerrecommendation = 31989; + var Handlerinformation = 31990; + var CommunityDefinition = 34550; + + // filter.ts + function matchFilter(filter, event) { + if (filter.ids && filter.ids.indexOf(event.id) === -1) { + return false; + } + if (filter.kinds && filter.kinds.indexOf(event.kind) === -1) { + return false; + } + if (filter.authors && filter.authors.indexOf(event.pubkey) === -1) { + return false; + } + for (let f in filter) { + if (f[0] === "#") { + let tagName = f.slice(1); + let values = filter[`#${tagName}`]; + if (values && !event.tags.find(([t, v]) => t === f.slice(1) && values.indexOf(v) !== -1)) + return false; + } + } + if (filter.since && event.created_at < filter.since) + return false; + if (filter.until && event.created_at > filter.until) + return false; + return true; + } + function matchFilters(filters, event) { + for (let i2 = 0; i2 < filters.length; i2++) { + if (matchFilter(filters[i2], event)) { + return true; + } + } + return false; + } + + // fakejson.ts + var fakejson_exports = {}; + __export(fakejson_exports, { + getHex64: () => getHex64, + getInt: () => getInt, + getSubscriptionId: () => getSubscriptionId, + matchEventId: () => matchEventId, + matchEventKind: () => matchEventKind, + matchEventPubkey: () => matchEventPubkey + }); + function getHex64(json, field) { + let len = field.length + 3; + let idx = json.indexOf(`"${field}":`) + len; + let s = json.slice(idx).indexOf(`"`) + idx + 1; + return json.slice(s, s + 64); + } + function getInt(json, field) { + let len = field.length; + let idx = json.indexOf(`"${field}":`) + len + 3; + let sliced = json.slice(idx); + let end = Math.min(sliced.indexOf(","), sliced.indexOf("}")); + return parseInt(sliced.slice(0, end), 10); + } + function getSubscriptionId(json) { + let idx = json.slice(0, 22).indexOf(`"EVENT"`); + if (idx === -1) + return null; + let pstart = json.slice(idx + 7 + 1).indexOf(`"`); + if (pstart === -1) + return null; + let start = idx + 7 + 1 + pstart; + let pend = json.slice(start + 1, 80).indexOf(`"`); + if (pend === -1) + return null; + let end = start + 1 + pend; + return json.slice(start + 1, end); + } + function matchEventId(json, id) { + return id === getHex64(json, "id"); + } + function matchEventPubkey(json, pubkey) { + return pubkey === getHex64(json, "pubkey"); + } + function matchEventKind(json, kind) { + return kind === getInt(json, "kind"); + } + + // nip42.ts + var nip42_exports = {}; + __export(nip42_exports, { + makeAuthEvent: () => makeAuthEvent + }); + function makeAuthEvent(relayURL, challenge) { + return { + kind: ClientAuth, + created_at: Math.floor(Date.now() / 1e3), + tags: [ + ["relay", relayURL], + ["challenge", challenge] + ], + content: "" + }; + } + + // helpers.ts + async function yieldThread() { + return new Promise((resolve) => { + const ch = new MessageChannel(); + const handler = () => { + ch.port1.removeEventListener("message", handler); + resolve(); + }; + ch.port1.addEventListener("message", handler); + ch.port2.postMessage(0); + ch.port1.start(); + }); + } + var alwaysTrue = (t) => { + t[verifiedSymbol] = true; + return true; + }; + + // abstract-relay.ts + var AbstractRelay = class { + url; + _connected = false; + onclose = null; + onnotice = (msg) => console.debug(`NOTICE from ${this.url}: ${msg}`); + _onauth = null; + baseEoseTimeout = 4400; + connectionTimeout = 4400; + openSubs = /* @__PURE__ */ new Map(); + connectionTimeoutHandle; + connectionPromise; + openCountRequests = /* @__PURE__ */ new Map(); + openEventPublishes = /* @__PURE__ */ new Map(); + ws; + incomingMessageQueue = new Queue(); + queueRunning = false; + challenge; + serial = 0; + verifyEvent; + _WebSocket; + constructor(url, opts) { + this.url = normalizeURL(url); + this.verifyEvent = opts.verifyEvent; + this._WebSocket = opts.websocketImplementation || WebSocket; + } + static async connect(url, opts) { + const relay = new AbstractRelay(url, opts); + await relay.connect(); + return relay; + } + closeAllSubscriptions(reason) { + for (let [_, sub] of this.openSubs) { + sub.close(reason); + } + this.openSubs.clear(); + for (let [_, ep] of this.openEventPublishes) { + ep.reject(new Error(reason)); + } + this.openEventPublishes.clear(); + for (let [_, cr] of this.openCountRequests) { + cr.reject(new Error(reason)); + } + this.openCountRequests.clear(); + } + get connected() { + return this._connected; + } + async connect() { + if (this.connectionPromise) + return this.connectionPromise; + this.challenge = void 0; + this.connectionPromise = new Promise((resolve, reject) => { + this.connectionTimeoutHandle = setTimeout(() => { + reject("connection timed out"); + this.connectionPromise = void 0; + this.onclose?.(); + this.closeAllSubscriptions("relay connection timed out"); + }, this.connectionTimeout); + try { + this.ws = new this._WebSocket(this.url); + } catch (err) { + reject(err); + return; + } + this.ws.onopen = () => { + clearTimeout(this.connectionTimeoutHandle); + this._connected = true; + resolve(); + }; + this.ws.onerror = (ev) => { + reject(ev.message || "websocket error"); + if (this._connected) { + this._connected = false; + this.connectionPromise = void 0; + this.onclose?.(); + this.closeAllSubscriptions("relay connection errored"); + } + }; + this.ws.onclose = async () => { + if (this._connected) { + this._connected = false; + this.connectionPromise = void 0; + this.onclose?.(); + this.closeAllSubscriptions("relay connection closed"); + } + }; + this.ws.onmessage = this._onmessage.bind(this); + }); + return this.connectionPromise; + } + async runQueue() { + this.queueRunning = true; + while (true) { + if (false === this.handleNext()) { + break; + } + await yieldThread(); + } + this.queueRunning = false; + } + handleNext() { + const json = this.incomingMessageQueue.dequeue(); + if (!json) { + return false; + } + const subid = getSubscriptionId(json); + if (subid) { + const so = this.openSubs.get(subid); + if (!so) { + return; + } + const id = getHex64(json, "id"); + const alreadyHave = so.alreadyHaveEvent?.(id); + so.receivedEvent?.(this, id); + if (alreadyHave) { + return; + } + } + try { + let data = JSON.parse(json); + switch (data[0]) { + case "EVENT": { + const so = this.openSubs.get(data[1]); + const event = data[2]; + if (this.verifyEvent(event) && matchFilters(so.filters, event)) { + so.onevent(event); + } + return; + } + case "COUNT": { + const id = data[1]; + const payload = data[2]; + const cr = this.openCountRequests.get(id); + if (cr) { + cr.resolve(payload.count); + this.openCountRequests.delete(id); + } + return; + } + case "EOSE": { + const so = this.openSubs.get(data[1]); + if (!so) + return; + so.receivedEose(); + return; + } + case "OK": { + const id = data[1]; + const ok = data[2]; + const reason = data[3]; + const ep = this.openEventPublishes.get(id); + if (ok) + ep.resolve(reason); + else + ep.reject(new Error(reason)); + this.openEventPublishes.delete(id); + return; + } + case "CLOSED": { + const id = data[1]; + const so = this.openSubs.get(id); + if (!so) + return; + so.closed = true; + so.close(data[2]); + return; + } + case "NOTICE": + this.onnotice(data[1]); + return; + case "AUTH": { + this.challenge = data[1]; + this._onauth?.(data[1]); + return; + } + } + } catch (err) { + return; + } + } + async send(message) { + if (!this.connectionPromise) + throw new Error("sending on closed connection"); + this.connectionPromise.then(() => { + this.ws?.send(message); + }); + } + async auth(signAuthEvent) { + if (!this.challenge) + throw new Error("can't perform auth, no challenge was received"); + const evt = await signAuthEvent(makeAuthEvent(this.url, this.challenge)); + const ret = new Promise((resolve, reject) => { + this.openEventPublishes.set(evt.id, { resolve, reject }); + }); + this.send('["AUTH",' + JSON.stringify(evt) + "]"); + return ret; + } + async publish(event) { + const ret = new Promise((resolve, reject) => { + this.openEventPublishes.set(event.id, { resolve, reject }); + }); + this.send('["EVENT",' + JSON.stringify(event) + "]"); + return ret; + } + async count(filters, params) { + this.serial++; + const id = params?.id || "count:" + this.serial; + const ret = new Promise((resolve, reject) => { + this.openCountRequests.set(id, { resolve, reject }); + }); + this.send('["COUNT","' + id + '",' + JSON.stringify(filters).substring(1)); + return ret; + } + subscribe(filters, params) { + const subscription = this.prepareSubscription(filters, params); + subscription.fire(); + return subscription; + } + prepareSubscription(filters, params) { + this.serial++; + const id = params.id || "sub:" + this.serial; + const subscription = new Subscription$1(this, id, filters, params); + this.openSubs.set(id, subscription); + return subscription; + } + close() { + this.closeAllSubscriptions("relay connection closed by us"); + this._connected = false; + this.ws?.close(); + } + _onmessage(ev) { + this.incomingMessageQueue.enqueue(ev.data); + if (!this.queueRunning) { + this.runQueue(); + } + } + }; + var Subscription$1 = class Subscription { + relay; + id; + closed = false; + eosed = false; + filters; + alreadyHaveEvent; + receivedEvent; + onevent; + oneose; + onclose; + eoseTimeout; + eoseTimeoutHandle; + constructor(relay, id, filters, params) { + this.relay = relay; + this.filters = filters; + this.id = id; + this.alreadyHaveEvent = params.alreadyHaveEvent; + this.receivedEvent = params.receivedEvent; + this.eoseTimeout = params.eoseTimeout || relay.baseEoseTimeout; + this.oneose = params.oneose; + this.onclose = params.onclose; + this.onevent = params.onevent || ((event) => { + console.warn( + `onevent() callback not defined for subscription '${this.id}' in relay ${this.relay.url}. event received:`, + event + ); + }); + } + fire() { + this.relay.send('["REQ","' + this.id + '",' + JSON.stringify(this.filters).substring(1)); + this.eoseTimeoutHandle = setTimeout(this.receivedEose.bind(this), this.eoseTimeout); + } + receivedEose() { + if (this.eosed) + return; + clearTimeout(this.eoseTimeoutHandle); + this.eosed = true; + this.oneose?.(); + } + close(reason = "closed by caller") { + if (!this.closed && this.relay.connected) { + this.relay.send('["CLOSE",' + JSON.stringify(this.id) + "]"); + this.closed = true; + } + this.relay.openSubs.delete(this.id); + this.onclose?.(reason); + } + }; + + // relay.ts + var _WebSocket; + try { + _WebSocket = WebSocket; + } catch { + } + + // abstract-pool.ts + var AbstractSimplePool = class { + relays = /* @__PURE__ */ new Map(); + seenOn = /* @__PURE__ */ new Map(); + trackRelays = false; + verifyEvent; + trustedRelayURLs = /* @__PURE__ */ new Set(); + _WebSocket; + constructor(opts) { + this.verifyEvent = opts.verifyEvent; + this._WebSocket = opts.websocketImplementation; + } + async ensureRelay(url, params) { + url = normalizeURL(url); + let relay = this.relays.get(url); + if (!relay) { + relay = new AbstractRelay(url, { + verifyEvent: this.trustedRelayURLs.has(url) ? alwaysTrue : this.verifyEvent, + websocketImplementation: this._WebSocket + }); + if (params?.connectionTimeout) + relay.connectionTimeout = params.connectionTimeout; + this.relays.set(url, relay); + } + await relay.connect(); + return relay; + } + close(relays) { + relays.map(normalizeURL).forEach((url) => { + this.relays.get(url)?.close(); + }); + } + subscribeMany(relays, filters, params) { + return this.subscribeManyMap(Object.fromEntries(relays.map((url) => [url, filters])), params); + } + subscribeManyMap(requests, params) { + if (this.trackRelays) { + params.receivedEvent = (relay, id) => { + let set = this.seenOn.get(id); + if (!set) { + set = /* @__PURE__ */ new Set(); + this.seenOn.set(id, set); + } + set.add(relay); + }; + } + const _knownIds = /* @__PURE__ */ new Set(); + const subs = []; + const relaysLength = Object.keys(requests).length; + const eosesReceived = []; + let handleEose = (i2) => { + eosesReceived[i2] = true; + if (eosesReceived.filter((a) => a).length === relaysLength) { + params.oneose?.(); + handleEose = () => { + }; + } + }; + const closesReceived = []; + let handleClose = (i2, reason) => { + handleEose(i2); + closesReceived[i2] = reason; + if (closesReceived.filter((a) => a).length === relaysLength) { + params.onclose?.(closesReceived); + handleClose = () => { + }; + } + }; + const localAlreadyHaveEventHandler = (id) => { + if (params.alreadyHaveEvent?.(id)) { + return true; + } + const have = _knownIds.has(id); + _knownIds.add(id); + return have; + }; + const allOpened = Promise.all( + Object.entries(requests).map(async (req, i2, arr) => { + if (arr.indexOf(req) !== i2) { + handleClose(i2, "duplicate url"); + return; + } + let [url, filters] = req; + url = normalizeURL(url); + let relay; + try { + relay = await this.ensureRelay(url, { + connectionTimeout: params.maxWait ? Math.max(params.maxWait * 0.8, params.maxWait - 1e3) : void 0 + }); + } catch (err) { + handleClose(i2, err?.message || String(err)); + return; + } + let subscription = relay.subscribe(filters, { + ...params, + oneose: () => handleEose(i2), + onclose: (reason) => handleClose(i2, reason), + alreadyHaveEvent: localAlreadyHaveEventHandler, + eoseTimeout: params.maxWait + }); + subs.push(subscription); + }) + ); + return { + async close() { + await allOpened; + subs.forEach((sub) => { + sub.close(); + }); + } + }; + } + subscribeManyEose(relays, filters, params) { + const subcloser = this.subscribeMany(relays, filters, { + ...params, + oneose() { + subcloser.close(); + } + }); + return subcloser; + } + async querySync(relays, filter, params) { + return new Promise(async (resolve) => { + const events = []; + this.subscribeManyEose(relays, [filter], { + ...params, + onevent(event) { + events.push(event); + }, + onclose(_) { + resolve(events); + } + }); + }); + } + async get(relays, filter, params) { + filter.limit = 1; + const events = await this.querySync(relays, filter, params); + events.sort((a, b) => b.created_at - a.created_at); + return events[0] || null; + } + publish(relays, event) { + return relays.map(normalizeURL).map(async (url, i2, arr) => { + if (arr.indexOf(url) !== i2) { + return Promise.reject("duplicate url"); + } + let r = await this.ensureRelay(url); + return r.publish(event); + }); + } + listConnectionStatus() { + const map = /* @__PURE__ */ new Map(); + this.relays.forEach((relay, url) => map.set(url, relay.connected)); + return map; + } + destroy() { + this.relays.forEach((conn) => conn.close()); + this.relays = /* @__PURE__ */ new Map(); + } + }; + + // pool.ts + var _WebSocket2; + try { + _WebSocket2 = WebSocket; + } catch { + } + var SimplePool = class extends AbstractSimplePool { + constructor() { + super({ verifyEvent, websocketImplementation: _WebSocket2 }); + } + }; + + // nip19.ts + var nip19_exports = {}; + __export(nip19_exports, { + BECH32_REGEX: () => BECH32_REGEX, + Bech32MaxSize: () => Bech32MaxSize, + decode: () => decode, + encodeBytes: () => encodeBytes, + naddrEncode: () => naddrEncode, + neventEncode: () => neventEncode, + noteEncode: () => noteEncode, + nprofileEncode: () => nprofileEncode, + npubEncode: () => npubEncode, + nrelayEncode: () => nrelayEncode, + nsecEncode: () => nsecEncode + }); + var Bech32MaxSize = 5e3; + var BECH32_REGEX = /[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/; + function integerToUint8Array(number) { + const uint8Array = new Uint8Array(4); + uint8Array[0] = number >> 24 & 255; + uint8Array[1] = number >> 16 & 255; + uint8Array[2] = number >> 8 & 255; + uint8Array[3] = number & 255; + return uint8Array; + } + function decode(nip19) { + let { prefix, words } = bech32.decode(nip19, Bech32MaxSize); + let data = new Uint8Array(bech32.fromWords(words)); + switch (prefix) { + case "nprofile": { + let tlv = parseTLV(data); + if (!tlv[0]?.[0]) + throw new Error("missing TLV 0 for nprofile"); + if (tlv[0][0].length !== 32) + throw new Error("TLV 0 should be 32 bytes"); + return { + type: "nprofile", + data: { + pubkey: bytesToHex(tlv[0][0]), + relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : [] + } + }; + } + case "nevent": { + let tlv = parseTLV(data); + if (!tlv[0]?.[0]) + throw new Error("missing TLV 0 for nevent"); + if (tlv[0][0].length !== 32) + throw new Error("TLV 0 should be 32 bytes"); + if (tlv[2] && tlv[2][0].length !== 32) + throw new Error("TLV 2 should be 32 bytes"); + if (tlv[3] && tlv[3][0].length !== 4) + throw new Error("TLV 3 should be 4 bytes"); + return { + type: "nevent", + data: { + id: bytesToHex(tlv[0][0]), + relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : [], + author: tlv[2]?.[0] ? bytesToHex(tlv[2][0]) : void 0, + kind: tlv[3]?.[0] ? parseInt(bytesToHex(tlv[3][0]), 16) : void 0 + } + }; + } + case "naddr": { + let tlv = parseTLV(data); + if (!tlv[0]?.[0]) + throw new Error("missing TLV 0 for naddr"); + if (!tlv[2]?.[0]) + throw new Error("missing TLV 2 for naddr"); + if (tlv[2][0].length !== 32) + throw new Error("TLV 2 should be 32 bytes"); + if (!tlv[3]?.[0]) + throw new Error("missing TLV 3 for naddr"); + if (tlv[3][0].length !== 4) + throw new Error("TLV 3 should be 4 bytes"); + return { + type: "naddr", + data: { + identifier: utf8Decoder.decode(tlv[0][0]), + pubkey: bytesToHex(tlv[2][0]), + kind: parseInt(bytesToHex(tlv[3][0]), 16), + relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : [] + } + }; + } + case "nrelay": { + let tlv = parseTLV(data); + if (!tlv[0]?.[0]) + throw new Error("missing TLV 0 for nrelay"); + return { + type: "nrelay", + data: utf8Decoder.decode(tlv[0][0]) + }; + } + case "nsec": + return { type: prefix, data }; + case "npub": + case "note": + return { type: prefix, data: bytesToHex(data) }; + default: + throw new Error(`unknown prefix ${prefix}`); + } + } + function parseTLV(data) { + let result = {}; + let rest = data; + while (rest.length > 0) { + let t = rest[0]; + let l = rest[1]; + let v = rest.slice(2, 2 + l); + rest = rest.slice(2 + l); + if (v.length < l) + throw new Error(`not enough data to read on TLV ${t}`); + result[t] = result[t] || []; + result[t].push(v); + } + return result; + } + function nsecEncode(key) { + return encodeBytes("nsec", key); + } + function npubEncode(hex) { + return encodeBytes("npub", hexToBytes(hex)); + } + function noteEncode(hex) { + return encodeBytes("note", hexToBytes(hex)); + } + function encodeBech32(prefix, data) { + let words = bech32.toWords(data); + return bech32.encode(prefix, words, Bech32MaxSize); + } + function encodeBytes(prefix, bytes) { + return encodeBech32(prefix, bytes); + } + function nprofileEncode(profile) { + let data = encodeTLV({ + 0: [hexToBytes(profile.pubkey)], + 1: (profile.relays || []).map((url) => utf8Encoder.encode(url)) + }); + return encodeBech32("nprofile", data); + } + function neventEncode(event) { + let kindArray; + if (event.kind !== void 0) { + kindArray = integerToUint8Array(event.kind); + } + let data = encodeTLV({ + 0: [hexToBytes(event.id)], + 1: (event.relays || []).map((url) => utf8Encoder.encode(url)), + 2: event.author ? [hexToBytes(event.author)] : [], + 3: kindArray ? [new Uint8Array(kindArray)] : [] + }); + return encodeBech32("nevent", data); + } + function naddrEncode(addr) { + let kind = new ArrayBuffer(4); + new DataView(kind).setUint32(0, addr.kind, false); + let data = encodeTLV({ + 0: [utf8Encoder.encode(addr.identifier)], + 1: (addr.relays || []).map((url) => utf8Encoder.encode(url)), + 2: [hexToBytes(addr.pubkey)], + 3: [new Uint8Array(kind)] + }); + return encodeBech32("naddr", data); + } + function nrelayEncode(url) { + let data = encodeTLV({ + 0: [utf8Encoder.encode(url)] + }); + return encodeBech32("nrelay", data); + } + function encodeTLV(tlv) { + let entries = []; + Object.entries(tlv).reverse().forEach(([t, vs]) => { + vs.forEach((v) => { + let entry = new Uint8Array(v.length + 2); + entry.set([parseInt(t)], 0); + entry.set([v.length], 1); + entry.set(v, 2); + entries.push(entry); + }); + }); + return concatBytes(...entries); + } + + // nip04.ts + var nip04_exports = {}; + __export(nip04_exports, { + decrypt: () => decrypt, + encrypt: () => encrypt + }); + async function encrypt(secretKey, pubkey, text) { + const privkey = secretKey instanceof Uint8Array ? bytesToHex(secretKey) : secretKey; + const key = secp256k1.getSharedSecret(privkey, "02" + pubkey); + const normalizedKey = getNormalizedX(key); + let iv = Uint8Array.from(randomBytes(16)); + let plaintext = utf8Encoder.encode(text); + let ciphertext = cbc(normalizedKey, iv).encrypt(plaintext); + let ctb64 = base64.encode(new Uint8Array(ciphertext)); + let ivb64 = base64.encode(new Uint8Array(iv.buffer)); + return `${ctb64}?iv=${ivb64}`; + } + async function decrypt(secretKey, pubkey, data) { + const privkey = secretKey instanceof Uint8Array ? bytesToHex(secretKey) : secretKey; + let [ctb64, ivb64] = data.split("?iv="); + let key = secp256k1.getSharedSecret(privkey, "02" + pubkey); + let normalizedKey = getNormalizedX(key); + let iv = base64.decode(ivb64); + let ciphertext = base64.decode(ctb64); + let plaintext = cbc(normalizedKey, iv).decrypt(ciphertext); + return utf8Decoder.decode(plaintext); + } + function getNormalizedX(key) { + return key.slice(1, 33); + } + + // nip05.ts + var nip05_exports = {}; + __export(nip05_exports, { + NIP05_REGEX: () => NIP05_REGEX, + isValid: () => isValid, + queryProfile: () => queryProfile, + searchDomain: () => searchDomain, + useFetchImplementation: () => useFetchImplementation + }); + var NIP05_REGEX = /^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/; + var _fetch; + try { + _fetch = fetch; + } catch { + } + function useFetchImplementation(fetchImplementation) { + _fetch = fetchImplementation; + } + async function searchDomain(domain, query = "") { + try { + const url = `https://${domain}/.well-known/nostr.json?name=${query}`; + const res = await _fetch(url, { redirect: "error" }); + const json = await res.json(); + return json.names; + } catch (_) { + return {}; + } + } + async function queryProfile(fullname) { + const match = fullname.match(NIP05_REGEX); + if (!match) + return null; + const [_, name = "_", domain] = match; + try { + const url = `https://${domain}/.well-known/nostr.json?name=${name}`; + const res = await (await _fetch(url, { redirect: "error" })).json(); + let pubkey = res.names[name]; + return pubkey ? { pubkey, relays: res.relays?.[pubkey] } : null; + } catch (_e) { + return null; + } + } + async function isValid(pubkey, nip05) { + let res = await queryProfile(nip05); + return res ? res.pubkey === pubkey : false; + } + + // nip10.ts + var nip10_exports = {}; + __export(nip10_exports, { + parse: () => parse + }); + function parse(event) { + const result = { + reply: void 0, + root: void 0, + mentions: [], + profiles: [] + }; + const eTags = []; + for (const tag of event.tags) { + if (tag[0] === "e" && tag[1]) { + eTags.push(tag); + } + if (tag[0] === "p" && tag[1]) { + result.profiles.push({ + pubkey: tag[1], + relays: tag[2] ? [tag[2]] : [] + }); + } + } + for (let eTagIndex = 0; eTagIndex < eTags.length; eTagIndex++) { + const eTag = eTags[eTagIndex]; + const [_, eTagEventId, eTagRelayUrl, eTagMarker] = eTag; + const eventPointer = { + id: eTagEventId, + relays: eTagRelayUrl ? [eTagRelayUrl] : [] + }; + const isFirstETag = eTagIndex === 0; + const isLastETag = eTagIndex === eTags.length - 1; + if (eTagMarker === "root") { + result.root = eventPointer; + continue; + } + if (eTagMarker === "reply") { + result.reply = eventPointer; + continue; + } + if (eTagMarker === "mention") { + result.mentions.push(eventPointer); + continue; + } + if (isFirstETag) { + result.root = eventPointer; + continue; + } + if (isLastETag) { + result.reply = eventPointer; + continue; + } + result.mentions.push(eventPointer); + } + return result; + } + + // nip11.ts + var nip11_exports = {}; + __export(nip11_exports, { + fetchRelayInformation: () => fetchRelayInformation, + useFetchImplementation: () => useFetchImplementation2 + }); + var _fetch2; + try { + _fetch2 = fetch; + } catch { + } + function useFetchImplementation2(fetchImplementation) { + _fetch2 = fetchImplementation; + } + async function fetchRelayInformation(url) { + return await (await fetch(url.replace("ws://", "http://").replace("wss://", "https://"), { + headers: { Accept: "application/nostr+json" } + })).json(); + } + + // nip13.ts + var nip13_exports = {}; + __export(nip13_exports, { + getPow: () => getPow$1, + minePow: () => minePow + }); + function getPow$1(hex) { + let count = 0; + for (let i2 = 0; i2 < hex.length; i2++) { + const nibble = parseInt(hex[i2], 16); + if (nibble === 0) { + count += 4; + } else { + count += Math.clz32(nibble) - 28; + break; + } + } + return count; + } + function minePow(unsigned, difficulty) { + let count = 0; + const event = unsigned; + const tag = ["nonce", count.toString(), difficulty.toString()]; + event.tags.push(tag); + while (true) { + const now = Math.floor(new Date().getTime() / 1e3); + if (now !== event.created_at) { + count = 0; + event.created_at = now; + } + tag[1] = (++count).toString(); + event.id = getEventHash(event); + if (getPow$1(event.id) >= difficulty) { + break; + } + } + return event; + } + + // nip18.ts + var nip18_exports = {}; + __export(nip18_exports, { + finishRepostEvent: () => finishRepostEvent, + getRepostedEvent: () => getRepostedEvent, + getRepostedEventPointer: () => getRepostedEventPointer + }); + function finishRepostEvent(t, reposted, relayUrl, privateKey) { + return finalizeEvent( + { + kind: Repost, + tags: [...t.tags ?? [], ["e", reposted.id, relayUrl], ["p", reposted.pubkey]], + content: t.content === "" ? "" : JSON.stringify(reposted), + created_at: t.created_at + }, + privateKey + ); + } + function getRepostedEventPointer(event) { + if (event.kind !== Repost) { + return void 0; + } + let lastETag; + let lastPTag; + for (let i2 = event.tags.length - 1; i2 >= 0 && (lastETag === void 0 || lastPTag === void 0); i2--) { + const tag = event.tags[i2]; + if (tag.length >= 2) { + if (tag[0] === "e" && lastETag === void 0) { + lastETag = tag; + } else if (tag[0] === "p" && lastPTag === void 0) { + lastPTag = tag; + } + } + } + if (lastETag === void 0) { + return void 0; + } + return { + id: lastETag[1], + relays: [lastETag[2], lastPTag?.[2]].filter((x) => typeof x === "string"), + author: lastPTag?.[1] + }; + } + function getRepostedEvent(event, { skipVerification } = {}) { + const pointer = getRepostedEventPointer(event); + if (pointer === void 0 || event.content === "") { + return void 0; + } + let repostedEvent; + try { + repostedEvent = JSON.parse(event.content); + } catch (error) { + return void 0; + } + if (repostedEvent.id !== pointer.id) { + return void 0; + } + if (!skipVerification && !verifyEvent(repostedEvent)) { + return void 0; + } + return repostedEvent; + } + + // nip21.ts + var nip21_exports = {}; + __export(nip21_exports, { + NOSTR_URI_REGEX: () => NOSTR_URI_REGEX, + parse: () => parse2, + test: () => test + }); + var NOSTR_URI_REGEX = new RegExp(`nostr:(${BECH32_REGEX.source})`); + function test(value) { + return typeof value === "string" && new RegExp(`^${NOSTR_URI_REGEX.source}$`).test(value); + } + function parse2(uri) { + const match = uri.match(new RegExp(`^${NOSTR_URI_REGEX.source}$`)); + if (!match) + throw new Error(`Invalid Nostr URI: ${uri}`); + return { + uri: match[0], + value: match[1], + decoded: decode(match[1]) + }; + } + + // nip25.ts + var nip25_exports = {}; + __export(nip25_exports, { + finishReactionEvent: () => finishReactionEvent, + getReactedEventPointer: () => getReactedEventPointer + }); + function finishReactionEvent(t, reacted, privateKey) { + const inheritedTags = reacted.tags.filter((tag) => tag.length >= 2 && (tag[0] === "e" || tag[0] === "p")); + return finalizeEvent( + { + ...t, + kind: Reaction, + tags: [...t.tags ?? [], ...inheritedTags, ["e", reacted.id], ["p", reacted.pubkey]], + content: t.content ?? "+" + }, + privateKey + ); + } + function getReactedEventPointer(event) { + if (event.kind !== Reaction) { + return void 0; + } + let lastETag; + let lastPTag; + for (let i2 = event.tags.length - 1; i2 >= 0 && (lastETag === void 0 || lastPTag === void 0); i2--) { + const tag = event.tags[i2]; + if (tag.length >= 2) { + if (tag[0] === "e" && lastETag === void 0) { + lastETag = tag; + } else if (tag[0] === "p" && lastPTag === void 0) { + lastPTag = tag; + } + } + } + if (lastETag === void 0 || lastPTag === void 0) { + return void 0; + } + return { + id: lastETag[1], + relays: [lastETag[2], lastPTag[2]].filter((x) => x !== void 0), + author: lastPTag[1] + }; + } + + // nip27.ts + var nip27_exports = {}; + __export(nip27_exports, { + matchAll: () => matchAll, + regex: () => regex, + replaceAll: () => replaceAll + }); + var regex = () => new RegExp(`\\b${NOSTR_URI_REGEX.source}\\b`, "g"); + function* matchAll(content) { + const matches = content.matchAll(regex()); + for (const match of matches) { + try { + const [uri, value] = match; + yield { + uri, + value, + decoded: decode(value), + start: match.index, + end: match.index + uri.length + }; + } catch (_e) { + } + } + } + function replaceAll(content, replacer) { + return content.replaceAll(regex(), (uri, value) => { + return replacer({ + uri, + value, + decoded: decode(value) + }); + }); + } + + // nip28.ts + var nip28_exports = {}; + __export(nip28_exports, { + channelCreateEvent: () => channelCreateEvent, + channelHideMessageEvent: () => channelHideMessageEvent, + channelMessageEvent: () => channelMessageEvent, + channelMetadataEvent: () => channelMetadataEvent, + channelMuteUserEvent: () => channelMuteUserEvent + }); + var channelCreateEvent = (t, privateKey) => { + let content; + if (typeof t.content === "object") { + content = JSON.stringify(t.content); + } else if (typeof t.content === "string") { + content = t.content; + } else { + return void 0; + } + return finalizeEvent( + { + kind: ChannelCreation, + tags: [...t.tags ?? []], + content, + created_at: t.created_at + }, + privateKey + ); + }; + var channelMetadataEvent = (t, privateKey) => { + let content; + if (typeof t.content === "object") { + content = JSON.stringify(t.content); + } else if (typeof t.content === "string") { + content = t.content; + } else { + return void 0; + } + return finalizeEvent( + { + kind: ChannelMetadata, + tags: [["e", t.channel_create_event_id], ...t.tags ?? []], + content, + created_at: t.created_at + }, + privateKey + ); + }; + var channelMessageEvent = (t, privateKey) => { + const tags = [["e", t.channel_create_event_id, t.relay_url, "root"]]; + if (t.reply_to_channel_message_event_id) { + tags.push(["e", t.reply_to_channel_message_event_id, t.relay_url, "reply"]); + } + return finalizeEvent( + { + kind: ChannelMessage, + tags: [...tags, ...t.tags ?? []], + content: t.content, + created_at: t.created_at + }, + privateKey + ); + }; + var channelHideMessageEvent = (t, privateKey) => { + let content; + if (typeof t.content === "object") { + content = JSON.stringify(t.content); + } else if (typeof t.content === "string") { + content = t.content; + } else { + return void 0; + } + return finalizeEvent( + { + kind: ChannelHideMessage, + tags: [["e", t.channel_message_event_id], ...t.tags ?? []], + content, + created_at: t.created_at + }, + privateKey + ); + }; + var channelMuteUserEvent = (t, privateKey) => { + let content; + if (typeof t.content === "object") { + content = JSON.stringify(t.content); + } else if (typeof t.content === "string") { + content = t.content; + } else { + return void 0; + } + return finalizeEvent( + { + kind: ChannelMuteUser, + tags: [["p", t.pubkey_to_mute], ...t.tags ?? []], + content, + created_at: t.created_at + }, + privateKey + ); + }; + + // nip30.ts + var nip30_exports = {}; + __export(nip30_exports, { + EMOJI_SHORTCODE_REGEX: () => EMOJI_SHORTCODE_REGEX, + matchAll: () => matchAll2, + regex: () => regex2, + replaceAll: () => replaceAll2 + }); + var EMOJI_SHORTCODE_REGEX = /:(\w+):/; + var regex2 = () => new RegExp(`\\B${EMOJI_SHORTCODE_REGEX.source}\\B`, "g"); + function* matchAll2(content) { + const matches = content.matchAll(regex2()); + for (const match of matches) { + try { + const [shortcode, name] = match; + yield { + shortcode, + name, + start: match.index, + end: match.index + shortcode.length + }; + } catch (_e) { + } + } + } + function replaceAll2(content, replacer) { + return content.replaceAll(regex2(), (shortcode, name) => { + return replacer({ + shortcode, + name + }); + }); + } + + // nip39.ts + var nip39_exports = {}; + __export(nip39_exports, { + useFetchImplementation: () => useFetchImplementation3, + validateGithub: () => validateGithub + }); + var _fetch3; + try { + _fetch3 = fetch; + } catch { + } + function useFetchImplementation3(fetchImplementation) { + _fetch3 = fetchImplementation; + } + async function validateGithub(pubkey, username, proof) { + try { + let res = await (await _fetch3(`https://gist.github.com/${username}/${proof}/raw`)).text(); + return res === `Verifying that I control the following Nostr public key: ${pubkey}`; + } catch (_) { + return false; + } + } + + // nip44.ts + var nip44_exports = {}; + __export(nip44_exports, { + decrypt: () => decrypt2, + encrypt: () => encrypt2, + getConversationKey: () => getConversationKey, + v2: () => v2 + }); + var minPlaintextSize = 1; + var maxPlaintextSize = 65535; + function getConversationKey(privkeyA, pubkeyB) { + const sharedX = secp256k1.getSharedSecret(privkeyA, "02" + pubkeyB).subarray(1, 33); + return extract(sha256, sharedX, "nip44-v2"); + } + function getMessageKeys(conversationKey, nonce) { + const keys = expand(sha256, conversationKey, nonce, 76); + return { + chacha_key: keys.subarray(0, 32), + chacha_nonce: keys.subarray(32, 44), + hmac_key: keys.subarray(44, 76) + }; + } + function calcPaddedLen(len) { + if (!Number.isSafeInteger(len) || len < 1) + throw new Error("expected positive integer"); + if (len <= 32) + return 32; + const nextPower = 1 << Math.floor(Math.log2(len - 1)) + 1; + const chunk = nextPower <= 256 ? 32 : nextPower / 8; + return chunk * (Math.floor((len - 1) / chunk) + 1); + } + function writeU16BE(num) { + if (!Number.isSafeInteger(num) || num < minPlaintextSize || num > maxPlaintextSize) + throw new Error("invalid plaintext size: must be between 1 and 65535 bytes"); + const arr = new Uint8Array(2); + new DataView(arr.buffer).setUint16(0, num, false); + return arr; + } + function pad(plaintext) { + const unpadded = utf8Encoder.encode(plaintext); + const unpaddedLen = unpadded.length; + const prefix = writeU16BE(unpaddedLen); + const suffix = new Uint8Array(calcPaddedLen(unpaddedLen) - unpaddedLen); + return concatBytes(prefix, unpadded, suffix); + } + function unpad(padded) { + const unpaddedLen = new DataView(padded.buffer).getUint16(0); + const unpadded = padded.subarray(2, 2 + unpaddedLen); + if (unpaddedLen < minPlaintextSize || unpaddedLen > maxPlaintextSize || unpadded.length !== unpaddedLen || padded.length !== 2 + calcPaddedLen(unpaddedLen)) + throw new Error("invalid padding"); + return utf8Decoder.decode(unpadded); + } + function hmacAad(key, message, aad) { + if (aad.length !== 32) + throw new Error("AAD associated data must be 32 bytes"); + const combined = concatBytes(aad, message); + return hmac(sha256, key, combined); + } + function decodePayload(payload) { + if (typeof payload !== "string") + throw new Error("payload must be a valid string"); + const plen = payload.length; + if (plen < 132 || plen > 87472) + throw new Error("invalid payload length: " + plen); + if (payload[0] === "#") + throw new Error("unknown encryption version"); + let data; + try { + data = base64.decode(payload); + } catch (error) { + throw new Error("invalid base64: " + error.message); + } + const dlen = data.length; + if (dlen < 99 || dlen > 65603) + throw new Error("invalid data length: " + dlen); + const vers = data[0]; + if (vers !== 2) + throw new Error("unknown encryption version " + vers); + return { + nonce: data.subarray(1, 33), + ciphertext: data.subarray(33, -32), + mac: data.subarray(-32) + }; + } + function encrypt2(plaintext, conversationKey, nonce = randomBytes(32)) { + const { chacha_key, chacha_nonce, hmac_key } = getMessageKeys(conversationKey, nonce); + const padded = pad(plaintext); + const ciphertext = chacha20(chacha_key, chacha_nonce, padded); + const mac = hmacAad(hmac_key, ciphertext, nonce); + return base64.encode(concatBytes(new Uint8Array([2]), nonce, ciphertext, mac)); + } + function decrypt2(payload, conversationKey) { + const { nonce, ciphertext, mac } = decodePayload(payload); + const { chacha_key, chacha_nonce, hmac_key } = getMessageKeys(conversationKey, nonce); + const calculatedMac = hmacAad(hmac_key, ciphertext, nonce); + if (!equalBytes(calculatedMac, mac)) + throw new Error("invalid MAC"); + const padded = chacha20(chacha_key, chacha_nonce, ciphertext); + return unpad(padded); + } + var v2 = { + utils: { + getConversationKey, + calcPaddedLen + }, + encrypt: encrypt2, + decrypt: decrypt2 + }; + + // nip47.ts + var nip47_exports = {}; + __export(nip47_exports, { + makeNwcRequestEvent: () => makeNwcRequestEvent, + parseConnectionString: () => parseConnectionString + }); + function parseConnectionString(connectionString) { + const { pathname, searchParams } = new URL(connectionString); + const pubkey = pathname; + const relay = searchParams.get("relay"); + const secret = searchParams.get("secret"); + if (!pubkey || !relay || !secret) { + throw new Error("invalid connection string"); + } + return { pubkey, relay, secret }; + } + async function makeNwcRequestEvent(pubkey, secretKey, invoice) { + const content = { + method: "pay_invoice", + params: { + invoice + } + }; + const encryptedContent = await encrypt(secretKey, pubkey, JSON.stringify(content)); + const eventTemplate = { + kind: NWCWalletRequest, + created_at: Math.round(Date.now() / 1e3), + content: encryptedContent, + tags: [["p", pubkey]] + }; + return finalizeEvent(eventTemplate, secretKey); + } + + // nip57.ts + var nip57_exports = {}; + __export(nip57_exports, { + getZapEndpoint: () => getZapEndpoint, + makeZapReceipt: () => makeZapReceipt, + makeZapRequest: () => makeZapRequest, + useFetchImplementation: () => useFetchImplementation4, + validateZapRequest: () => validateZapRequest + }); + var _fetch4; + try { + _fetch4 = fetch; + } catch { + } + function useFetchImplementation4(fetchImplementation) { + _fetch4 = fetchImplementation; + } + async function getZapEndpoint(metadata) { + try { + let lnurl = ""; + let { lud06, lud16 } = JSON.parse(metadata.content); + if (lud06) { + let { words } = bech32.decode(lud06, 1e3); + let data = bech32.fromWords(words); + lnurl = utf8Decoder.decode(data); + } else if (lud16) { + let [name, domain] = lud16.split("@"); + lnurl = new URL(`/.well-known/lnurlp/${name}`, `https://${domain}`).toString(); + } else { + return null; + } + let res = await _fetch4(lnurl); + let body = await res.json(); + if (body.allowsNostr && body.nostrPubkey) { + return body.callback; + } + } catch (err) { + } + return null; + } + function makeZapRequest({ + profile, + event, + amount, + relays, + comment = "" + }) { + if (!amount) + throw new Error("amount not given"); + if (!profile) + throw new Error("profile not given"); + let zr = { + kind: 9734, + created_at: Math.round(Date.now() / 1e3), + content: comment, + tags: [ + ["p", profile], + ["amount", amount.toString()], + ["relays", ...relays] + ] + }; + if (event) { + zr.tags.push(["e", event]); + } + return zr; + } + function validateZapRequest(zapRequestString) { + let zapRequest; + try { + zapRequest = JSON.parse(zapRequestString); + } catch (err) { + return "Invalid zap request JSON."; + } + if (!validateEvent(zapRequest)) + return "Zap request is not a valid Nostr event."; + if (!verifyEvent(zapRequest)) + return "Invalid signature on zap request."; + let p = zapRequest.tags.find(([t, v]) => t === "p" && v); + if (!p) + return "Zap request doesn't have a 'p' tag."; + if (!p[1].match(/^[a-f0-9]{64}$/)) + return "Zap request 'p' tag is not valid hex."; + let e = zapRequest.tags.find(([t, v]) => t === "e" && v); + if (e && !e[1].match(/^[a-f0-9]{64}$/)) + return "Zap request 'e' tag is not valid hex."; + let relays = zapRequest.tags.find(([t, v]) => t === "relays" && v); + if (!relays) + return "Zap request doesn't have a 'relays' tag."; + return null; + } + function makeZapReceipt({ + zapRequest, + preimage, + bolt11, + paidAt + }) { + let zr = JSON.parse(zapRequest); + let tagsFromZapRequest = zr.tags.filter(([t]) => t === "e" || t === "p" || t === "a"); + let zap = { + kind: 9735, + created_at: Math.round(paidAt.getTime() / 1e3), + content: "", + tags: [...tagsFromZapRequest, ["P", zr.pubkey], ["bolt11", bolt11], ["description", zapRequest]] + }; + if (preimage) { + zap.tags.push(["preimage", preimage]); + } + return zap; + } + + // nip98.ts + var nip98_exports = {}; + __export(nip98_exports, { + getToken: () => getToken, + hashPayload: () => hashPayload, + unpackEventFromToken: () => unpackEventFromToken, + validateEvent: () => validateEvent2, + validateEventKind: () => validateEventKind, + validateEventMethodTag: () => validateEventMethodTag, + validateEventPayloadTag: () => validateEventPayloadTag, + validateEventTimestamp: () => validateEventTimestamp, + validateEventUrlTag: () => validateEventUrlTag, + validateToken: () => validateToken + }); + var _authorizationScheme = "Nostr "; + async function getToken(loginUrl, httpMethod, sign, includeAuthorizationScheme = false, payload) { + const event = { + kind: HTTPAuth, + tags: [ + ["u", loginUrl], + ["method", httpMethod] + ], + created_at: Math.round(new Date().getTime() / 1e3), + content: "" + }; + if (payload) { + event.tags.push(["payload", hashPayload(payload)]); + } + const signedEvent = await sign(event); + const authorizationScheme = includeAuthorizationScheme ? _authorizationScheme : ""; + return authorizationScheme + base64.encode(utf8Encoder.encode(JSON.stringify(signedEvent))); + } + async function validateToken(token, url, method) { + const event = await unpackEventFromToken(token).catch((error) => { + throw error; + }); + const valid = await validateEvent2(event, url, method).catch((error) => { + throw error; + }); + return valid; + } + async function unpackEventFromToken(token) { + if (!token) { + throw new Error("Missing token"); + } + token = token.replace(_authorizationScheme, ""); + const eventB64 = utf8Decoder.decode(base64.decode(token)); + if (!eventB64 || eventB64.length === 0 || !eventB64.startsWith("{")) { + throw new Error("Invalid token"); + } + const event = JSON.parse(eventB64); + return event; + } + function validateEventTimestamp(event) { + if (!event.created_at) { + return false; + } + return Math.round(new Date().getTime() / 1e3) - event.created_at < 60; + } + function validateEventKind(event) { + return event.kind === HTTPAuth; + } + function validateEventUrlTag(event, url) { + const urlTag = event.tags.find((t) => t[0] === "u"); + if (!urlTag) { + return false; + } + return urlTag.length > 0 && urlTag[1] === url; + } + function validateEventMethodTag(event, method) { + const methodTag = event.tags.find((t) => t[0] === "method"); + if (!methodTag) { + return false; + } + return methodTag.length > 0 && methodTag[1].toLowerCase() === method.toLowerCase(); + } + function hashPayload(payload) { + const hash = sha256(utf8Encoder.encode(JSON.stringify(payload))); + return bytesToHex(hash); + } + function validateEventPayloadTag(event, payload) { + const payloadTag = event.tags.find((t) => t[0] === "payload"); + if (!payloadTag) { + return false; + } + const payloadHash = hashPayload(payload); + return payloadTag.length > 0 && payloadTag[1] === payloadHash; + } + async function validateEvent2(event, url, method, body) { + if (!verifyEvent(event)) { + throw new Error("Invalid nostr event, signature invalid"); + } + if (!validateEventKind(event)) { + throw new Error("Invalid nostr event, kind invalid"); + } + if (!validateEventTimestamp(event)) { + throw new Error("Invalid nostr event, created_at timestamp invalid"); + } + if (!validateEventUrlTag(event, url)) { + throw new Error("Invalid nostr event, url tag invalid"); + } + if (!validateEventMethodTag(event, method)) { + throw new Error("Invalid nostr event, method tag invalid"); + } + if (Boolean(body) && typeof body === "object" && Object.keys(body).length > 0) { + if (!validateEventPayloadTag(event, body)) { + throw new Error("Invalid nostr event, payload tag does not match request body hash"); + } + } + return true; + } + + // node_modules/tslib/tslib.es6.mjs + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + } + function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + } + + // node_modules/rxjs/dist/esm5/internal/util/isFunction.js + function isFunction(value) { + return typeof value === "function"; + } + + // node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js + function createErrorClass(createImpl) { + var _super = function(instance) { + Error.call(instance); + instance.stack = new Error().stack; + }; + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; + } + + // node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js + var UnsubscriptionError = createErrorClass(function(_super) { + return function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) { + return i + 1 + ") " + err.toString(); + }).join("\n ") : ""; + this.name = "UnsubscriptionError"; + this.errors = errors; + }; + }); + + // node_modules/rxjs/dist/esm5/internal/util/arrRemove.js + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } + } + + // node_modules/rxjs/dist/esm5/internal/Subscription.js + var Subscription = function() { + function Subscription2(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + Subscription2.prototype.unsubscribe = function() { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1); + } finally { + if (e_1) throw e_1.error; + } + } + } else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } catch (e) { + errors = e instanceof UnsubscriptionError ? e.errors : [e]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError) { + errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); + } else { + errors.push(err); + } + } + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); + } finally { + if (e_2) throw e_2.error; + } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + } + }; + Subscription2.prototype.add = function(teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } else { + if (teardown instanceof Subscription2) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); + } + } + }; + Subscription2.prototype._hasParent = function(parent) { + var _parentage = this._parentage; + return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); + }; + Subscription2.prototype._addParent = function(parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + }; + Subscription2.prototype._removeParent = function(parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } else if (Array.isArray(_parentage)) { + arrRemove(_parentage, parent); + } + }; + Subscription2.prototype.remove = function(teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription2) { + teardown._removeParent(this); + } + }; + Subscription2.EMPTY = function() { + var empty = new Subscription2(); + empty.closed = true; + return empty; + }(); + return Subscription2; + }(); + var EMPTY_SUBSCRIPTION = Subscription.EMPTY; + function isSubscription(value) { + return value instanceof Subscription || value && "closed" in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe); + } + function execFinalizer(finalizer) { + if (isFunction(finalizer)) { + finalizer(); + } else { + finalizer.unsubscribe(); + } + } + + // node_modules/rxjs/dist/esm5/internal/config.js + var config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: void 0, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false + }; + + // node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js + var timeoutProvider = { + setTimeout: function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, + clearTimeout: function(handle) { + return (clearTimeout)(handle); + }, + delegate: void 0 + }; + + // node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js + function reportUnhandledError(err) { + timeoutProvider.setTimeout(function() { + { + throw err; + } + }); + } + + // node_modules/rxjs/dist/esm5/internal/util/noop.js + function noop() { + } + function errorContext(cb) { + { + cb(); + } + } + + // node_modules/rxjs/dist/esm5/internal/Subscriber.js + var Subscriber = function(_super) { + __extends(Subscriber2, _super); + function Subscriber2(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (isSubscription(destination)) { + destination.add(_this); + } + } else { + _this.destination = EMPTY_OBSERVER; + } + return _this; + } + Subscriber2.create = function(next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber2.prototype.next = function(value) { + if (this.isStopped) ; else { + this._next(value); + } + }; + Subscriber2.prototype.error = function(err) { + if (this.isStopped) ; else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber2.prototype.complete = function() { + if (this.isStopped) ; else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber2.prototype.unsubscribe = function() { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber2.prototype._next = function(value) { + this.destination.next(value); + }; + Subscriber2.prototype._error = function(err) { + try { + this.destination.error(err); + } finally { + this.unsubscribe(); + } + }; + Subscriber2.prototype._complete = function() { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }; + return Subscriber2; + }(Subscription); + var _bind = Function.prototype.bind; + function bind(fn, thisArg) { + return _bind.call(fn, thisArg); + } + var ConsumerObserver = function() { + function ConsumerObserver2(partialObserver) { + this.partialObserver = partialObserver; + } + ConsumerObserver2.prototype.next = function(value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver2.prototype.error = function(err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } catch (error) { + handleUnhandledError(error); + } + } else { + handleUnhandledError(err); + } + }; + ConsumerObserver2.prototype.complete = function() { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver2; + }(); + var SafeSubscriber = function(_super) { + __extends(SafeSubscriber2, _super); + function SafeSubscriber2(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, + error: error !== null && error !== void 0 ? error : void 0, + complete: complete !== null && complete !== void 0 ? complete : void 0 + }; + } else { + var context_1; + if (_this && config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function() { + return _this.unsubscribe(); + }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) + }; + } else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + return SafeSubscriber2; + }(Subscriber); + function handleUnhandledError(error) { + { + reportUnhandledError(error); + } + } + function defaultErrorHandler(err) { + throw err; + } + var EMPTY_OBSERVER = { + closed: true, + next: noop, + error: defaultErrorHandler, + complete: noop + }; + + // node_modules/rxjs/dist/esm5/internal/symbol/observable.js + var observable = function() { + return typeof Symbol === "function" && Symbol.observable || "@@observable"; + }(); + + // node_modules/rxjs/dist/esm5/internal/util/identity.js + function identity(x) { + return x; + } + + // node_modules/rxjs/dist/esm5/internal/util/pipe.js + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function(prev, fn) { + return fn(prev); + }, input); + }; + } + + // node_modules/rxjs/dist/esm5/internal/Observable.js + var Observable = function() { + function Observable2(subscribe) { + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable2.prototype.lift = function(operator) { + var observable2 = new Observable2(); + observable2.source = this; + observable2.operator = operator; + return observable2; + }; + Observable2.prototype.subscribe = function(observerOrNext, error, complete) { + var _this = this; + var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); + errorContext(function() { + var _a = _this, operator = _a.operator, source = _a.source; + subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); + }); + return subscriber; + }; + Observable2.prototype._trySubscribe = function(sink) { + try { + return this._subscribe(sink); + } catch (err) { + sink.error(err); + } + }; + Observable2.prototype.forEach = function(next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var subscriber = new SafeSubscriber({ + next: function(value) { + try { + next(value); + } catch (err) { + reject(err); + subscriber.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + _this.subscribe(subscriber); + }); + }; + Observable2.prototype._subscribe = function(subscriber) { + var _a; + return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + }; + Observable2.prototype[observable] = function() { + return this; + }; + Observable2.prototype.pipe = function() { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + return pipeFromArray(operations)(this); + }; + Observable2.prototype.toPromise = function(promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var value; + _this.subscribe(function(x) { + return value = x; + }, function(err) { + return reject(err); + }, function() { + return resolve(value); + }); + }); + }; + Observable2.create = function(subscribe) { + return new Observable2(subscribe); + }; + return Observable2; + }(); + function getPromiseCtor(promiseCtor) { + var _a; + return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise; + } + function isObserver(value) { + return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); + } + function isSubscriber(value) { + return value && value instanceof Subscriber || isObserver(value) && isSubscription(value); + } + + // node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js + var ObjectUnsubscribedError = createErrorClass(function(_super) { + return function ObjectUnsubscribedErrorImpl() { + _super(this); + this.name = "ObjectUnsubscribedError"; + this.message = "object unsubscribed"; + }; + }); + + // node_modules/rxjs/dist/esm5/internal/Subject.js + var Subject = function(_super) { + __extends(Subject2, _super); + function Subject2() { + var _this = _super.call(this) || this; + _this.closed = false; + _this.currentObservers = null; + _this.observers = []; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject2.prototype.lift = function(operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject2.prototype._throwIfClosed = function() { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + }; + Subject2.prototype.next = function(value) { + var _this = this; + errorContext(function() { + var e_1, _a; + _this._throwIfClosed(); + if (!_this.isStopped) { + if (!_this.currentObservers) { + _this.currentObservers = Array.from(_this.observers); + } + try { + for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { + var observer = _c.value; + observer.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_1) throw e_1.error; + } + } + } + }); + }; + Subject2.prototype.error = function(err) { + var _this = this; + errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.hasError = _this.isStopped = true; + _this.thrownError = err; + var observers = _this.observers; + while (observers.length) { + observers.shift().error(err); + } + } + }); + }; + Subject2.prototype.complete = function() { + var _this = this; + errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.isStopped = true; + var observers = _this.observers; + while (observers.length) { + observers.shift().complete(); + } + } + }); + }; + Subject2.prototype.unsubscribe = function() { + this.isStopped = this.closed = true; + this.observers = this.currentObservers = null; + }; + Object.defineProperty(Subject2.prototype, "observed", { + get: function() { + var _a; + return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; + }, + enumerable: false, + configurable: true + }); + Subject2.prototype._trySubscribe = function(subscriber) { + this._throwIfClosed(); + return _super.prototype._trySubscribe.call(this, subscriber); + }; + Subject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._checkFinalizedStatuses(subscriber); + return this._innerSubscribe(subscriber); + }; + Subject2.prototype._innerSubscribe = function(subscriber) { + var _this = this; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + if (hasError || isStopped) { + return EMPTY_SUBSCRIPTION; + } + this.currentObservers = null; + observers.push(subscriber); + return new Subscription(function() { + _this.currentObservers = null; + arrRemove(observers, subscriber); + }); + }; + Subject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped) { + subscriber.complete(); + } + }; + Subject2.prototype.asObservable = function() { + var observable2 = new Observable(); + observable2.source = this; + return observable2; + }; + Subject2.create = function(destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject2; + }(Observable); + var AnonymousSubject = function(_super) { + __extends(AnonymousSubject2, _super); + function AnonymousSubject2(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject2.prototype.next = function(value) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); + }; + AnonymousSubject2.prototype.error = function(err) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); + }; + AnonymousSubject2.prototype.complete = function() { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + AnonymousSubject2.prototype._subscribe = function(subscriber) { + var _a, _b; + return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; + }; + return AnonymousSubject2; + }(Subject); + + // node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js + var BehaviorSubject = function(_super) { + __extends(BehaviorSubject2, _super); + function BehaviorSubject2(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject2.prototype, "value", { + get: function() { + return this.getValue(); + }, + enumerable: false, + configurable: true + }); + BehaviorSubject2.prototype._subscribe = function(subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + !subscription.closed && subscriber.next(this._value); + return subscription; + }; + BehaviorSubject2.prototype.getValue = function() { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + if (hasError) { + throw thrownError; + } + this._throwIfClosed(); + return _value; + }; + BehaviorSubject2.prototype.next = function(value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject2; + }(Subject); + + // inline-worker:__inline-worker + function inlineWorker(scriptText) { + let blob = new Blob([scriptText], { type: "text/javascript" }); + let url = URL.createObjectURL(blob); + let worker = new Worker(url); + URL.revokeObjectURL(url); + return worker; + } + + // dist/mine.worker.js + function Worker2() { + return inlineWorker('"use strict";(()=>{(()=>{var E,G=new Array(128).fill(void 0);function D(A){return G[A]}G.push(void 0,null,!0,!1);var k=G.length;function J(A){let I=D(A);return function(g){g<132||(G[g]=k,k=g)}(A),I}var d=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&d.decode();var F=null;function a(){return(F===null||F.byteLength===0)&&(F=new Uint8Array(E.memory.buffer)),F}function R(A,I){return A>>>=0,d.decode(a().subarray(A,A+I))}function o(A){k===G.length&&G.push(G.length+1);let I=k;return k=G[I],G[I]=A,I}function Y(A){let I=typeof A;if(I=="number"||I=="boolean"||A==null)return`${A}`;if(I=="string")return`"${A}"`;if(I=="symbol"){let B=A.description;return B==null?"Symbol":`Symbol(${B})`}if(I=="function"){let B=A.name;return typeof B=="string"&&B.length>0?`Function(${B})`:"Function"}if(Array.isArray(A)){let B=A.length,w="[";B>0&&(w+=Y(A[0]));for(let C=1;C1))return toString.call(A);if(g=Q[1],g=="Object")try{return"Object("+JSON.stringify(A)+")"}catch{return"Object"}return A instanceof Error?`${A.name}: ${A.message}\n${A.stack}`:g}var N=0,s=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},n=typeof s.encodeInto=="function"?function(A,I){return s.encodeInto(A,I)}:function(A,I){let g=s.encode(A);return I.set(g),{read:A.length,written:g.length}};function h(A,I,g){if(g===void 0){let i=s.encode(A),c=I(i.length,1)>>>0;return a().subarray(c,c+i.length).set(i),N=i.length,c}let Q=A.length,B=I(Q,1)>>>0,w=a(),C=0;for(;C127)break;w[B+C]=i}if(C!==Q){C!==0&&(A=A.slice(C)),B=g(B,Q,Q=C+3*A.length,1)>>>0;let i=a().subarray(B+C,B+Q);C+=n(A,i).written,B=g(B,Q,C,1)>>>0}return N=C,B}var y=null;function U(){return(y===null||y.buffer.detached===!0||y.buffer.detached===void 0&&y.buffer!==E.memory.buffer)&&(y=new DataView(E.memory.buffer)),y}function l(A,I){try{return A.apply(this,I)}catch(g){E.__wbindgen_exn_store(o(g))}}function t(){let A={wbg:{}};return A.wbg.__wbindgen_object_drop_ref=function(I){J(I)},A.wbg.__wbindgen_string_new=function(I,g){return o(R(I,g))},A.wbg.__wbindgen_is_function=function(I){return typeof D(I)=="function"},A.wbg.__wbindgen_number_new=function(I){return o(I)},A.wbg.__wbindgen_is_falsy=function(I){return!D(I)},A.wbg.__wbindgen_is_string=function(I){return typeof D(I)=="string"},A.wbg.__wbindgen_error_new=function(I,g){return o(new Error(R(I,g)))},A.wbg.__wbindgen_bigint_from_i64=function(I){return o(I)},A.wbg.__wbindgen_bigint_from_u64=function(I){return o(BigInt.asUintN(64,I))},A.wbg.__wbindgen_object_clone_ref=function(I){return o(D(I))},A.wbg.__wbg_set_f975102236d3c502=function(I,g,Q){D(I)[J(g)]=J(Q)},A.wbg.__wbg_new_abda76e883ba8a5f=function(){return o(new Error)},A.wbg.__wbg_stack_658279fe44541cf6=function(I,g){let Q=h(D(g).stack,E.__wbindgen_malloc,E.__wbindgen_realloc),B=N;U().setInt32(I+4,B,!0),U().setInt32(I+0,Q,!0)},A.wbg.__wbg_error_f851667af71bcfc6=function(I,g){let Q,B;try{Q=I,B=g,console.error(R(I,g))}finally{E.__wbindgen_free(Q,B,1)}},A.wbg.__wbg_log_b103404cc5920657=function(I){console.log(D(I))},A.wbg.__wbg_new_a220cf903aa02ca2=function(){return o(new Array)},A.wbg.__wbg_new_8608a2b51a5f6737=function(){return o(new Map)},A.wbg.__wbg_call_1084a111329e68ce=function(){return l(function(I,g){return o(D(I).call(D(g)))},arguments)},A.wbg.__wbg_new_525245e2b9901204=function(){return o(new Object)},A.wbg.__wbg_set_673dda6c73d19609=function(I,g,Q){D(I)[g>>>0]=J(Q)},A.wbg.__wbg_call_c6fe275aaa60da79=function(){return l(function(I,g,Q,B){return o(D(I).call(D(g),D(Q),D(B)))},arguments)},A.wbg.__wbg_set_49185437f0ab06f8=function(I,g,Q){return o(D(I).set(D(g),D(Q)))},A.wbg.__wbg_now_b7a162010a9e75b4=function(){return Date.now()},A.wbg.__wbindgen_debug_string=function(I,g){let Q=h(Y(D(g)),E.__wbindgen_malloc,E.__wbindgen_realloc),B=N;U().setInt32(I+4,B,!0),U().setInt32(I+0,Q,!0)},A.wbg.__wbindgen_throw=function(I,g){throw new Error(R(I,g))},A}async function Z(A){if(E!==void 0)return E;typeof A<"u"&&Object.getPrototypeOf(A)===Object.prototype?{module_or_path:A}=A:console.warn("using deprecated parameters for the initialization function; pass a single object instead"),typeof A>"u"&&(A=new URL("notemine_bg.wasm",self.location.href));let I=t();(typeof A=="string"||typeof Request=="function"&&A instanceof Request||typeof URL=="function"&&A instanceof URL)&&(A=fetch(A));let{instance:g,module:Q}=await async function(B,w){if(typeof Response=="function"&&B instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(B,w)}catch(i){if(B.headers.get("Content-Type")=="application/wasm")throw i;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",i)}let C=await B.arrayBuffer();return await WebAssembly.instantiate(C,w)}{let C=await WebAssembly.instantiate(B,w);return C instanceof WebAssembly.Instance?{instance:C,module:B}:C}}(await A,I);return function(B,w){return E=B.exports,Z.__wbindgen_wasm_module=w,y=null,F=null,E.__wbindgen_start(),E}(g,Q)}var M,x=Z,K=!1,L=!1,p=A=>{let I,g,Q;if(typeof A.get=="function")I=A.get("best_pow"),g=A.get("nonce"),Q=A.get("hash");else{if(typeof A!="object"||A===null)throw new Error("Invalid bestPowData received from mine_event");I=A.best_pow,g=A.nonce,Q=A.hash}if(I===void 0||g===void 0||Q===void 0)throw new Error("Incomplete bestPowData received from mine_event");return{bestPow:I,nonce:g,hash:Q}};self.postMessage({type:"initialized",message:"Worker initialized successfully"}),self.onmessage=async function(A){if(!A?.data?.name)try{let{type:I,event:g,difficulty:Q,id:B,totalWorkers:w}=A.data;if(M=B,I!=="mine"||K)I==="cancel"&&(L=!0);else{L=!1,K=!0;try{await x("data:application/wasm;base64,AGFzbQEAAAAB6AEhYAJ/fwF/YAN/f38Bf2ACf38AYAN/f38AYAF/AGABfwF/YAR/f39/AGAFf39/f38AYAABf2AEf39/fwF/YAV/f39+fwBgBX9/f39/AX9gAX4Bf2AGf39/f39/AX9gBn9/f39/fwBgA39/fgBgAABgAXwBf2AAAXxgAn5/AGAJf39/f39/fn5+AGAHf39/f39/fwF/YAN+f38Bf2ADf35+AGAEf35+fwBgCX9/f39/f39/fwF/YAV/f35/fwBgBH9+f38AYAV/f3x/fwBgBH98f38AYAV/f31/fwBgBH99f38AYAN/f3wAApMGGQN3YmcaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYABAN3YmcVX193YmluZGdlbl9zdHJpbmdfbmV3AAADd2JnFl9fd2JpbmRnZW5faXNfZnVuY3Rpb24ABQN3YmcVX193YmluZGdlbl9udW1iZXJfbmV3ABEDd2JnE19fd2JpbmRnZW5faXNfZmFsc3kABQN3YmcUX193YmluZGdlbl9pc19zdHJpbmcABQN3YmcUX193YmluZGdlbl9lcnJvcl9uZXcAAAN3YmcaX193YmluZGdlbl9iaWdpbnRfZnJvbV9pNjQADAN3YmcaX193YmluZGdlbl9iaWdpbnRfZnJvbV91NjQADAN3YmcbX193YmluZGdlbl9vYmplY3RfY2xvbmVfcmVmAAUDd2JnGl9fd2JnX3NldF9mOTc1MTAyMjM2ZDNjNTAyAAMDd2JnGl9fd2JnX25ld19hYmRhNzZlODgzYmE4YTVmAAgDd2JnHF9fd2JnX3N0YWNrXzY1ODI3OWZlNDQ1NDFjZjYAAgN3YmccX193YmdfZXJyb3JfZjg1MTY2N2FmNzFiY2ZjNgACA3diZxpfX3diZ19sb2dfYjEwMzQwNGNjNTkyMDY1NwAEA3diZxpfX3diZ19uZXdfYTIyMGNmOTAzYWEwMmNhMgAIA3diZxpfX3diZ19uZXdfODYwOGEyYjUxYTVmNjczNwAIA3diZxtfX3diZ19jYWxsXzEwODRhMTExMzI5ZTY4Y2UAAAN3YmcaX193YmdfbmV3XzUyNTI0NWUyYjk5MDEyMDQACAN3YmcaX193Ymdfc2V0XzY3M2RkYTZjNzNkMTk2MDkAAwN3YmcbX193YmdfY2FsbF9jNmZl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IAINAAsMAQtBwObBACgCACICQRAgAEELakH4A3EgAEELSRsiBUEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgFBA3QiAEG45MEAaiIEIABBwOTBAGooAgAiACgCCCIDRwRAIAMgBDYCDCAEIAM2AggMAQtBwObBACACQX4gAXdxNgIACyAAQQhqIQMgACABQQN0IgFBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQMBwsgBUHI5sEAKAIATQ0DAkACQCABRQRAQcTmwQAoAgAiAEUNBiAAaEECdEGo48EAaigCACIBKAIEQXhxIAVrIQMgASECA0ACQCABKAIQIgANACABKAIUIgANACACKAIYIQcCQAJAIAIgAigCDCIARgRAIAJBFEEQIAIoAhQiABtqKAIAIgENAUEAIQAMAgsgAigCCCIBIAA2AgwgACABNgIIDAELIAJBFGogAkEQaiAAGyEEA0AgBCEGIAEiAEEUaiAAQRBqIAAoAhQiARshBCAAQRRBECABG2ooAgAiAQ0ACyAGQQA2AgALIAdFDQQgAiACKAIcQQJ0QajjwQBqIgEoAgBHBEAgB0EQQRQgBygCECACRhtqIAA2AgAgAEUNBQwECyABIAA2AgAgAA0DQcTmwQBBxObBACgCAEF+IAIoAhx3cTYCAAwECyAAKAIEQXhxIAVrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAALAAsCQEECIAB0IgRBACAEa3IgASAAdHFoIgFBA3QiAEG45MEAaiIEIABBwOTBAGooAgAiACgCCCIDRwRAIAMgBDYCDCAEIAM2AggMAQtBwObBACACQX4gAXdxNgIACyAAIAVBA3I2AgQgACAFaiIGIAFBA3QiASAFayIEQQFyNgIEIAAgAWogBDYCAEHI5sEAKAIAIgMEQCADQXhxQbjkwQBqIQFB0ObBACgCACECAn9BwObBACgCACIFQQEgA0EDdnQiA3FFBEBBwObBACADIAVyNgIAIAEMAQsgASgCCAshAyABIAI2AgggAyACNgIMIAIgATYCDCACIAM2AggLIABBCGohA0HQ5sEAIAY2AgBByObBACAENgIADAgLIAAgBzYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACKAIUIgFFDQAgACABNgIUIAEgADYCGAsCQAJAIANBEE8EQCACIAVBA3I2AgQgAiAFaiIEIANBAXI2AgQgAyAEaiADNgIAQcjmwQAoAgAiBkUNASAGQXhxQbjkwQBqIQBB0ObBACgCACEBAn9BwObBACgCACIFQQEgBkEDdnQiBnFFBEBBwObBACAFIAZyNgIAIAAMAQsgACgCCAshBiAAIAE2AgggBiABNgIMIAEgADYCDCABIAY2AggMAQsgAiADIAVqIgBBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMAQtB0ObBACAENgIAQcjmwQAgAzYCAAsgAkEIaiEDDAYLIAAgAXJFBEBBACEBQQIgB3QiAEEAIABrciAJcSIARQ0DIABoQQJ0QajjwQBqKAIAIQALIABFDQELA0AgACABIAAoAgRBeHEiBCAFayIGIANJIgcbIQkgACgCECICRQRAIAAoAhQhAgsgASAJIAQgBUkiABshASADIAYgAyAHGyAAGyEDIAIiAA0ACwsgAUUNACAFQcjmwQAoAgAiAE0gAyAAIAVrT3ENACABKAIYIQcCQAJAIAEgASgCDCIARgRAIAFBFEEQIAEoAhQiABtqKAIAIgINAUEAIQAMAgsgASgCCCICIAA2AgwgACACNgIIDAELIAFBFGogAUEQaiAAGyEEA0AgBCEGIAIiAEEUaiAAQRBqIAAoAhQiAhshBCAAQRRBECACG2ooAgAiAg0ACyAGQQA2AgALIAdFDQIgASABKAIcQQJ0QajjwQBqIgIoAgBHBEAgB0EQQRQgBygCECABRhtqIAA2AgAgAEUNAwwCCyACIAA2AgAgAA0BQcTmwQBBxObBACgCAEF+IAEoAhx3cTYCAAwCCwJAAkACQAJAAkAgBUHI5sEAKAIAIgFLBEAgBUHM5sEAKAIAIgBPBEAgBUGvgARqQYCAfHEiAkEQdkAAIQAgCEEEaiIBQQA2AgggAUEAIAJBgIB8cSAAQX9GIgIbNgIEIAFBACAAQRB0IAIbNgIAIAgoAgQiAUUEQEEAIQMMCgsgCCgCDCEGQdjmwQAgCCgCCCIDQdjmwQAoAgBqIgA2AgBB3ObBAEHc5sEAKAIAIgIgACAAIAJJGzYCAAJAAkBB1ObBACgCACICBEBBqOTBACEAA0AgASAAKAIAIgQgACgCBCIHakYNAiAAKAIIIgANAAsMAgtB5ObBACgCACIAQQAgACABTRtFBEBB5ObBACABNgIAC0Ho5sEAQf8fNgIAQbTkwQAgBjYCAEGs5MEAIAM2AgBBqOTBACABNgIAQcTkwQBBuOTBADYCAEHM5MEAQcDkwQA2AgBBwOTBAEG45MEANgIAQdTkwQBByOTBADYCAEHI5MEAQcDkwQA2AgBB3OTBAEHQ5MEANgIAQdDkwQBByOTBADYCAEHk5MEAQdjkwQA2AgBB2OTBAEHQ5MEANgIAQezkwQBB4OTBADYCAEHg5MEAQdjkwQA2AgBB9OTBAEHo5MEANgIAQejkwQBB4OTBADYCAEH85MEAQfDkwQA2AgBB8OTBAEHo5MEANgIAQYTlwQBB+OTBADYCAEH45MEAQfDkwQA2AgBBgOXBAEH45MEANgIAQYzlwQBBgOXBADYCAEGI5cEAQYDlwQA2AgBBlOXBAEGI5cEANgIAQZDlwQBBiOXBADYCAEGc5cEAQZDlwQA2AgBBmOXBAEGQ5cEANgIAQaTlwQBBmOXBADYCAEGg5cEAQZjlwQA2AgBBrOXBAEGg5cEANgIAQajlwQBBoOXBADYCAEG05cEAQajlwQA2AgBBsOXBAEGo5cEANgIAQbzlwQBBsOXBADYCAEG45cEAQbDlwQA2AgBBxOXBAEG45cEANgIAQczlwQBBwOXBADYCAEHA5cEAQbjlwQA2AgBB1OXBAEHI5cEANgIAQcjlwQBBwOXBADYCAEHc5cEAQdDlwQA2AgBB0OXBAEHI5cEANgIAQeTlwQBB2OXBADYCAEHY5cEAQdDlwQA2AgBB7OXBAEHg5cEANgIAQeDlwQBB2OXBADYCAEH05cEAQejlwQA2AgBB6OXBAEHg5cEANgIAQfzlwQBB8OXBADYCAEHw5cEAQejlwQA2AgBBhObBAEH45cEANgIAQfjlwQBB8OXBADYCAEGM5sEAQYDmwQA2AgBBgObBAEH45cEANgIAQZTmwQBBiObBADYCAEGI5sEAQYDmwQA2AgBBnObBAEGQ5sEANgIAQZDmwQBBiObBADYCAEGk5sEAQZjmwQA2AgBBmObBAEGQ5sEANgIAQazmwQBBoObBADYCAEGg5sEAQZjmwQA2AgBBtObBAEGo5sEANgIAQajmwQBBoObBADYCAEG85sEAQbDmwQA2AgBBsObBAEGo5sEANgIAQdTmwQAgAUEPakF4cSIAQQhrIgI2AgBBuObBAEGw5sEANgIAQczmwQAgA0EoayIEIAEgAGtqQQhqIgA2AgAgAiAAQQFyNgIEIAEgBGpBKDYCBEHg5sEAQYCAgAE2AgAMCAsgAiAESSABIAJNcg0AIAAoAgwiBEEBcQ0AIARBAXYgBkYNAwtB5ObBAEHk5sEAKAIAIgAgASAAIAFJGzYCACABIANqIQRBqOTBACEAAkACQANAIAQgACgCAEcEQCAAKAIIIgANAQwCCwsgACgCDCIHQQFxDQAgB0EBdiAGRg0BC0Go5MEAIQADQAJAIAIgACgCACIETwRAIAIgBCAAKAIEaiIHSQ0BCyAAKAIIIQAMAQsLQdTmwQAgAUEPakF4cSIAQQhrIgQ2AgBBzObBACADQShrIgkgASAAa2pBCGoiADYCACAEIABBAXI2AgQgASAJakEoNgIEQeDmwQBBgICAATYCACACIAdBIGtBeHFBCGsiACAAIAJBEGpJGyIEQRs2AgRBqOTBACkCACEKIARBEGpBsOTBACkCADcCACAEIAo3AghBtOTBACAGNgIAQazkwQAgAzYCAEGo5MEAIAE2AgBBsOTBACAEQQhqNgIAIARBHGohAANAIABBBzYCACAAQQRqIgAgB0kNAAsgAiAERg0HIAQgBCgCBEF+cTYCBCACIAQgAmsiAEEBcjYCBCAEIAA2AgAgAEGAAk8EQCACIAAQTgwICyAAQXhxQbjkwQBqIQECf0HA5sEAKAIAIgRBASAAQQN2dCIAcUUEQEHA5sEAIAAgBHI2AgAgAQwBCyABKAIICyEAIAEgAjYCCCAAIAI2AgwgAiABNgIMIAIgADYCCAwHCyAAIAE2AgAgACAAKAIEIANqNgIEIAFBD2pBeHFBCGsiAiAFQQNyNgIEIARBD2pBeHFBCGsiAyACIAVqIgBrIQUgA0HU5sEAKAIARg0DIANB0ObBACgCAEYNBCADKAIEIgFBA3FBAUYEQCADIAFBeHEiARBHIAEgBWohBSABIANqIgMoAgQhAQsgAyABQX5xNgIEIAAgBUEBcjYCBCAAIAVqIAU2AgAgBUGAAk8EQCAAIAUQTgwGCyAFQXhxQbjkwQBqIQECf0HA5sEAKAIAIgRBASAFQQN2dCIDcUUEQEHA5sEAIAMgBHI2AgAgAQwBCyABKAIICyEEIAEgADYCCCAEIAA2AgwgACABNgIMIAAgBDYCCAwFC0HM5sEAIAAgBWsiATYCAEHU5sEAQdTmwQAoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEDDAgLQdDmwQAoAgAhAAJAIAEgBWsiAkEPTQRAQdDmwQBBADYCAEHI5sEAQQA2AgAgACABQQNyNgIEIAAgAWoiASABKAIEQQFyNgIEDAELQcjmwQAgAjYCAEHQ5sEAIAAgBWoiBDYCACAEIAJBAXI2AgQgACABaiACNgIAIAAgBUEDcjYCBAsgAEEIaiEDDAcLIAAgAyAHajYCBEHU5sEAQdTmwQAoAgAiAEEPakF4cSIBQQhrIgI2AgBBzObBAEHM5sEAKAIAIANqIgQgACABa2pBCGoiATYCACACIAFBAXI2AgQgACAEakEoNgIEQeDmwQBBgICAATYCAAwDC0HU5sEAIAA2AgBBzObBAEHM5sEAKAIAIAVqIgE2AgAgACABQQFyNgIEDAELQdDmwQAgADYCAEHI5sEAQcjmwQAoAgAgBWoiATYCACAAIAFBAXI2AgQgACABaiABNgIACyACQQhqIQMMAwtBACEDQczmwQAoAgAiACAFTQ0CQczmwQAgACAFayIBNgIAQdTmwQBB1ObBACgCACIAIAVqIgI2AgAgAiABQQFyNgIEIAAgBUEDcjYCBCAAQQhqIQMMAgsgACAHNgIYIAEoAhAiAgRAIAAgAjYCECACIAA2AhgLIAEoAhQiAkUNACAAIAI2AhQgAiAANgIYCwJAIANBEE8EQCABIAVBA3I2AgQgASAFaiIAIANBAXI2AgQgACADaiADNgIAIANBgAJPBEAgACADEE4MAgsgA0F4cUG45MEAaiECAn9BwObBACgCACIEQQEgA0EDdnQiA3FFBEBBwObBACADIARyNgIAIAIMAQsgAigCCAshBCACIAA2AgggBCAANgIMIAAgAjYCDCAAIAQ2AggMAQsgASADIAVqIgBBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQLIAFBCGohAwsgCEEQaiQAIAMLxgkBCn8jAEEwayIEJAAgACgCACEKAn8gACgCICIJRQRAIAAoAgwhBSAAKAIEIQIgACgCCAwBCyAAKAIMIQUgACgCBCECA0AgACAJQQFrIgk2AiACQCAKBEACfyACBEAgACgCCAwBCyAAKAIIIQICQCAFRQ0AAkAgBUEHcSIDRQRAIAUhAQwBCyAFIQEDQCABQQFrIQEgAigCmAMhAiADQQFrIgMNAAsLIAVBCEkNAANAIAIoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDKAKYAyECIAFBCGsiAQ0ACwsgAEIANwIIIAAgAjYCBEEBIQogAEEBNgIAQQAhBUEACyEBIAIvAZIDIAVLBEAgBSEIIAIhAwwCCwNAIAIoAogCIgMEQCACLwGQAyEIIAJByANBmAMgARtBCBDEASABQQFqIQEgAyICLwGSAyAITQ0BDAMLCyACQcgDQZgDIAEbQQgQxAFBtJDAABDIAQALQZiTwAAQyAEACyAIQQFqIQUCQCABRQRAIAMhAgwBCyADIAVBAnRqQZgDaiEHAkAgAUEHcSIFRQRAIAEhBgwBCyABIQYDQCAGQQFrIQYgBygCACICQZgDaiEHIAVBAWsiBQ0ACwtBACEFIAFBCEkNAANAIAcoAgAoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIgJBmANqIQcgBkEIayIGDQALCyAAIAU2AgwgAEEANgIIIAAgAjYCBCADIAhBDGxqQYwCaiIGKAIAIgEEQCAGKAIEIAFBARDEAQsCQAJAAkACQAJAIAMgCEEYbGoiBy0AAA4FAwMDAQIACwJ/IAcoAgQiBkUEQEEAIQNBAAwBCyAHKAIMIQMgBCAHKAIIIgE2AiggBCAGNgIkIARBADYCICAEIAE2AhggBCAGNgIUIARBADYCEEEBCyEBIAQgAzYCLCAEIAE2AhwgBCABNgIMIARBDGoQGyAJRQ0DDAQLIAcoAgQiA0UNASAHKAIIIANBARDEASAJRQ0CDAMLIAcoAgwiAwRAIAcoAgghAQNAAkACQAJAAkAgAS0AAA4FAwMDAQIACwJ/IAFBBGooAgAiBkUEQEEAIQhBAAwBCyAEIAY2AiQgBEEANgIgIAQgBjYCFCAEQQA2AhAgBCABQQhqKAIAIgY2AiggBCAGNgIYIAFBDGooAgAhCEEBCyEGIAQgCDYCLCAEIAY2AhwgBCAGNgIMIARBDGoQGwwCCyABQQRqKAIAIgZFDQEgAUEIaigCACAGQQEQxAEMAQsgAUEEahBXCyABQRhqIQEgA0EBayIDDQALCyAHKAIEIgNFDQAgBygCCCADQRhsQQgQxAELIAkNAQsLIAAoAgAhCkEACyEDIABBADYCACAKBEACQAJAAkAgAkUEQEEAIQEgBUUNAgJAIAVBB3EiB0UEQCAFIQIMAQsgBSECA0AgAkEBayECIAMoApgDIQMgB0EBayIHDQALCyAFQQhPDQEMAgsgAyEBDAILA0AgAygCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIQMgAkEIayICDQALCyADIQILA0AgAigCiAIgAkHIA0GYAyABG0EIEMQBIAFBAWohASICDQALCyAEQTBqJAALkQkBCH8jAEGAAWsiAyQAAn8CQAJAAkACQCAAKAIUIgQgACgCECIGSQRAIABBDGohCgJAAkACQAJAIAAoAgwiByAEai0AACIFQSJrDgwCAwMDAwMDAwMDAwEACwJAAkACQAJAAkACQAJAAkAgBUHbAGsOIQMKCgoKCgoKCgoKAgoKCgoKCgoACgoKCgoBCgoKCgoKBAoLIAAgBEEBaiIFNgIUIAUgBk8NDiAAIARBAmoiCDYCFAJAIAUgB2otAABB9QBHDQAgBiAIRg0PIAAgBEEDaiIJNgIUIAcgCGotAABB7ABHDQAgCSAFIAYgBSAGSxtGDQ8gACAEQQRqNgIUIAcgCWotAABB7ABGDQULIANBCTYCcCADQRhqIAoQlAEgA0HwAGogAygCGCADKAIcEIkBDA8LIAAgBEEBaiIFNgIUIAUgBk8NDCAAIARBAmoiCDYCFAJAIAUgB2otAABB8gBHDQAgBiAIRg0NIAAgBEEDaiIJNgIUIAcgCGotAABB9QBHDQAgCSAFIAYgBSAGSxtGDQ0gACAEQQRqNgIUIAcgCWotAABB5QBGDQULIANBCTYCcCADQShqIAoQlAEgA0HwAGogAygCKCADKAIsEIkBDA4LIAAgBEEBaiIFNgIUIAUgBk8NCiAAIARBAmoiCDYCFAJAIAUgB2otAABB4QBHDQAgBiAIRg0LIAAgBEEDaiIJNgIUIAcgCGotAABB7ABHDQAgCSAFIAYgBSAGSxsiBUYNCyAAIARBBGoiBjYCFCAHIAlqLQAAQfMARw0AIAUgBkYNCyAAIARBBWo2AhQgBiAHai0AAEHlAEYNBQsgA0EJNgJwIANBOGogChCUASADQfAAaiADKAI4IAMoAjwQiQEMDQsgA0EKOgBwIANB8ABqIAEgAhBxIAAQegwMCyADQQs6AHAgA0HwAGogASACEHEgABB6DAsLIANBBzoAcCADQfAAaiABIAIQcSAAEHoMCgsgA0GAAjsBcCADQfAAaiABIAIQcSAAEHoMCQsgA0EAOwFwIANB8ABqIAEgAhBxIAAQegwICyAAIARBAWo2AhQgA0FAayIEIABBABAhIAMpA0BCA1IEQCAEIAEgAhB7IAAQegwICyADKAJIDAcLIABBADYCCCAAIARBAWo2AhQgA0HkAGogCiAAEDEgAygCaCIEIAMoAmRBAkYNBhogAyADKAJsNgJ4IAMgBDYCdCADQQU6AHAgA0HwAGogASACEHEgABB6DAYLIAVBMGtB/wFxQQpJDQELIANBCjYCcCADQQhqIABBDGoQhgEgA0HwAGogAygCCCADKAIMEIkBIAAQegwECyADQdAAaiIEIABBARAhIAMpA1BCA1IEQCAEIAEgAhB7IAAQegwECyADKAJYDAMLIANBBTYCcCADQTBqIAoQlAEgA0HwAGogAygCMCADKAI0EIkBDAILIANBBTYCcCADQSBqIAoQlAEgA0HwAGogAygCICADKAIkEIkBDAELIANBBTYCcCADQRBqIAoQlAEgA0HwAGogAygCECADKAIUEIkBCyADQYABaiQAC5YIAQx/IwBB8ABrIgMkAAJ/AkACfwJAAkACQAJAAkAgAS0AAEEBaw4FAAECAwYEC0GCAUGDASABLQABGwwECwJAAkACQCABKAIIQQFrDgIBAgALIAMgAiABKQMQEG8gAygCBCECIAMoAgAMBwsgA0EIaiACIAEpAxAQbiADKAIMIQIgAygCCAwGCyADQRBqIAIgASsDEBC2ASADKAIUIQIgAygCEAwFCyADQRhqIAIgASgCCCABKAIMELIBIAMoAhwhAiADKAIYDAQLIANBIGogAiABQQRqEFggAygCJCECIAMoAiAMAwtBgQFBgAEgAi0AABsLIQJBAAwBCyADQdgAaiACIAEoAgwiCRCYASADKAJYQQJHBEAgA0HQAGoiCyADQegAaiIMKAIANgIAIANByABqIg0gA0HgAGoiDikCADcDACADIAMpAlg3A0ACQCAJRQ0AIAEoAgQiAkUNACACQQBHIQogASgCCCEEA0ACQAJAIAoEQAJAIAcEQCACIQUgByECDAELQQEhCkEAIQUCQCAERQ0AIAQiAUEHcSIGBEADQCABQQFrIQEgAigCmAMhAiAGQQFrIgYNAAsLIARBCEkNAANAIAIoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDKAKYAyECIAFBCGsiAQ0ACwtBACEECwJAIAIvAZIDIARLBEAgAiEBIAQhCAwBCwNAIAIoAogCIgFFDQMgBUEBaiEFIAIvAZADIQggASECIAggAS8BkgNPDQALCyAIQQFqIQQCQCAFRQRAIAEhBwwBCyABIARBAnRqQZgDaiECAkAgBUEHcSIERQRAIAUhBgwBCyAFIQYDQCAGQQFrIQYgAigCACIHQZgDaiECIARBAWsiBA0ACwtBACEEIAVBCEkNAANAIAIoAgAoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIgdBmANqIQIgBkEIayIGDQALCyADQThqIAMoAlAgASAIQQxsaiICQZACaigCACACQZQCaigCABCyASADKAI8IQIgAygCOEUEQCABIAhBGGxqIQECQCADKAJIRQ0AIAMoAkwiBUGEAUkNACAFEAALIAMgAjYCTCADQQE2AkggA0EwaiADQUBrIAEQPSADKAIwRQ0DIAMoAjQhAgsgAygCRCIBQYQBTwRAIAEQAAsCQCADKAJIRQ0AIAMoAkwiAUGEAUkNACABEAALQQEMBgtB6ILAABDIAQALQdiCwAAQyAEAC0EAIQIgCUEBayIJDQALCyAMIAsoAgA2AgAgDiANKQMANwMAIAMgAykDQDcDWCADQShqIANB2ABqEJ4BIAMoAiwhAiADKAIoDAELIAMoAlwhAkEBCyEBIAAgAjYCBCAAIAE2AgAgA0HwAGokAAuWCAEMfyMAQfAAayIDJAACfwJAAn8CQAJAAkACQAJAIAEtAABBAWsOBQABAgMGBAtBggFBgwEgAS0AARsMBAsCQAJAAkAgASgCCEEBaw4CAQIACyADIAIgASkDEBBvIAMoAgQhAiADKAIADAcLIANBCGogAiABKQMQEG4gAygCDCECIAMoAggMBgsgA0EQaiACIAErAxAQtgEgAygCFCECIAMoAhAMBQsgA0EYaiACIAEoAgggASgCDBCyASADKAIcIQIgAygCGAwECyADQSBqIAIgAUEEahBYIAMoAiQhAiADKAIgDAMLQYEBQYABIAItAAAbCyECQQAMAQsgA0HYAGogAiABKAIMIgkQmAEgAygCWEECRwRAIANB0ABqIgsg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IANBAnQQ4QEhAyABKAIEIQZBACEBA0ACQCADIAFBAnRqKAIAIgggATsBkAMgCCAENgKIAiABIAVPDQAgASABIAVJaiIBIAVNDQELCyAAIAY2AiwgACAHNgIoIAAgAikDADcDACAAIAY2AjQgACAENgIwIABBCGogAkEIaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEYaiACQRhqKQMANwMAIABBIGogAkEgaikDADcDACACQdAAaiQADwtBCEHIAxDaAQALIARBC0HsjsAAEH4AC0G0jsAAQShB3I7AABCVAQALIANBDEH8jsAAEH4AC0G0jsAAQShB3I7AABCVAQALywICBn8BfgJAIAAoAggiASAAKAIEIgJGDQAgASACSQRAIAAoAgAiBCABai0AACIDQSJGIANB3ABGciADQSBJcg0BIARBAWohA0EAIAIgAUEBaiIEa0F4cSIFayECA0AgAkUEQCAAIAQgBWo2AggCQCAAKAIIIgEgACgCBCIDTw0AIAAoAgAhBANAIAEgBGotAAAiAkEiRiACQdwARnIgAkEgSXINASAAIAFBAWoiATYCCCABIANHDQALCw8LIAEgA2ogAkEIaiECIAFBCGohASkAACIHQn+FIAdC3Ljx4sWLl67cAIVCgYKEiJCgwIABfSAHQqLEiJGixIiRIoVCgYKEiJCgwIABfSAHQqDAgIGChIiQIH2EhINCgIGChIiQoMCAf4MiB1ANAAsgACAHeqdBA3YgAWpBB2s2AggPCyABIAJBpKnAABB9AAsLtwUCBX8CfiMAQTBrIgIkAAJAAkACQAJAIAEoAhQiAyABKAIQIgRJBEAgASgCDCEFA0ACQCADIAVqLQAAIgZBCWsOJQAABAQABAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAMECyABIANBAWoiAzYCFCADIARHDQALCyACQQU2AhggAiABQQxqEIYBIAJBGGogAigCACACKAIEEIkBIQNBASEEDAMLQQEhBCABIANBAWo2AhQgAkEIaiABQQAQIQJAIAIpAwgiCEIDUgRAIAIpAxAhBwJ/AkACQAJAIAinQQFrDgIAAQULIAdCgICAgBBUDQFBASEFIAJBAToAGCACIAc3AyAgAkEYaiACQS9qQfiKwAAQcgwCCyAHQoCAgIAQVA0AIAJBAjoAGCACIAc3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AiACKQIMIgU3AwAgAUEIaiADNgIAIAEgBTcCAAsgAEGopsEANgIEIAAgATYCACACQTBqJAALmwEBAX8CQAJAIAEEQCACQQBIDQECfyADKAIEBEACQCADKAIIIgRFBEAMAQsgAygCACAEIAEgAhCxAQwCCwsgASACRQ0AGkHR4sEALQAAGiACIAEQugELIgMEQCAAIAI2AgggACADNgIEIABBADYCAA8LIAAgAjYCCCAAIAE2AgQMAgsgAEEANgIEDAELIABBADYCBAsgAEEBNgIAC6kBAQF/IwBBEGsiBiQAAkAgAQRAIAZBBGogASADIAQgBSACKAIQEQcAAkAgBigCBCICIAYoAgwiAU0EQCAGKAIIIQUMAQsgAkECdCECIAYoAgghAyABRQRAQQQhBSADIAJBBBDEAQwBCyADIAJBBCABQQJ0IgIQsQEiBUUNAgsgACABNgIEIAAgBTYCACAGQRBqJAAPC0GQnMAAQTIQ1AEAC0EEIAIQsAEAC6cBAAJAIAEEQCACQQBIDQECfyADKAIEBEAgAygCCCIBRQRAQdHiwQAtAAAaIAJBARC6AQwCCyADKAIAIAFBASACELEBDAELQdHiwQAtAAAaIAJBARC6AQsiAQRAIAAgAjYCCCAAIAE2AgQgAEEANgIADwsgACACNgIIIABBATYCBCAAQQE2AgAPCyAAQQA2AgQgAEEBNgIADwsgAEEANgIEIABBATYCAAukAQEBfyMAQUBqIgIkACAAKAIAIQAgAkIANwM4IAJBOGogABAXIAIgAigCPCIANgI0IAIgAigCODYCMCACIAA2AiwgAiACQSxqrUKAgICAkAaENwMgIAJBAjYCDCACQcycwAA2AgggAkIBNwIUIAIgAkEgajYCECABKAIUIAEoAhggAkEIahAsIAIoAiwiAQRAIAIoAjAgAUEBEMQBCyACQUBrJAALoQEBAX8jAEEwayIDJAAgAyACNwMIIAACfyABLQACRQRAIAJC/////////w98Qv////////8fWgRAIANBAjYCFCADQaCZwAA2AhAgA0IBNwIcIAMgA0EIaq1CgICAgPADhDcDKCADIANBKGo2AhhBASEBIANBEGoQXQwCC0EAIQEgArkQAwwBC0EAIQEgAhAHCzYCBCAAIAE2AgAgA0EwaiQAC5cBAQF/IwBBMGsiAyQAIAMgAjcDCCAAAn8gAS0AAkUEQCACQoCAgICAgIAQWgRAIANBAjYCFCADQaCZwAA2AhAgA0IBNwIcIAMgA0EIaq1CgICAgMAAhDcDKCADIANBKGo2AhhBASEBIANBEGoQXQwCC0EAIQEgAroQAwwBC0EAIQEgAhAICzYCBCAAIAE2AgAgA0EwaiQAC5IBAgF/AX4jAEEwayICJAACfyAAKAIAIgAoAgxFBEAgACABEFAMAQsgAkEDNgIEIAJB4KXAADYCACACQgM3AgwgAkKAgICAoAMiAyAAQRBqrYQ3AyggAiADIABBDGqthDcDICACIACtQoCAgICgBoQ3AxggAiACQRhqNgIIIAEoAhQgASgCGCACECwLIAJBMGokAAuIAQEBfyMAQUBqIgMkACADIAI2AgQgAyABNgIAIANBOGogAEEIaikDADcDACADQQI2AgwgA0GUpsAANgIIIANCAjcCFCADIAOtQoCAgICwBoQ3AyggAyADQTBqrUKAgICAwAaENwMgIAMgACkDADcDMCADIANBIGo2AhAgA0EIahBhIANBQGskAAuIAQEBfyMAQUBqIgMkACADIAI2AgQgAyABNgIAIANBOGogAEEIaikDADcDACADQQI2AgwgA0G0psAANgIIIANCAjcCFCADIAOtQoCAgICwBoQ3AyggAyADQTBqrUKAgICAwAaENwMgIAMgACkDADcDMCADIANBIGo2AhAgA0EIahBhIANBQGskAAuSAQEEfyMAQRBrIgIkAEEBIQQCQCABKAIUIgNBJyABKAIYIgUoAhAiAREAAA0AIAJBBGogACgCAEGBAhAkAkAgAi0ABEGAAUYEQCADIAIoAgggAREAAEUNAQwCCyADIAItAA4iACACQQRqaiACLQAPIABrIAUoAgwRAQANAQsgA0EnIAERAAAhBAsgAkEQaiQAIAQLfgEBfyMAQUBqIgEkACABQfSLwAA2AhQgAUHsi8AANgIQIAEgADYCDCABQQI2AhwgAUHAmMAANgIYIAFCAjcCJCABIAFBEGqtQoCAgICQA4Q3AzggASABQQxqrUKAgICAoAOENwMwIAEgAUEwajYCICABQRhqEGEgAUFAayQAC3cBAX8jAEEgayICJAACfyAAKAIAQYCAgIB4RwRAIAEgACgCBCAAKAIIELUBDAELIAJBGGogACgCDCIAQRBqKQIANwMA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KAIIIgdGBH8gAiAHQQEQYyACKAIIBSAHCyACKAIEakHbADoAACACIAIoAghBAWoiBzYCCAJ/IAgEQAJAIBIgCEEMbGohFUEBIQsCQANAIBJBCGooAgAhCCASQQRqKAIAIRQgC0UEQCAHIAIoAgBGBH8gAiAHQQEQYyACKAIIBSAHCyACKAIEakEsOgAAIAIgAigCCEEBaiIHNgIICyAHIAIoAgBGBH8gAiAHQQEQYyACKAIIBSAHCyACKAIEakHbADoAACACIAIoAghBAWoiBzYCCAJAAkAgCEUEQCACKAIAIAdGDQEMAgsgDSAYIBRBBGooAgAgFEEIaigCABAjIA0tAABBBEcNAyAIQQFHBEAgFEEUaiEHIAhBDGxBDGshCANAIAdBBGsoAgAhFCAHKAIAIRwgAigCCCILIAIoAgBGBH8gAiALQQEQYyACKAIIBSALCyACKAIEakEsOgAAIAIgAigCCEEBajYCCCANIBggFCAcECMgDS0AAEEERw0FIAdBDGohByAIQQxrIggNAAsLIAIoAggiByACKAIARw0BCyACIAdBARBjIAIoAgghBwsgAigCBCAHakHdADoAACACIAIoAghBAWoiBzYCCEEAIQsgEkEMaiISIBVHDQALDAELIA0gDSkDADcDCCANQQhqEJYBDAILCyAHIAIoAgBGBH8gAiAHQQEQYyACKAIIBSAHCyACKAIEakHdADoAACACIAIoAghBAWo2AghBAAshByANQRBqJAAgBw0AIAkoArABIgcoAgAgBygCCCICRgRAIAcgAkEBEGMgBygCCCECCyAHIAJBAWo2AgggBygCBCACakEsOgAAIAlB6ARqIAlBsAFqIBogFhAjIAktAOgEQQRGDQEgCSAJKQPoBDcD+AMgCUH4A2oQlgEhBwsgCSgCiAMiAkUNASAJKAKMAyACQQEQxAEMAQsgCSgCsAEiBygCACAHKAIIIgJGBEAgByACQQEQYyAHKAIIIQILIAcoAgQgAmpB3QA6AAAgByACQQFqNgIIIAkoAowDIQcgCSgCiAMiFUGAgICAeEYNACAJKAKQAyECIBdBAEHBABDeASEIIAlBoANqQaCDwAApAwA3AwAgCUGYA2pBmIPAACkDADcDACAJQZADakGQg8AAKQMANwMAIAlCADcDqAMgCUGIg8AAKQMANwOIAwJAIAJBwABPBEAgCSACQQZ2Ig2tNwOoAyAJQYgDaiAHIA0QGSAIIAcgAkFAcWogAkE/cSICEOEBGgwBCyAIIAcgAhDhARoLIAkgAjoA8AMgCUH4A2ogCUGIA2pB8AAQ4QEaIBAgCS0A4AQiAmoiCEGAAToAACAJKQOYBCIsQgGGQoCAgPgPgyAsQg+IQoCA/AeDhCAsQh+IQoD+A4MgLEIJhiIsQjiIhIQhLSACrSIzQjuGICwgM0IDhoQiLEKA/gODQiiGhCAsQoCA/AeDQhiGICxCgICA+A+DQgiGhIQgAkE/cyINBEAgCEEBakEAIA0Q3gEaCyAthCEsAkAgAkE4c0EHTQRAIAlB+ANqIgIgEEEBEBkgCUGYBWpCADcDACAJQZAFakIANwMAIAlBiAVqQgA3AwAgCUGABWpCADcDACAJQfgEakIANwMAIAlB8ARqQgA3AwAgCUIANwPoBCAJICw3A6AFIAIgCUHoBGpBARAZDAELIAkgLDcD2AQgCUH4A2ogEEEBEBkLQdHiwQAtAAAaIAkoApQEIQggCSgCkAQhDSAJKAKMBCELIAkoAogEIRIgCSgChAQhFCAJKAKABCEYIAkoAvwDIRYgCSgC+AMhGkEgQQEQugEiAgRAIAIgCEEYdCAIQYD+A3FBCHRyIAhBCHZBgP4DcSAIQRh2cnI2ABwgAiANQRh0IA1BgP4DcUEIdHIgDUEIdkGA/gNxIA1BGHZycjYAGCACIAtBGHQgC0GA/gNxQQh0ciALQQh2QYD+A3EgC0EYdnJyNgAUIAIgEkEYdCASQYD+A3FBCHRyIBJBCHZBgP4DcSASQRh2cnI2ABAgAiAUQRh0IBRBgP4DcUEIdHIgFEEIdkGA/gNxIBRBGHZycjYADCACIBhBGHQgGEGA/gNxQQh0ciAYQQh2QYD+A3EgGEEYdnJyNgAIIAIgFkEYdCAWQYD+A3FBCHRyIBZBCHZBgP4DcSAWQRh2cnI2AAQgAiAaQRh0IBpBgP4DcUEIdHIgGkEIdkGA/gNxIBpBGHZycjYAAEEgIQggCUEgNgKAAiAJIAI2AvwBIAlBIDYC+AEgFUUNAyAHIBVBARDEAQwCC0EBQSAQsAEACyAJQQA2AoACIAlCgICAgBA3AvgBIAcQdwsgCSgCgAIiCA0AIAlBlIfAAEEdEAEiAjYC+AMgCUH4A2oQ5QEgAkGEAU8EQCACEAALIAlBADYCuAEgCUEANgKwAUHR4sEALQAAGkEFQQEQugEiAkUNEEHR4sEALQAAGiACQQRqQbWHwAAtAAA6AAAgAkGxh8AAKAAANgAAIAlBBTYC8AQgCSACNgLsBCAJQQU2AugEQR1BARC6ASICDQFBAUEdELABAAsgCEEDdCESQQAhByAJKAL8ASENQQAhAgJAA0AgByANai0AACILRQRAIAJBCGshAiAIIAdBAWoiB0cNAQwCCwsgC2dBGGtB/wFxIAJrIRILIA8gEk8NAiAJIAkpA9ABNwPgAUEAIQcgCEEATgRAQdHiwQAtAAAaQQEhByAIQQEQugEiAg0CCyAHIAgQsAEACyACQRVqQamHwAApAAA3AAAgAkEQakGkh8AAKQAANwAAIAJBCGpBnIfAACkAADcAACACQZSHwAApAAA3AAAgCUEdNgKEBCAJIAI2AoAEIAlBHTYC/AMgCUEDOgD4AyAJQYgDaiAJQbABaiAJQegEaiAJQfgDahAnAkACQAJAAkAgCS0AiAMOBwMDAwECAAMACyAJQYgDakEEchB5DAILIAkoAowDIgJFDQEgCSgCkAMgAkEBEMQBDAELIAlBiANqQQRyEFsgCSgCjAMiAkUNACAJKAKQAyACQRhsQQgQxAELIAlB9ARqIAlBuAFqKAIANgIAIAkgCSkCsAE3AuwEIAlBBToA6AQgCUEANgL4AyAJQQhqIAlB6ARqIAlB+ANqEB0gCSgCDCECIAkoAghFBEAgAiEPDAkLQYEBIQ8gAkGDAU0NCCACEAAgCS0A6AQOBQkJCQcFCAsgAiANIAgQ4QEhAiAJKALsASIHBEAgCSgC8AEgB0EBEMQBCyAJIAg2AvQBIAkgAjYC8AEgCSAINgLsASAJQQA2AowCIAlBADYChAJB0eLBAC0AABoCQEEIQQEQugEiAgRAIAJC4srNo/eL3Lf3ADcAACAJQQg2AoAEIAkgAjYC/AMgCUEINgL4AyAJQgA3A8gCIAlBAjoAwAIgCSASrTcD0AIgCUGIA2ogCUGEAmogCUH4A2ogCUHAAmoQJwJAAkACQAJAIAktAIgDDgcDAwMBAgADAAsgCQJ/IAkoAowDIgJFBEBBACEHQQAMAQsgCSAJKAKQAyIHNgKUBCAJIAI2ApAEIAlBADYCjAQgCSAHNgKEBCAJIAI2AoAEIAlBADYC/ANBASEHIAkoApQDCzYCmAQgCSAHNgKIBCAJIAc2AvgDIAlB+ANqEBsMAgsgCSgCjAMiAkUNASAJKAKQAyACQQEQxAEMAQsgDhBbIAkoAowDIgJFDQAgCSgCkAMgAkEYbEEIEMQBC0HR4sEALQAAGkEFQQEQugEiAkUNDyACQQRqQbSFwAAtAAA6AAAgAkGwhcAAKAAANgAAIAlBBTYCmAIgCSACNgKUAiAJQQU2ApACIAlBADYCuAEgCUKAgICAEDcCsAEgCUEDOgCYBCAJQSA2AogEIAlBADYClAQgCUG4hcAANgKQBCAJQQA2AoAEIAlBADYC+AMgCSAJQbABajYCjAQgCUHgAWogCUH4A2oQyQENECAJKAK0ASEHIAkoArABIQggCSgCuAEiAkUEQEEBIRsMAgtBACELIAJBAE4EQEHR4sEALQAAGkEBIQsgAkEBELoBIhsNAiACIRsLIAsgGxCwAQALQQFBCBCwAQALIBsgByACEOEBIQ8gCSACNgLkAiAJIA82AuACIAkgAjYC3AIgCUEDOgDYAiAJQYgDaiAJQYQCaiAJQZACaiAJQdgCahAnAkACQAJAAkAgCS0AiAMOBwMDAwECAAMACwJ/IAkoAowDIgJFBEBBACELQQAMAQsgCSAJKAKQAyIPNgKUBCAJIAI2ApAEIAlBADYCjAQgCSAPNgKEBCAJIAI2AoAEIAlBADYC/AMgCSgClAMhC0EBCyECIAkgCzYCmAQgCSACNgKIBCAJIAI2AvgDIAlB+ANqEBsMAgsgCSgCjAMiAkUNASAJKAKQAyACQQEQxAEMAQsgDhBbIAkoAowDIgJFDQAgCSgCkAMgAkEYbEEIEMQBCyAIBEAgByAIQQEQxAELQdHiwQAtAAAaAkBBBEEBELoBIgIEQCACQejCzcMGNgAAIAlBBDYCgAQgCSACNgL8AyAJQQQ2AvgDIAkgCUHsAWo2ApACIAlBsAFqIAlBkAJqEFwgCSgCtAEhByAJKAK4ASICRQRAQQEhHwwCC0EAIQggAkEATgRAQdHiwQAtAAAaQQEhCCACQQEQugEiHw0CIAIhHwsgCCAfELABAAtBAUEEELABAAsgHyAHIAIQ4QEhCCAJIAI2AvwCIAkgCDYC+AIgCSACNgL0AiAJQQM6APACIAlBiANqIAlBhAJqIAlB+ANqIAlB8AJqECcCQAJAAkACQCAJLQCIAw4HAwMDAQIAAwALAn8gCSgCjAMiAkUEQEEAIQhBAAwBCyAJIAkoApADIgg2ApQEIAkgAjYCkAQgCUEANgKMBCAJIAg2AoQEIAkgAjYCgAQgCUEANgL8AyAJKAKUAyEIQQELIQIgCSAINgKYBCAJIAI2AogEIAkgAjYC+AMgCUH4A2oQGwwCCyAJKAKMAyICRQ0BIAkoApADIAJBARDEAQwBCyAOEFsgCSgCjAMiAkUNACAJKAKQAyACQRhsQQgQxAELIAkoArABIgIEQCAHIAJBARDEAQsgDCAJKQKEAjcCACAMQQhqIAlBjAJqKAIANgIAIAlBBToA6AQgCUGBATYCoAIgCUQAAAAAAAAAABADNgKkAiAJQQA2AvgDIAlByABqIAlB6ARqIAlB+ANqIgcQHSAJKAJMIQIgCSgCSA0BIAkgAjYChAIgCUFAayAJQcwBaiAJQaACaiAJQaQCaiAJQYQCahCHASAJKAJEIQICQCAJKAJABEAgCSACNgKQAiAJQQE2AvwDIAlBtInAADYC+AMgCUIBNwKEBCAJIDI3A7ABIAkgCUGwAWo2AoAEIAlBiANqIAcQQiAJIAkoAowDIgcgCSgCkAMQASICNgL4AyAJKAKIAyIIBEAgByAIQQEQxAELIAlB+ANqEOUBIAJBhAFPBEAgAhAACyAJKAKQAiICQYQBSQ0BIAIQAAwBCyACQYQBSQ0AIAIQAAsgCSgChAIiAkGEAU8EQCACEAALIAkoAqQCIgJBhAFPBEAgAhAACyAJKAKgAiICQYQBTwRAIAIQAAsCQAJAAkACQCAJLQDoBA4FAwMDAQIACyAJAn8gCSgC7AQiAkUEQEEAIQdBAAwBCyAJIAkoAvAEIgc2ApQEIAkgAjYCkAQgCUEANgKMBCAJIAc2AoQEIAkgAjYCgAQgCUEANgL8A0EBIQcgCSgC9AQLNgKYBCAJIAc2AogEIAkgBzYC+AMgCUH4A2oQGwwCCyAJKALsBCICRQ0BIAkoAvAEIAJBARDEAQwBCyAMEFsgCSgC7AQiAkUNACAJKALwBCACQRhsQQgQxAELIBIhDwsCQAJAAkAgCSgCZCASSwRAIAkgCSkD0AEgMHw3A9ABIC9CAXwiL0KQzgCCIAkoAtgBRQ0GUA0BDAYLIAkgCUH4AWo2AvgDIAlBsAFqIgIgCUH4A2oiBxBcQQAhCCACKAIEIQ0CQCACKAIIIgJFBEBBASEPDAELIAJBAE4EQEHR4sEALQAAGkEBIQggAkEBELoBIg8NAQsgCCACELABAAsgDyANIAIQ4QEhCCAHIAI2AgggByAINgIEIAcgAjYCACAJKAKcASICQYCAgIB4RiACRXJFBEAgCSgCoAEgAkEBEMQBCyAJQZwBaiICIAkpAvgDNwIAIAJBCGogCUGABGooAgA2AgAQFiE0IAlB+ANqIAlB6ABqQcgAEOEBGiAJIDQgNaFEAAAAAABAj0CjIjQ5A8AEIAkgL7pEAAAAAABAj0CjIDSjOQPIBCAJQQE2AowDIAlB6IfAADYCiAMgCUIBNwKUAyAJIAlB0AFqrUKAgICAwACENwOQAiAJIAlBkAJqNgKQAyAJQegEaiAJQYgDahBCIAkgCSgC7AQiByAJKALwBBABIgI2AogDIAkoAugEIggEQCAHIAhBARDEAQsgCUGIA2oQ5QEgAkGEAU8EQCACEAALIAlBADYCkAIgCUGIA2ogCUGQAmoQuwEgCSgCjAMhBwJAIAkoAogDIghFDQAgCSAHNgLsBCAJIAg2AugEIAlBOGohHyAJQfgDaiEbIwBBQGoiAiQAIAJBOGogCBC7ASACKAI8IQcCfwJAIAIoAjgiCEUNACACIAc2AjQgAiAINgIwIAJBKGogCCAbKAIUIBsoAhgQsgEgAigCLCEHAkAgAigCKA0AIAJBNGoiCEHOg8AAQQYQMiAHEMUBIAJBIGoiByAbKAJAuBADNgIEIAdBADYCACACKAIkIQcgAigCIA0AIAhB1IPAAEEEEDIgBxDFASACQRhqIAIoAjAgGygCICAbKAIkELIBIAIoAhwhByACKAIYDQAgCEHYg8AAQQcQMiAHEMUBIAJBEGohGCMAQTBrIgckACAbQShqIggoAgQhEiAHQSRqIAJBMGoiFigCACAIKAIIIggQrgECfwJAAkACQCAHKAIkBEAgB0EQaiAHQSxqIhooAgA2AgAgByAHKQIkNwMIAkAgCARAIBIgCEEMbGohCiAHQQhqQQRyIQwgB0EcaiEOIAcoAhAhCwNAIBIoAgQhCCAHQSRqIAcoAgggEigCCCIPEK4BIAcoAiRFDQQgB0EgaiAaKAIANgIAIAcgBykCJDcDGCAPBEAgCEEIaiEIIA9BDGwhFCAHKAIgIQ0DQCAHIAcoAhggCEEEaygCACAIKAIAELIBIAcoAgQhDyAHKAIADQQgDiANIA8QxgEgByANQQFqIg02AiAgCEEMaiEIIBRBDGsiFA0ACwsgDCALIAcoAhwQxgEgByALQQFqIgs2AhAgEkEMaiISIApHDQALCyAHKAIMIQ8gFkEEakHfg8AAQQQQMiAPEMUBQQAMBQsgBygCHCIIQYQBSQ0CIAgQAAwCCyAHKAIoIQ8MAgsgBygCKCEPCyAHKAIMIghBhAFJDQAgCBAAC0EBCyEIIBggDzYCBCAYIAg2AgAgB0EwaiQAIAIoAhAEQCACKAIUIQcMAQsgAkEIaiENIwBBEGsiByQAIAJBMGoiCygCACEIAkACQCAbQTRqIg8oAgBBgICAgHhGBEBBgQFBgAEgCC0AABshD0EAIQgMAQsgB0EIaiAIIA8oAgQgDygCCBCyASAHKAIMIQ8gBygCCCIIDQELIAtBBGpB44PAAEECEDIgDxDFAQsgDSAINgIAIA0gDzYCBCAHQRBqJAAgAigCCARAIAIoAgwhBwwBCyMAQRBrIgckACACQTBqIg0oAgAhCAJAAkAgGykDAFAEQEGBAUGAASAILQAAGyEIQQAhDwwBCyAHQQhqIAggGykDCBBvIAcoAgwhCCAHKAIIIg8NAQsgDUEEakHlg8AAQQoQMiAIEMUBCyACIA82AgAgAiAINgIEIAdBEGokACACKAIABEAgAigCBCEHDAELIAIoAjQhB0EADAILIAIoAjQiCEGEAUkNACAIEAALQQELIQggHyAHNgIEIB8gCDYCACACQUBrJAACfyAJKAI8IgIgCSgCOA0AGiAJQewEakGLhMAAQQUQMiACEMUBIAlBMGogCUHoBGpBkITAAEEKIAlBwARqEIUBIAkoAjAEQCAJKAI0DAELIAlBKGogCUHoBGpBmoTAAEEDIAlByARqEIUBIAkoAihFDQMgCSgCLAshByAJKALsBCICQYQBSQ0AIAIQAAtBgQEhDyAHQYQBSQ0CIAcQAAwCCyAJQYEBNgL4AyMAQRBrIgIkACARKAIAIAlB+ANqKAIAEBEhByACQQhqEJABIAIoAgwhCCAJQSBqIg0gAigCCCILNgIAIA0gCCAHIAsbNgIEIAJBEGokACAJKAIkIQIgCSgCIEUEQCACIQcMBAtBgwEhByACQYQBSQ0DIAIQAAwDCyAJKALsBCEPCyAJKAKIBCICBEAgCSgCjAQgAkEBEMQBCyAJKAKUBCICBEAgCSgCmAQgAkEBEMQBCyAJKAKoBCILBEAgCSgCpAQhEkEAIQgDQCASIAhBDGxqIg0oAggiAgRAIA0oAgQhBwNAIAcoAgAiFARAIAdBBGooAgAgFEEBEMQBCyAHQQxqIQcgAkEBayICDQALCyANKAIAIgIEQCANKAIEIAJBDGxBBBDEAQsgCEEBaiIIIAtHDQALCyAJKAKgBCICBEAgCSgCpAQgAkEMbEEEEMQBCyAJKAKsBCICQYCAgIB4RiACRXJFBEAgCSgCsAQgAkEBEMQBCyAJKAKwASICBEAgCSgCtAEgAkEBEMQBC0EAIQIMCAsgCSACNgL4A0GAgMAAQSsgCUH4A2pB8IfAAEGAiMAAEHgACyAJKAL4AyICQYQBTwRAIAIQAAsgBxAEQQFGBEAgB0GEAUkNASAHEAAMAQsgCUG2h8AAQREQATYC+AMgCUH4A2oQ5QEgCSgC+AMiAkGEAU8EQCACEAALIAlBADYCuAEgCUEANgKwAUHR4sEALQAAGgJAAkACQAJAAkBBBUEBELoBIgIEQEHR4sEALQAAGiACQQRqQbWHwAAtAAA6AAAgAkGxh8AAKAAANgAAIAlBBTYC8AQgCSACNgLsBCAJQQU2AugEQRFBARC6ASICRQ0BIAJBEGpBxofAAC0AADoAACACQQhqQb6HwAApAAA3AAAgAkG2h8AAKQAANwAAIAlBETYChAQgCSACNgKABCAJQRE2AvwDIAlBAzoA+AMgCUGIA2ogCUGwAWogCUHoBGogCUH4A2oQJwJAAkACQAJAIAktAIgDDgcDAwMBAgADAAsgCUGIA2pBBHIQeQwCCyAJKAKMAyICRQ0BIAkoApADIAJBARDEAQwBCyAJQYgDakEEchBbIAkoAowDIgJFDQAgCSgCkAMgAkEYbEEIEMQBCyAJQfQEaiAJQbgBaigCADYCACAJIAkpArABNwLsBCAJQQU6AOgEIAlBADYC+AMgCUEYaiAJQegEaiAJQfgDahAdIAkoAhwhAiAJKAIYRQRAIAIhDwwFC0GBASEPIAJBgwFNDQQgAhAAIAktAOgEDgUFBQUDAgQLDA8LQQFBERCwAQALIAlB6ARqQQRyEFsgCSgC7AQiAkUNAiAJKALwBCACQRhsQQgQxAEMAgsgCSgC7AQiAkUNASAJKALwBCACQQEQxAEMAQsCfyAJKALsBCICRQRAQQAhCEEADAELIAkgCSgC8AQiCDYClAQgCSACNgKQBCAJQQA2AowEIAkgCDYChAQgCSACNgKABCAJQQA2AvwDIAkoAvQEIQhBAQshAiAJIAg2ApgEIAkgAjYCiAQgCSACNgL4AyAJQfgDahAbC0EBIQIgB0GEAUkNBiAHEAAMBgsCQCAvQsipFIJQRQ0AEBYiNiA0oUQAAAAAAECPQKMiN0QAAAAAAAAAAGRFDQAgCUGBATYCpAIgCUQAAAAAIFMUQSA3oxADNgKEAiAJQYEBNgKQAiAJQRBqIAlBzAFqIAlBpAJqIAlBhAJqIAlBkAJqEIcBIAkoAhQhAgJAIAkoAhAEQCAJIAI2ArABIAlBATYC/AMgCUG0icAANgL4AyAJQgE3AoQEIAkgMTcD6AQgCSAJQegEajYCgAQgCUGIA2ogCUH4A2oQQiAJIAkoAowDIgcgCSgCkAMQASICNgL4AyAJKAKIAyIIBEAgByAIQQEQxAELIAlB+ANqEOUBIAJBhAFPBEAgAhAACyAJKAKwASICQYQBSQ0BIAIQAAwBCyACQYQBSQ0AIAIQAAsgCSgCkAIiAkGEAU8EQCACEAALIAkoAoQCIgJBhAFPBEAgAhAACyAJKAKkAiICQYQBTwRAIAIQAAsgNiE0CyAJKAL4ASICRQ0BIAkoAvwBIAJBARDEAQwBCwsgCUHoBGpBBHIQWyAJKALsBCICRQ0CIAkoAvAEIAJBGGxBCBDEAQwCCyAJKALsBCICRQ0BIAkoAvAEIAJBARDEAQwBCyAJAn8gCSgC7AQiAkUEQEEAIQdBAAwBCyAJIAkoAvAEIgc2ApQEIAkgAjYCkAQgCUEANgKMBCAJIAc2AoQEIAkgAjYCgAQgCUEANgL8A0EBIQcgCSgC9AQLNgKYBCAJIAc2AogEIAkgBzYC+AMgCUH4A2oQGwtBASECCyAJKAL4ASIHBEAgCSgC/AEgB0EBEMQBCyAJKALsASIHBEAgCSgC8AEgB0EBEMQBCwJAIAkoAtgBRQ0AIAkoAtwBIgdBhAFJDQAgBxAACyAJKALMASIHQYQBTwRAIAcQACACRQ0DDAELIAJFDQILIAkoAngiAgRAIAkoAnwgAkEBEMQBCyAJKAKEASICBEAgCSgCiAEgAkEBEMQBCyAJKAKYASILBEAgCSgClAEhEkEAIQgDQCASIAhBDGxqIg0oAggiAgRAIA0oAgQhBwNAIAcoAgAiFARAIAdBBGooAgAgFEEBEMQBCyAHQQxqIQcgAkEBayICDQALCyANKAIAIgIEQCANKAIEIAJBDGxBBBDEAQsgCEEBaiIIIAtHDQALCyAJKAKQASICBEAgCSgClAEgAkEMbEEEEMQBCyAJKAKcASICQYCAgIB4RwRAIAIEQCAJKAKgASACQQEQxAELIBNBAUYNAgwBCyATQQFGDQELICVBhAFPBEAgJRAACyAkQYQBSSAuQgJScg0AICQQAAsgCUGwBWokACAPDAILQQFBBRCwAQALQYCGwABBNyAJQa8FakHwhcAAQYSHwAAQeAALIAYEQCAFIAZBARDEAQsgBARAIAMgBEEBEMQBCyABBEAgACABQQEQxAELC0wBAX9B0eLBAC0AABpBFEEEELoBIgMEQCADIAI2AhAgAyABNgIMIAMgACkCADcCACADQQhqIABBCGooAgA2AgAgAw8LQQRBFBDaAQALOgEBfyMAQSBrIgAkACAAQQA2AhggAEEBNgIMIABB+KnBADYCCCAAQgQ3AhAgAEEIakGsqsEAEIsBAAu0AgEDfyMAQSBrIgIkACACQRBqIgMgAEEQaikCADcDACACQQhqIgQgAEEIaikCADcDACACQQE7ARwgAiABNgIYIAIgACkCADcDACMAQSBrIgAkACACKAIYIQEgAEEQaiADKQIANwMAIABBCGogBCkCADcDACAAIAI2AhwgACABNgIYIAAgAikCADcDAEEAIQIjAEEQayIBJAAgACgCDCEDAkACQAJAAkAgACgCBA4CAAECCyADDQFBASEDDAILIAMNACAAKAIAIgMoAgQhAiADKAIAIQMMAQsgAUGAgICAeDYCACABIAA2AgwgAUHkpsEAIAAoAhggACgCHCIALQAcIAAtAB0QYAALIAEgAjYCBCABIAM2AgAgAUHIpsEAIAAoAhggACgCHCIALQAcIAAtAB0QYAALTwECf0HR4sEALQAAGiABKAIEIQIgASgCACEDQQhBBBC6ASIBBEAgASACNgIEIAEgAzYCACAAQbimwQA2AgQgACABNgIADwtBBEEIENoBAAtPAQJ/IAAoAgQhAiAAKAIAIQMCQCAAKAIIIgAtAABFDQAgA0H8xsEAQQQgAigCDBEBAEUNAEEBDwsgACABQQpGOgAAIAMgASACKAIQEQAAC0IBAX8gAiAAKAIAIAAoAggiA2tLBEAgACADIAIQYyAAKAIIIQMLIAAoAgQgA2ogASACEOEBGiAAIAIgA2o2AghBAAtCAQF/IAIgACgCACAAKAIIIgNrSwRAIAAgAyACEGUgACgCCCEDCyAAKAIEIANqIAEgAhDhARogACACIANqNgIIQQALWAECfwJAQYjjwQAtAABFBEBBiOPBAEEBOgAADAELQYzjwQAoAgBBAUYhAUGQ48EAKAIAIQILQZDjwQBBADYCAEGM48EAQQA2AgAgACACNgIEIAAgATYCAAtCAQF/IAIgACgCACAAKAIIIgNrSwRAIAAgAyACEGYgACgCCCEDCyAAKAIEIANqIAEgAhDhARogACACIANqNgIIQQALvQMBBn8jAEEQayICJABB7OLBAC0AAEEDRwRAIAJBAToACyACIAJBC2o2AgwgAkEMaiEAIwBBIGsiASQAAkACQAJAAkACQAJAAkBB7OLBAC0AAEEBaw4DAgQBAAtB7OLBAEECOgAAIAAoAgAiAC0AACAAQQA6AABFDQIjAEEgayIAJAACQAJAAkBBpOPBACgCAEH/////B3EEQEHs5sEAKAIADQELQZjjwQAoAgANAUGg48EAKAIAIQNBoOPBAEHQkMAANgIAQZzjwQAoAgAhBEGc48EAQQE2AgBBmOPBAEEANgIAAkAgBEUNACADKAIAIgUEQCAEIAURBAALIAMoAgQiBUUNACAEIAUgAygCCBDEAQsgAEEgaiQADAILIABBADYCGCAAQQE2AgwgAEH0pcEANgIIIABCBDcCECAAQQhqQZimwQAQiwEACwALQeziwQBBAzoAAAsgAUEgaiQADAQLIAFBADYCGCABQQE2AgwgAUGUkcAANgIIDAILQaiSwAAQyAEACyABQQA2AhggAUEBNgIMIAFB1JHAADYCCAsgAUIENwIQIAFBCGpBjIXAABCLAQALCyACQRBqJAALOAACQCABaUEBR0GAgICAeCABayAASXINACAABEBB0eLBAC0AABogACABELoBIgFFDQELIAEPCwALQgEBfyMAQRBrIgIkACACQQhqIAEoAgAgASgCBCABKAIIEC0gAigCDCEBIAAgAigCCDYCACAAIAE2AgQgAkEQaiQAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEIsBAAtAAQF+QdHiwQAtAAAaIAApAgAhAUEUQQQQugEiAARAIABCADcCDCAAIAE3AgQgAEEBNgIAIAAPC0EEQRQQ2gEACzkAAkACfyACQYCAxABHBEBBASAAIAIgASgCEBEAAA0BGgsgAw0BQQALDwsgACADIAQgASgCDBEBAAs8AQF/An8gAS0AAUUEQBAQIQJBAAwBCxASIQJBAQshAyAAIAE2AhAgAEEANgIIIAAgAjYCBCAAIAM2AgAL8HUDI38afgF8IAEoAhxBAXEhAiAAKwMAIT8CQCABKAIIBEACfyABIQggASgCDCETQQAhACMAQfAIayIJJAAgP70hJwJ/QQIgPyA/Yg0AGiAnQv////////8HgyIpQoCAgICAgIAIhCAnQgGGQv7///////8PgyAnQjSIp0H/D3EiABsiJkIBgyEoICdCgICAgICAgPj/AIMhJQJAAkAgKVAEQEEDICVCgICAgICAgPj/AFENAxogJVBFDQFBBAwDCyAlUA0BC0KAgICAgICAICAmQgGGICZCgICAgICAgAhRIgEbISZCAkIBIAEbISVBy3dBzHcgARsgAGohACAoUAwBCyAAQbMIayEAQgEhJSAoUAshASAJIAA7AegIIAkgJTcD4AggCUIBNwPYCCAJICY3A9AIIAkgAToA6ggCQAJ/AkACQAJAAkAgAUECayIEBEBBASEBQavDwQBBrMPBACAnQgBTIgUbQavDwQBBASAFGyACGyEbICdCP4inIAJyIRxBAyAEQf8BcSICIAJBA08bQQJrDgICAwELIAlBAzYCmAggCUGtw8EANgKUCCAJQQI7AZAIQQEhG0EBIQEgCUGQCGoMBAsgCUEDNgKYCCAJQbDDwQA2ApQIIAlBAjsBkAggCUGQCGoMAwtBAiEBIAlBAjsBkAggE0UNASAJQaAIaiATNgIAIAlBADsBnAggCUECNgKYCCAJQanDwQA2ApQIIAlBkAhqDAILQXRBBSAAwSIAQQBIGyAAbCIAQcD9AEkEQCAJQZAIaiEMIAlBEGohCiAAQQR2QRVqIQdBgIB+QQAgE2sgE0GAgAJPGyEBAkACQAJ/AkACQAJAAkAgCUHQCGoiESkDACIlUEUEQCAlQoCAgICAgICAIFoNASAHRQ0CQaB/IBEvARgiAEEgayAAICVCgICAgBBUIgAbIgJBEGsgAiAlQiCGICUgABsiJUKAgICAgIDAAFQiABsiAkEIayACICVCEIYgJSAAGyIlQoCAgICAgICAAVQiABsiAkEEayACICVCCIYgJSAAGyIlQoCAgICAgICAEFQiABsiAkECayACICVCBIYgJSAAGyIlQoCAgICAgICAwABUIgAbICVCAoYgJSAAGyIlQgBZayIEa8FB0ABsQbCnBWpBzhBtIgBB0QBPDQMgAEEEdCICQfCzwQBqKQMAIiZC/////w+DIicgJSAlQn+FQj+IhiIlQiCIIih+IilCIIggJkIgiCImICh+fCAmICVC/////w+DIiV+IiZCIIh8IClC/////w+DICUgJ35CIIh8ICZC/////w+DfEKAgICACHxCIIh8IiZBQCAEIAJB+LPBAGovAQBqayIGQT9xrSIniKchACACQfqzwQBqLwEAIQIgJkIBICeGIihCAX0iKYMiJVAEQCAHQQpLDQcgB0ECdEGEwcEAaigCACAASw0HCyAAQZDOAE8EQCAAQcCEPUkNBSAAQYDC1y9PBEBBCEEJIABBgJTr3ANJIgQbIQVBgMLXL0GAlOvcAyAEGwwHC0EGQQcgAEGAreIESSIEGyEFQcCEPUGAreIEIAQbDAYLIABB5ABPBEBBAkEDIABB6AdJIgQbIQVB5ABB6AcgBBsMBgtBCkEBIABBCUsiBRsMBQtBw6/BAEEcQbTAwQAQlQEAC0HEwMEAQSRB6MDBABCVAQALQZDAwQBBIUH4wMEAEJUBAAsgAEHRAEGwvsEAEH0AC0EEQQUgAEGgjQZJIgQbIQVBkM4AQaCNBiAEGwshBAJAAkACQAJAIAUgAmtBAWrBIgMgAcEiAkoEQCAGQf//A3EhCyADIAFrwSAHIAMgAmsgB0kbIgZBAWshDkEAIQIDQCAAIARuIQ0gAiAHRg0DIAAgBCANbGshACACIApqIA1BMGo6AAAgAiAORg0EIAIgBUYNAiACQQFqIQIgBEEKSSAEQQpuIQRFDQALQbDBwQAQmwEACyAMIAogB0EAIAMgASAmQgqAIAStICeGICgQPgwFCyACQQFqIQIgC0EBa0E/ca0hKkIBISYDQCAmICqIUEUEQCAMQQA2AgAMBgsgAiAHTw0DIAIgCmogJUIKfiIlICeIp0EwajoAACAmQgp+ISYgJSApgyElIAYgAkEBaiICRw0ACyAMIAogByAGIAMgASAlICggJhA+DAQLIAcgB0HAwcEAEH0ACyAMIAogByAGIAMgASAArSAnhiAlfCAErSAnhiAoED4MAgsgAiAHQdDBwQAQfQALIAxBADYCAAsgAcEhFAJAIAkoApAIRQRAIAlBwAhqIRVBACENIwBBwAZrIgYkAAJAAkACQAJAAkACQAJAAkACQAJAAkAgESkDACIlUEUEQCARKQMIIiZQDQEgESkDECInUA0CICUgJ3wgJVQNAyAlICZUDQQgES8BGCEAIAYgJT4CDCAGQQFBAiAlQoCAgIAQVCIBGzYCrAEgBkEAICVCIIinIAEbNgIQIAZBFGpBAEGYARDeARogBkG0AWpBAEGcARDeARogBkEBNgKwASAGQQE2AtACIACtwyAlQgF9eX1CwprB6AR+QoChzaC0AnxCIIinIgHBIQ8CQCAAwSICQQBOBEAgBkEMaiAAEDUaDAELIAZBsAFqQQAgAmvBEDUaCwJAIA9BAEgEQCAGQQxqQQAgD2tB//8DcRAgDAELIAZBsAFqIAFB//8DcRAgCyAGKALQAiELIAZBnAVqIAZBsAFqQaABEOEBGiAGIAs2ArwGIAciBUEKTwRAIAZBlAVqIQEDQCAGKAK8BiIDQSlPDQoCQCADRQ0AIANBAnQhAAJ/IANB/////wNqIgJB/////wNxIgRFBEBCACElIAZBnAVqIABqDAELIAAgAWohAyAEQQFqQf7///8HcSEEQgAhJQNAIANBBGoiACAANQIAICVCIIaEIiVCgJTr3AOAIiY+AgAgAyADNQIAICUgJkKAlOvcA359QiCGhCIlQoCU69wDgCImPgIAICUgJkKAlOvcA359ISUgA0EIayEDIARBAmsiBA0ACyADQQhqCyACQQFxDQBBBGsiACAANQIAICVCIIaEQoCU69wDgD4CAAsgBUEJayIFQQlLDQALCyAFQQJ0QZStwQBqKAIAIgFFDQUgBigCvAYiA0EpTw0IIAMEfyADQQJ0IQAgAa0hJgJ/IANB/////wNqIgFB/////wNxIgJFBEBCACElIAZBnAVqIABqDAELIAJBAWpB/v///wdxIQQgACAGakGUBWohA0IAISUDQCADQQRqIgAgADUCACAlQiCGhCIlICaAIic+AgAgAyADNQIAICUgJiAnfn1CIIaEIiUgJoAiJz4CACAlICYgJ359ISUgA0EIayEDIARBAmsiBA0ACyADQQhqCyEAIAFBAXFFBEAgAEEEayIAIAA1AgAgJUIghoQgJoA+AgALIAYoArwGBUEACyIAIAYoAqwBIgEgACABSxsiAEEoSw0RIABFBEBBACEADAgLIABBAXEhDCAAQQFGBEBBACEFDAcLIABBPnEhEUEAIQUgBkGcBWohAyAGQQxqIQQDQCADIAMoAgAiDiAEKAIAaiICIAVBAXFqIhA2AgAgA0EEaiIFIAUoAgAiFyAEQQRqKAIAaiIFIAIgDkkgAiAQS3JqIgI2AgAgBSAXSSACIAVJciEFIARBCGohBCADQQhqIQMgESANQQJqIg1HDQALDAYLQcOvwQBBHEHMssEAEJUBAAtB8K/BAEEdQdyywQAQlQEAC0GgsMEAQRxB7LLBABCVAQALQYSywQBBNkHcs8EAEJUBAAtBvLHBAEE3QcyzwQAQlQEAC0G328EAQRtB8NrBABCVAQALIAwEfyANQQJ0IgIgBkGcBWpqIgQgBSAEKAIAIgQgBkEMaiACaigCAGoiAmoiBTYCACACIARJIAIgBUtyBSAFC0EBcUUNACAAQShGDQIgBkGcBWogAEECdGpBATYCACAAQQFqIQALIAYgADYCvAYgACALIAAgC0sbIgNBKU8NACADQQJ0IQMCQANAIAMEQEF/IANBBGsiAyAGQbABamooAgAiACADIAZBnAVqaigCACICRyAAIAJLGyIERQ0BDAILC0F/QQAgAxshBAsCQAJAIARBAk8EQCABRQRAQQAhASAGQQA2AqwBDAMLIAFBAWtB/////wNxIgBBAWoiAkEDcSEEIABBA0kEQCAGQQxqIQNCACElDAILIAJB/P///wdxIQAgBkEMaiEDQgAhJQNAIAMgAzUCAEIKfiAlfCIlPgIAIANBBGoiAiACNQIAQgp+ICVCIIh8IiU+AgAgA0EIaiICIAI1AgBCCn4gJUIgiHwiJT4CACADQQxqIgIgAjUCAEIKfiAlQiCIfCIlPgIAICVCIIghJSADQRBqIQMgAEEEayIADQALDAELIA9BAWohDwwBCyAEBEADQCADIAM1AgBCCn4gJXwiJT4CACADQQRqIQMgJUIgiCElIARBAWsiBA0ACwsgJaciAARAIAFBKEYNAyAGQQxqIAFBAnRqIAA2AgAgAUEBaiEBCyAGIAE2AqwBC0EBIQ4CQAJAAkAgD8EiACAUwSICSCIdRQRAIA8gFGvBIAcgACACayAHSRsiBQ0BC0EAIQUMAQsgBkHUAmoiASAGQbABaiIAQaABEOEBGiAGIAs2AvQDIAFBARA1IR4gBigC0AIhASAGQfgDaiICIABBoAEQ4QEaIAYgATYCmAUgAkECEDUhHyAGKALQAiEBIAZBnAVqIgIgAEGgARDhARogBiABNgK8BiAGQawBaiEgIAZB0AJqISEgBkH0A2ohIiAGQZgFaiEjIAJBAxA1ISQgBigCrAEhASAGKALQAiELIAYoAvQDIRcgBigCmAUhGSAGKAK8BiESQQAhEQJAA0AgESEMAkACQAJAIAFBKUkEQCAMQQFqIREgAUECdCEAQQAhAwJAAkACQANAIAAgA0YNASAGQQxqIANqIANBBGohAygCAEUNAAsgASASIAEgEksbIgBBKU8NFCAAQQJ0IQMCQANAIAMEQEF/IAMgI2ooAgAiAiADQQRrIgMgBkEMamooAgAiBEcgAiAESxsiBEUNAQwCCwtBf0EAIAMbIQQLQQAhECAEQQJJBEBBASENQQAhDiAAQQFHBEAgAEE+cSEQIAZBDGohAyAGQZwFaiEEA0AgAyADKAIAIhYgBCgCAEF/c2oiASANQQFxaiINNgIAIANBBGoiAiACKAIAIhggBEEEaigCAEF/c2oiAiABIBZJIAEgDUtyaiIBNgIAIAIgGEkgASACSXIhDSAEQQhqIQQgA0EIaiEDIBAgDkECaiIORw0ACwsgAEEBcQR/IA5BAnQiASAGQQxqaiICIAIoAgAiAiABICRqKAIAQX9zaiIBIA1qIgQ2AgAgASACSSABIARLcgUgDQtBAXFFDQ8gBiAANgKsAUEIIRAgACEBCyABIBkgASAZSxsiAkEpTw0XIAJBAnQhAwNAIANFDQJBfyADICJqKAIAIgAgA0EEayIDIAZBDGpqKAIAIgRHIAAgBEsbIgRFDQALDAILIAUgB0sNAyAFIAxHBEAgCiAMakEwIAUgDGsQ3gEaCyAVIA87AQggFSAFNgIEDAkLQX9BACADGyEECwJAIARBAUsEQCABIQIMAQsgAgRAQQEhDUEAIQ4gAkEBRwRAIAJBPnEhFiAGQQxqIQMgBkH4A2ohBANAIAMgAygCACIYIAQoAgBBf3NqIgAgDUEBcWoiDTYCACADQQRqIgEgASgCACIaIARBBGooAgBBf3NqIgEgACAYSSAAIA1LcmoiADYCACABIBpJIAAgAUlyIQ0gBEEIaiEEIANBCGohAyAWIA5BAmoiDkcNAAsLIAJBAXEEfyAOQQJ0IgAgBkEMamoiASABKAIAIgEgACAfaigCAEF/c2oiACANaiIENgIAIAAgAUkgACAES3IFIA0LQQFxRQ0NCyAGIAI2AqwBIBBBBHIhEAsgAiAXIAIgF0sbIgBBKU8NESAAQQJ0IQMCQANAIAMEQEF/IAMgIWooAgAiASADQQRrIgMgBkEMamooAgAiBEcgASAESxsiBEUNAQwCCwtBf0EAIAMbIQQLAkAgBEEBSwRAIAIhAAwBCyAABEBBASENQQAhDiAAQQFHBEAgAEE+cSEWIAZBDGohAyAGQdQCaiEEA0AgAyADKAIAIhggBCgCAEF/c2oiASANQQFxaiINNgIAIANBBGoiAiACKAIAIhogBEEEaigCAEF/c2oiAiABIBhJIAEgDUtyaiIBNgIAIAIgGkkgASACSXIhDSAEQQhqIQQgA0EIaiEDIBYgDkECaiIORw0ACwsgAEEBcQR/IA5BAnQiASAGQQxqaiICIAIoAgAiAiABIB5qKAIAQX9zaiIBIA1qIgQ2AgAgASACSSABIARLcgUgDQtBAXFFDQ0LIAYgADYCrAEgEEECaiEQCyAAIAsgACALSxsiAUEpTw0KIAFBAnQhAwJAA0AgAwRAQX8gAyAgaigCACICIANBBGsiAyAGQQxqaigCACIERyACIARLGyIERQ0BDAILC0F/QQAgAxshBAsCQCAEQQFLBEAgACEBDAELIAEEQEEBIQ1BACEOIAFBAUcEQCABQT5xIRYgBkEMaiEDIAZBsAFqIQQDQCADIAMoAgAiGCAEKAIAQX9zaiIAIA1BAXFqIg02AgAgA0EEaiICIAIoAgAiGiAEQQRqKAIAQX9zaiICIAAgGEkgACANS3JqIgA2AgAgAiAaSSAAIAJJciENIARBCGohBCADQQhqIQMgFiAOQQJqIg5HDQALCyABQQFxBH8gDkECdCIAIAZBDGpqIgIgAigCACICIAZBsAFqIABqKAIAQX9zaiIAIA1qIgQ2AgAgACACSSAAIARLcgUgDQtBAXFFDQ0LIAYgATYCrAEgEEEBaiEQCyAHIAxHBEAgCiAMaiAQQTBqOgAAIAFBKU8NCyABRQRAQQAhAQwFCyABQQFrQf////8DcSIAQQFqIgJBA3EhBCAAQQNJBEAgBkEMaiEDQgAhJQwECyACQfz///8HcSEAIAZBDGohA0IAISUDQCADIAM1AgBCCn4gJXwiJT4CACADQQRqIgIgAjUCAEIKfiAlQiCIfCIlPgIAIANBCGoiAiACNQIAQgp+ICVCIIh8IiU+AgAgA0EMaiICIAI1AgBCCn4gJUIgiHwiJT4CACAlQiCIISUgA0EQaiEDIABBBGsiAA0ACwwDCyAHIAdBrLPBABB9AAsMCQsgBSAHQbyzwQAQfgALIAQEQANAIAMgAzUCAEIKfiAlfCIlPgIAIANBBGohAyAlQiCIISUgBEEBayIEDQALCyAlpyIARQ0AIAFBKEYNAiAGQQxqIAFBAnRqIAA2AgAgAUEBaiEBCyAGIAE2AqwBIAUgEUcNAAtBACEODAELDAMLAkACfwJAAkAgC0EpSQRAIAtFBEBBACELDAMLIAtBAWtB/////wNxIgBBAWoiAkEDcSEEIABBA0kEQCAGQbABaiEDQgAhJQwCCyACQfz///8HcSEAIAZBsAFqIQNCACElA0AgAyADNQIAQgV+ICV8IiU+AgAgA0EEaiICIAI1AgBCBX4gJUIgiHwiJT4CACADQQhqIgIgAjUCAEIFfiAlQiCIfCIlPgIAIANBDGoiAiACNQIAQgV+ICVCIIh8IiU+AgAgJUIgiCElIANBEGohAyAAQQRrIgANAAsMAQsgC0EoQfDawQAQfgALIAQEQANAIAMgAzUCAEIFfiAlfCIlPgIAIANBBGohAyAlQiCIISUgBEEBayIEDQALCyAlpyIARQ0AIAtBKEYNBSAGQbABaiALQQJ0aiAANgIAIAtBAWohCwsgBiALNgLQAiABIAsgASALSxsiA0EpTw0DIANBAnQhAwJAA0AgAwRAQX8gA0EEayIDIAZBsAFqaigCACIAIAMgBkEMamooAgAiAUcgACABSxsiBEUNAQwCCwtBf0EAIAMbIQQLAkACQAJAIARB/wFxDgIAAQILQQAgDg0CGiAHIAVBAWsiAEsEQCAAIApqLQAAQQFxDQEMAgsgACAHQfyywQAQfQALAkACQCAFIAdNBEAgBSAKaiEBQQAhAyAKIQQCQANAIAMgBUYNASADQQFqIQMgBEEBayIEIAVqIgAtAABBOUYNAAsgACAALQAAQQFqOgAAIAUgA2tBAWogBU8NBCAAQQFqQTAgA0EBaxDeARoMBAtBMSEDIA5FDQEMAgsgBSAHQYyzwQAQfgALIApBMToAAEEwIQMgBUEBRg0AIApBAWpBMCAFQQFrEN4BGgsgD0EBaiEPIB0gBSAHT3INACABIAM6AAAgBUEBaiEFCyAFIAdLDQEgBQshACAVIA87AQggFSAANgIEDAELIAUgB0Gcs8EAEH4ACyAVIAo2AgAgBkHABmokAAwFCyADQShB8NrBABB+AAtBKEEoQfDawQAQfQALIAFBKEHw2sEAEH4AC0GA28EAQRpB8NrBABCVAQALIAlByAhqIAlBmAhqKAIANgIAIAkgCSkCkAg3A8AICyAUIAkuAcgIIgBIBEAgCUEIaiAJKALACCAJKALECCAAIBMgCUGQCGoQQSAJKAIMIQEgCSgCCAwDC0ECIQEgCUECOwGQCCATRQRAQQEhASAJQQE2ApgIIAlBs8PBADYClAggCUGQCGoMAwsgCUGgCGogEzYCACAJQQA7AZwIIAlBAjYCmAggCUGpw8EANgKUCCAJQZAIagwCC0G0w8EAQSVB3MPBABCVAQALQQEhASAJQQE2ApgIIAlBs8PBADYClAggCUGQCGoLIQAgCSABNgLMCCAJIAA2AsgIIAkgHDYCxAggCSAbNgLACCAIIAlBwAhqEC4gCUHwCGokAAwBCyAAQShB8NrBABB+AAsPCyABIwBBgAFrIgMkACA/vSEmAn9BAiA/ID9iDQAaICZC/////////weDIilCgICAgICAgAiEICZCAYZC/v///////w+DICZCNIinQf8PcSINGyInQgGDISggJkKAgICAgICA+P8AgyElAkACQCApUARAQQMgJUKAgICAgICA+P8AUQ0DGiAlUEUNAUEEDAMLICVQDQELQoCAgICAgIAgICdCAYYgJ0KAgICAgICACFEiABshJ0ICQgEgABshJUHLd0HMdyAAGyANaiENIChQDAELIA1BswhrIQ1CASElIChQCyEAIAMgDTsBeCADICU3A3AgA0IBNwNoIAMgJzcDYCADIAA6AHoC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DQALQcC/wQAQmwEACyABIAhqQQFrIQogKUIKfiAmICp8fSEtICogLkIKfiAwIDF8IDpCgICAgAh8QiCIfCA5fEIKfn0gKH58IS8gKyAmfSEwQgAhKQNAICYgKnwiJSArVCApIDB8ICYgL3xackUEQEEAIQAMBQsgCiACQQFrIgI6AAAgKSAtfCIxICpUIQAgJSArWg0FICkgKn0hKSAlISYgKiAxWA0ACwwEC0ERQRFB0L/BABB9AAsgAUERQeC/wQAQfQALAkAgJSAqWiACcg0AICogJSAofCImWCAqICV9ICYgKn1UcQ0AIAVBADYCAAwECyAlID5CA31YICVCAlpxRQRAIAVBADYCAAwECyAFIAk7AQggBSABQQFqNgIEDAILICYhJQsCQCAlICxaIAByDQAgLCAlICp8IiZYICwgJX0gJiAsfVRxDQAgBUEANgIADAILICUgKEJYfiAnfFggJSAoQhR+WnFFBEAgBUEANgIADAILIAUgCTsBCCAFIAE2AgQLIAUgCDYCAAsgBEEwaiQADAELIARBADYCGCMAQRBrIgEkACABIAQ2AgwgASAEQRBqNgIIIwBB8ABrIgAkACAAQbDFwQA2AgwgACABQQhqNgIIIABBsMXBADYCFCAAIAFBDGo2AhAgAEHAxcEANgIYIABBAjYCHAJAIARBGGoiASgCAEUEQCAAQQM2AlwgAEH8xcEANgJYIABCAzcCZCAAIABBEGqtQoCAgIDwCoQ3A0ggACAAQQhqrUKAgICA8AqENwNADAELIABBMGogAUEQaikCADcDACAAQShqIAFBCGopAgA3AwAgACABKQIANwMgIABBBDYCXCAAQbDGwQA2AlggAEIENwJkIAAgAEEQaq1CgICAgPAKhDcDUCAAIABBCGqtQoCAgIDwCoQ3A0ggACAAQSBqrUKAgICAkAuENwNACyAAIABBGGqtQoCAgICAC4Q3AzggACAAQThqNgJgIABB2ABqQYStwQAQiwEACwJAIAMoAiBFBEAgA0HQAGohEyMAQaAKayIBJAACQAJAAkACQAJAIAECfwJAAkACQAJAAkACQCAMKQMAIiVQRQRAIAwpAwgiJlANASAMKQMQIidQDQIgJSAnfCIoICVUDQMgJSAmVA0EIAwsABohFSAMLwEYIQAgASAlPgIAIAFBAUECICVCgICAgBBUIgIb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DAsRACABIAAoAgAgACgCBBC1AQshACAAQvSF952xy9SvwwA3AwggAEKcu7bEi83/r2Y3AwALIgAgAELtuq22zYXU9eMANwMIIABC+IKZvZXuxsW5fzcDAAsTACAAQbimwQA2AgQgACABNgIACxAAIAEgACgCACAAKAIEECULEAAgASgCFCABKAIYIAAQLAthAQF/AkACQCAAQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABak8EQCACQQAgAyABQSdqSxsNASAAECgMAgtBvZ3BAEEuQeydwQAQlQEAC0H8ncEAQS5BrJ7BABCVAQALCw0AIAAoAgAgASACEAoLDQAgACgCACABIAIQEwsNACAANQIAQQEgARBJCw8AQanEwQBBKyAAEJUBAAsNACAAKQMAQQEgARBJC7sCAgJ/AX4gACgCACkDACEEIwBBgAFrIgMkAAJ/AkACQCABKAIcIgBBEHFFBEAgAEEgcQ0BIARBASABEEkMAwtBACEAA0AgACADakH/AGogBKdBD3EiAkEwciACQdcAaiACQQpJGzoAACAAQQFrIQAgBEIQVCAEQgSIIQRFDQALDAELQQAhAANAIAAgA2pB/wBqIASnQQ9xIgJBMHIgAkE3aiACQQpJGzoAACAAQQFrIQAgBEIQVCAEQgSIIQRFDQALIABBgAFqIgJBgQFPBEAgAkGAAUGkx8EAEHwACyABQQFBtMfBAEECIAAgA2pBgAFqQQAgAGsQJgwBCyAAQYABaiICQYEBTwRAIAJBgAFBpMfBABB8AAsgAUEBQbTHwQBBAiAAIANqQYABakEAIABrECYLIANBgAFqJAALDgAgAUHzgcAAQQUQtQELDgAgAUHvg8AAQREQtQELDgAgAUHEkMAAQQoQtQELCwAgACgCACABEG0LDQAgAEGolsAAIAEQLAsKACAAIAEQTUEACw4AIAFB/JfAAEEFELUBCw0AIABByJrAACABECwLDgAgAUHAmsAAQQUQtQELCQAgACABEBgACw0AIABB1JrBACABECwLDQAgAEH8nMEAIAEQLAsMACAAIAEpAgA3AwALDQAgAEHEqsEAIAEQLAsOACABQbyqwQBBBRC1AQsaACAAIAFBlOPBACgCACIAQcEAIAAbEQIAAAvyAwEHfyMAQRBrIgMkAAJAAn8CQCABQYABTwRAIANBADYCDCAB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MDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5RXJyb3IvcnVzdGMvZWViOTBjZGExOTY5MzgzZjU2YTI2MzdjYmQzMDM3YmRmNTk4ODQxYy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9uYXZpZ2F0ZS5ycwD4ABAAXwAAABcCAAAvAAAA+AAQAF8AAACiAAAAJAAAAAAAAAAEAAAABAAAAAUAAABn5glqha5nu3Lzbjw69U+lf1IOUYxoBZur2YMfGc3gW3NyYy9saWIucnMAAKgBEAAKAAAAKQAAABoAAABOb3N0ckV2ZW50cHVia2V5a2luZGNvbnRlbnR0YWdzaWRjcmVhdGVkX2F0c3RydWN0IE5vc3RyRXZlbnRNaW5lZFJlc3VsdGV2ZW50dG90YWxfdGltZWtocy9Vc2Vycy9zYW5kd2ljaC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAB0CEABuAAAAlQAAAA4AAABldmVudF9qc29uOiCcAhAADAAAAG5vbmNlAAAABgAAAAwAAAAEAAAABwAAAAgAAAAJAAAAqAEQAAoAAACUAAAAGAAAAKgBEAAKAAAAlQAAABgAQfiFwAAL7QQBAAAACgAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkvcnVzdGMvZWViOTBjZGExOTY5MzgzZjU2YTI2MzdjYmQzMDM3YmRmNTk4ODQxYy9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAADcDEABLAAAABgoAAA4AAABGYWlsZWQgdG8gY29tcHV0ZSBldmVudCBoYXNoLmVycm9yTWluaW5nIGNhbmNlbGxlZC5NaW5lZCBzdWNjZXNzZnVsbHkgd2l0aCBub25jZTogAADHAxAAHwAAAAsAAAAEAAAABAAAAAwAAACoARAACgAAALQAAABDAAAARmFpbGVkIHRvIGNvbnZlcnQgcmVwb3J0X3Byb2dyZXNzIHRvIEZ1bmN0aW9uSW52YWxpZCBwcm9ncmVzcyBjYWxsYmFjay5KU09OIHBhcnNpbmcgZXJyb3I6IABXBBAAFAAAAEludmFsaWQgZXZlbnQgSlNPTjogdAQQABQAAABFcnJvciBjYWxsaW5nIHByb2dyZXNzIGNhbGxiYWNrOiAAAACQBBAAIQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGUvVXNlcnMvc2FuZHdpY2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZV9qc29uLTEuMC4xMjgvc3JjL2RlLnJzAAAA5AQQAGEAAACaBAAAIgAAAOQEEABhAAAAkAQAACYAQfCKwAALBQEAAAANAEGAi8AACwUBAAAADgBBkIvAAAsFAQAAAA8AQaCLwAALBQEAAAAPAEGwi8AACwUBAAAAEABBwIvAAAuOBQEAAAARAAAAc3RydWN0IE5vc3RyRXZlbnQgd2l0aCA2IGVsZW1lbnRzAAAAyAUQACEAAAAAAAAACAAAAAQAAAASAAAAcHVia2V5a2luZGNvbnRlbnR0YWdzaWRjcmVhdGVkX2F0L3J1c3RjL2VlYjkwY2RhMTk2OTM4M2Y1NmEyNjM3Y2JkMzAzN2JkZjU5ODg0MWMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbWFwL2VudHJ5LnJzAAAAJQYQAGAAAABxAQAANgAAAC9ydXN0Yy9lZWI5MGNkYTE5NjkzODNmNTZhMjYzN2NiZDMwMzdiZGY1OTg4NDFjL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL25vZGUucnNhc3NlcnRpb24gZmFpbGVkOiBlZGdlLmhlaWdodCA9PSBzZWxmLmhlaWdodCAtIDEAmAYQAFsAAACvAgAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHNyYy5sZW4oKSA9PSBkc3QubGVuKCmYBhAAWwAAAC8HAAAFAAAAmAYQAFsAAACvBAAAIwAAAJgGEABbAAAA7wQAACQAAABhc3NlcnRpb24gZmFpbGVkOiBlZGdlLmhlaWdodCA9PSBzZWxmLm5vZGUuaGVpZ2h0IC0gMQAAAJgGEABbAAAA8AMAAAkAAAAvcnVzdGMvZWViOTBjZGExOTY5MzgzZjU2YTI2MzdjYmQzMDM3YmRmNTk4ODQxYy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9uYXZpZ2F0ZS5ycwDUBxAAXwAAAFkCAAAwAAAAYSBzZXF1ZW5jZQBB2JDAAAvtAgEAAAATAAAAFAAAABUAAABPbmNlIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAAGgIEAAqAAAAb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gbWF5IG5vdCBiZSBwZXJmb3JtZWQgcmVjdXJzaXZlbHmcCBAAOAAAAC9ydXN0Yy9lZWI5MGNkYTE5NjkzODNmNTZhMjYzN2NiZDMwMzdiZGY1OTg4NDFjL2xpYnJhcnkvc3RkL3NyYy9zeW5jL29uY2UucnPcCBAATAAAAJ4AAAAyAAAAL3J1c3RjL2VlYjkwY2RhMTk2OTM4M2Y1NmEyNjM3Y2JkMzAzN2JkZjU5ODg0MWMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbmF2aWdhdGUucnMAOAkQAF8AAADHAAAAJwAAADgJEABfAAAAFwIAAC8AAAA4CRAAXwAAAKIAAAAkAEHQk8AACwUBAAAADgBB4JPAAAv1AgEAAAANAAAATWFwIGtleSBpcyBub3QgYSBzdHJpbmcgYW5kIGNhbm5vdCBiZSBhbiBvYmplY3Qga2V5Y2FsbGVkIGBPcHRpb246OnVud3JhcF90aHJvdygpYCBvbiBhIGBOb25lYCB2YWx1ZS9Vc2Vycy9zYW5kd2ljaC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NlcmRlX2pzb24tMS4wLjEyOC9zcmMvc2VyLnJzAABMChAAYgAAAC4IAAAzAAAATAoQAGIAAAAhCAAAQAAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGVMChAAYgAAAAsGAAASAAAAXCJcXFxiXGZcblxyXHQwMTIzNDU2Nzg5YWJjZGVmAAAWAAAADAAAAAQAAAAXAAAAGAAAAAkAAAAbAAAADAAAAAQAAAAcAAAAHQAAAAkAQeCWwAAL0wMBAAAAHgAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkvcnVzdGMvZWViOTBjZGExOTY5MzgzZjU2YTI2MzdjYmQzMDM3YmRmNTk4ODQxYy9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAAJ8LEABLAAAABgoAAA4AAABFcnJvcm1pc3NpbmcgZmllbGQgYGAAAAABDBAADwAAABAMEAABAAAAaW52YWxpZCBsZW5ndGggLCBleHBlY3RlZCAAACQMEAAPAAAAMwwQAAsAAABkdXBsaWNhdGUgZmllbGQgYAAAAFAMEAARAAAAEAwQAAEAAAAgY2FuJ3QgYmUgcmVwcmVzZW50ZWQgYXMgYSBKYXZhU2NyaXB0IG51bWJlcgEAAAAAAAAAdAwQACwAAAAvVXNlcnMvc2FuZHdpY2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5yc7AMEABoAAAANQAAAA4AAAD//////////ygNEABBwJrAAAsqRXJyb3IAAAAgAAAADAAAAAQAAAAhAAAAIgAAACMAAAAKClN0YWNrOgoKAEH0msAAC5sCAQAAACQAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5L3J1c3RjL2VlYjkwY2RhMTk2OTM4M2Y1NmEyNjM3Y2JkMzAzN2JkZjU5ODg0MWMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAACzDRAASwAAAAYKAAAOAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGFmdGVyIGJlaW5nIGRyb3BwZWRKc1ZhbHVlKCkAQg4QAAgAAABKDhAAAQAAADAxMjM0NTY3ODlhYmNkZWZ1dXV1dXV1dWJ0bnVmcnV1dXV1dXV1dXV1dXV1dXV1dQAAIgBByJ3AAAsBXABB7J7AAAvdJi9ydXN0Yy9lZWI5MGNkYTE5NjkzODNmNTZhMjYzN2NiZDMwMzdiZGY1OTg4NDFjL2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAbA8QAE8AAAAaBgAAFAAAAGwPEABPAAAAGgYAACEAAABsDxAATwAAAA4GAAAUAAAAbA8QAE8AAAAOBgAAIQAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuaXNfY2hhcl9ib3VuZGFyeShuZXdfbGVuKS9ydXN0Yy9lZWI5MGNkYTE5NjkzODNmNTZhMjYzN2NiZDMwMzdiZGY1OTg4NDFjL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwAsEBAASwAAAIIFAAANAAAAbA8QAE8AAACbBAAAJAAAAEVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290IE5hTiBvciArLy1pbmYpbG9uZSBsZWFkaW5nIHN1cnJvZ2F0ZSBpbiBoZXggZXNjYXBldHJhaWxpbmcgY29tbWF0cmFpbGluZyBjaGFyYWN0ZXJzdW5leHBlY3RlZCBlbmQgb2YgaGV4IGVzY2FwZXJlY3Vyc2lvbiBsaW1pdCBleGNlZWRlZCBhdCBsaW5lICBjb2x1bW4gAAAAAQAAAAAAAADMEhAACQAAANUSEAAIAAAAaW52YWxpZCB0eXBlOiAsIGV4cGVjdGVkIAAAAPgSEAAOAAAABhMQAAsAAABpbnZhbGlkIHZhbHVlOiAAJBMQAA8AAAAGExAACwAAAGZsb2F0aW5nIHBvaW50IGBgAAAARBMQABAAAABUExAAAQAAAG51bGwvVXNlcnMvc2FuZHdpY2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZV9qc29uLTEuMC4xMjgvc3JjL2Vycm9yLnJzbBMQAGQAAAD3AQAAIQAAAGwTEABkAAAA+wEAAAwAAABsExAAZAAAAAICAAAhAAAAbBMQAGQAAAALAgAAKgAAAGwTEABkAAAADwIAACwAAAAvVXNlcnMvc2FuZHdpY2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZXJkZV9qc29uLTEuMC4xMjgvc3JjL3JlYWQucnMAIBQQAGMAAACgAQAARQAAACAUEABjAAAApQEAAD0AAAAgFBAAYwAAAK0BAAAaAAAAIBQQAGMAAAD6AQAAEwAAACAUEABjAAAA/wEAADMAAAAgFBAAYwAAAAMCAAA+AAAAIBQQAGMAAAAJAgAAOgAAACAUEABjAAAAVgIAABMAAAAgFBAAYwAAAGgCAAAZAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2luZi1pbmZOYU4AAAAAAAAAAPA/AAAAAAAAJEAAAAAAAABZQAAAAAAAQI9AAAAAAACIw0AAAAAAAGr4QAAAAACAhC5BAAAAANASY0EAAAAAhNeXQQAAAABlzc1BAAAAIF+gAkIAAADodkg3QgAAAKKUGm1CAABA5ZwwokIAAJAexLzWQgAANCb1awxDAIDgN3nDQUMAoNiFVzR2QwDITmdt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c2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAJROEAApAAAAqAQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAACUThAAKQAAAK4EAAANAAAAAQAAAAAAAABlbnRpdHkgbm90IGZvdW5kcGVybWlzc2lvbiBkZW5pZWRjb25uZWN0aW9uIHJlZnVzZWRjb25uZWN0aW9uIHJlc2V0aG9zdCB1bnJlYWNoYWJsZW5ldHdvcmsgdW5yZWFjaGFibGVjb25uZWN0aW9uIGFib3J0ZWRub3QgY29ubmVjdGVkYWRkcmVzcyBpbiB1c2VhZGRyZXNzIG5vdCBhdmFpbGFibGVuZXR3b3JrIGRvd25icm9rZW4gcGlwZWVudGl0eSBhbHJlYWR5IGV4aXN0c29wZXJhdGlvbiB3b3VsZCBibG9ja25vdCBhIGRpcmVjdG9yeWlzIGEgZGlyZWN0b3J5ZGlyZWN0b3J5IG5vdCBlbXB0eXJlYWQtb25seSBmaWxlc3lzdGVtIG9yIHN0b3JhZ2UgbWVkaXVtZmlsZXN5c3RlbSBsb29wIG9yIGluZGlyZWN0aW9uIGxpbWl0IChlLmcuIHN5bWxpbmsgbG9vcClzdGFsZSBuZXR3b3JrIGZpbGUgaGFuZGxlaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJpbnZhbGlkIGRhdGF0aW1lZCBvdXR3cml0ZSB6ZXJvbm8gc3RvcmFnZSBzcGFjZXNlZWsgb24gdW5zZWVrYWJsZSBmaWxlZmlsZXN5c3RlbSBxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeW90aGVyIGVycm9ydW5jYXRlZ29yaXplZCBlcnJvciAob3MgZXJyb3IgKQAAAAEAAAAAAAAAMVIQAAsAAAA8UhAA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CQEYBAEJAQMBBSsDPAgqGAEgNwEBAQQIBAEDBwoCHQE6AQEBAgQIAQkBCgIaAQICOQEEAgQCAgMDAR4CAwELAjkBBAUBAgQBFAIWBgEBOgEBAgEECAEHAwoCHgE7AQEBDAEJASgBAwE3AQEDBQMBBAcCCwIdAToBAgECAQMBBQIHAgsCHAI5AgEBAgQIAQkBCgIdAUgBBAECAwEBCAFRAQIHDAhiAQIJCwdJAhsBAQEBATcOAQUBAgULASQJAWYEAQYBAgICGQIEAxAEDQECAgYBDwEAAwADHQIeAh4CQAIBBwgBAgsJAS0DAQF1AiIBdgMEAgkBBgPbAgIBOgEBBwEBAQECCAYKAgEwHzEEMAcBAQUBKAkMAiAEAgIBAzgBAQIDAQEDOggCApgDAQ0BBwQBBgEDAsZAAAHDIQADjQFgIAAGaQIABAEKIAJQAgABAwEEARkCBQGXAhoSDQEmCBkLLgMwAQIEAgInAUMGAgICAgwBCAEvATMBAQMCAgUCAQEqAggB7gECAQQBAAEAEBAQAAIAAeIBlQUAAwECBQQoAwQBpQIABAACUANGCzEEewE2DykBAgIKAzEEAgIHAT0DJAUBCD4BDAI0CQoEAgFfAwIBAQIGAQIBnQEDCBUCOQIBAQEBFgEOBwMFwwgCAwEBFwFRAQIGAQECAQECAQLrAQIEBgIBAhsCVQgCAQECagEBAQIGAQFlAwIEAQUACQEC9QEKAgEBBAGQBAICBAEgCigGAgQIAQkGAgMuDQECAAcBBgEBUhYCBwECAQJ6BgMBAQIBBwEBSAIDAQEBAAILAjQFBQEBAQABBg8ABTsHAAE/BFEBAAIALgIXAAEBAwQFCAgCBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFZAGgBwABPQQABAAHbQcAYIDwAHsJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjgxLjAgKGVlYjkwY2RhMSAyMDI0LTA5LTA0KQZ3YWxydXMGMC4yMS4xDHdhc20tYmluZGdlbhIwLjIuOTMgKDBmMGI0ZTJkMCkALA90YXJnZXRfZmVhdHVyZXMCKw9tdXRhYmxlLWdsb2JhbHMrCHNpZ24tZXh0");let C=BigInt(M),i=BigInt(w),c=(H,S)=>{let q={type:"progress",workerId:M,hashRate:H,bestPowData:S?p(S):void 0};self.postMessage(q)},b=()=>L,f=function(H,S,q,z,W,r){let V=h(H,E.__wbindgen_malloc,E.__wbindgen_realloc),m=N,T=h(q,E.__wbindgen_malloc,E.__wbindgen_realloc),e=N,X=h(z,E.__wbindgen_malloc,E.__wbindgen_realloc),O=N;return J(E.mine_event(V,m,S,T,e,X,O,o(W),o(r)))}(g,Q,C.toString(),i.toString(),c,b);self.postMessage({type:"result",data:f,workerId:M})}catch(C){let i=C instanceof Error?C.message:JSON.stringify(C);console.error("Error during mining:",i),self.postMessage({type:"error",error:i,workerId:M})}finally{K=!1}}}catch(I){let g=I.message||"Unknown error occurred in worker";console.error("Critical Worker error:",g),self.postMessage({type:"error",error:g,workerId:M}),self.close()}}})();})();\n'); + } + + // src/index.ts + var Notemine = class _Notemine { + constructor(options) { + this.REFRESH_EVERY_MS = 250; + this._workerMaxHashRates = /* @__PURE__ */ new Map(); + this._workerHashRates = /* @__PURE__ */ new Map(); + this._lastRefresh = 0; + this._totalHashRate = 0; + this.mining$ = new BehaviorSubject(false); + this.cancelled$ = new BehaviorSubject(false); + this.result$ = new BehaviorSubject(null); + this.workers$ = new BehaviorSubject([]); + this.workersPow$ = new BehaviorSubject({}); + this.highestPow$ = new BehaviorSubject(null); + this.progressSubject = new Subject(); + this.errorSubject = new Subject(); + this.cancelledEventSubject = new Subject(); + this.successSubject = new Subject(); + this.progress$ = this.progressSubject.asObservable(); + this.error$ = this.errorSubject.asObservable(); + this.cancelledEvent$ = this.cancelledEventSubject.asObservable(); + this.success$ = this.successSubject.asObservable(); + this._content = options?.content || ""; + this._tags = [..._Notemine._defaultTags, ...options?.tags || []]; + this._pubkey = options?.pubkey || ""; + this._difficulty = options?.difficulty || 20; + this._numberOfWorkers = options?.numberOfWorkers || navigator.hardwareConcurrency || 4; + } + static { + this._defaultTags = [["miner", "notemine"]]; + } + set content(content) { + this._content = content; + } + get content() { + return this._content; + } + set tags(tags) { + this._tags = Array.from(/* @__PURE__ */ new Set([...this._tags, ...tags])); + } + get tags() { + return this._tags; + } + set pubkey(pubkey) { + this._pubkey = pubkey; + } + get pubkey() { + return this._pubkey; + } + set difficulty(difficulty) { + this._difficulty = difficulty; + } + get difficulty() { + return this._difficulty; + } + set numberOfWorkers(numberOfWorkers) { + this._numberOfWorkers = numberOfWorkers; + } + get numberOfWorkers() { + return this._numberOfWorkers; + } + set lastRefresh(interval) { + this._lastRefresh = interval; + } + get lastRefresh() { + return this._lastRefresh; + } + get totalHashRate() { + return this._totalHashRate; + } + async mine() { + if (this.mining$.getValue()) return; + if (!this.pubkey) { + throw new Error("Public key is not set."); + } + if (!this.content) { + throw new Error("Content is not set."); + } + this.mining$.next(true); + this.cancelled$.next(false); + this.result$.next(null); + this.workers$.next([]); + this.workersPow$.next({}); + this.highestPow$.next({}); + await this.initializeWorkers(); + } + stop() { + this.cancel(); + } + cancel() { + if (!this.mining$.getValue()) return; + this.cancelled$.next(true); + this.workers$.getValue().forEach((worker) => worker.terminate()); + this.mining$.next(false); + this.cancelledEventSubject.next({ reason: "Mining cancelled by user." }); + } + async initializeWorkers() { + try { + const workers = []; + for (let i = 0; i < this.numberOfWorkers; i++) { + const worker = Worker2(); + worker.onmessage = this.handleWorkerMessage.bind(this); + worker.onerror = this.handleWorkerError.bind(this); + const event = this.prepareEvent(); + worker.postMessage({ + type: "mine", + event, + difficulty: this.difficulty, + id: i, + totalWorkers: this.numberOfWorkers + }); + workers.push(worker); + await new Promise((resolve) => setTimeout(resolve, 100)); + } + this.workers$.next(workers); + } catch (error) { + this.errorSubject.next({ error }); + console.error("Error initializing workers:", error); + } + } + handleWorkerMessage(e) { + const data = e.data; + const { type, workerId, hashRate } = data; + if (type === "initialized") ; else if (type === "progress") { + let bestPowData; + if (data?.bestPowData) { + bestPowData = data.bestPowData; + const workersPow = { ...this.workersPow$.getValue() }; + workersPow[workerId] = bestPowData; + this.workersPow$.next(workersPow); + const highestPow = this.highestPow$.getValue(); + if (!highestPow || bestPowData && bestPowData.bestPow > (highestPow?.bestPow || 0)) { + this.highestPow$.next({ + ...bestPowData, + workerId + }); + } + } + this.calculateHashRate(workerId, data.hashRate); + this.progressSubject.next({ workerId, hashRate, bestPowData }); + } else if (type === "result") { + this.result$.next(data.data); + this.mining$.next(false); + this.workers$.getValue().forEach((worker) => worker.terminate()); + this.successSubject.next({ result: this.result$.getValue() }); + } else if (type === "error") { + console.error("Error from worker:", data.error); + this.errorSubject.next({ error: data.error || "Unknown error from worker" }); + } + } + handleWorkerError(e) { + console.error("Worker encountered an error:", e); + const errorDetails = { + message: e.message, + error: e.error ? e.error.message : null + }; + this.errorSubject.next({ error: JSON.stringify(errorDetails) }); + } + prepareEvent() { + const event = { + pubkey: this.pubkey, + kind: 1, + tags: this.tags, + content: this.content, + created_at: Math.floor(Date.now() / 1e3) + }; + return JSON.stringify(event); + } + calculateHashRate(workerId, hashRate) { + if (!hashRate) return; + let workerHashRates = this._workerHashRates.get(workerId) || []; + workerHashRates.push(hashRate); + if (workerHashRates.length > 11) { + workerHashRates.shift(); + } + this._workerHashRates.set(workerId, workerHashRates); + this.recordMaxRate(workerId, hashRate); + this.refreshHashRate(); + } + async recordMaxRate(workerId, hashRate) { + const maxHashRate = this._workerMaxHashRates.get(workerId); + if (maxHashRate === void 0 || hashRate > maxHashRate) { + this._workerMaxHashRates.set(workerId, Math.round(hashRate)); + } + } + averageHashRate(arr) { + let sum = 0; + for (let i = 0; i < arr.length; i++) { + sum += arr[i]; + } + return arr.length === 0 ? 0 : sum / arr.length; + } + refreshHashRate() { + if (Date.now() - this.lastRefresh < this.REFRESH_EVERY_MS) { + return; + } + let totalRate = 0; + this._workerHashRates.forEach((hashRates) => { + if (hashRates.length > 0) { + totalRate += this.averageHashRate(hashRates); + } + }); + this._totalHashRate = Math.round(totalRate / 1e3); + this._lastRefresh = Date.now(); + } + }; + + const user = writable({ + isAnon: true, + pubkey: '', + secret: '' + }); + + const events = writable({ + k0: {}, + k3: {}, + k10002: {} + }); + + const miningState = writable({ + mining: false, + result: 'Waiting for worker to initialize...', + relayStatus: '', + hashRate: 0, + overallBestPow: null, + workersBestPow: [], + publishSuccessNum: 0, + }); + + const relaySettings = writable({ + myRelaysVisible: false, + powRelaysEnabled: true, + myRelays: [] + }); + + const contentState = writable({ + content: '', + difficulty: 21, + numberOfWorkers: navigator.hardwareConcurrency || 2 + }); + + const POW_RELAYS = [ + 'wss://nostr.bitcoiner.social', + 'wss://nostr.mom', + 'wss://nos.lol', + 'wss://powrelay.xyz', + 'wss://labour.fiatjaf.com/', + 'wss://nostr.lu.ke', + 'wss://140.f7z.io' + ]; + + const usub = new writable(null); + + const activeRelays = derived( + relaySettings, + ($relaySettings) => { + let relays = []; + if ($relaySettings.myRelays && $relaySettings.myRelays.length > 0) { + relays.push(...$relaySettings.myRelays); + } + if ($relaySettings.powRelaysEnabled) { + relays.push(...POW_RELAYS); + } + return relays; + } + ); + + const powRelays = new readable(POW_RELAYS); + + const getPow = (hex) => { + let count = 0; + + for (let i = 0; i < hex.length; i++) { + const nibble = parseInt(hex[i], 16); + if (nibble === 0) { + count += 4; + } else { + count += Math.clz32(nibble) - 28; + break; + } + } + + return count; + }; + + const verifyPow = (event) => { + //console.log(event) + const hash = getEventHash(event); + const count = getPow(hash); + const nonceTag = event.tags.find(tag => tag[0] === 'nonce'); + if (!nonceTag || nonceTag.length < 3) { + return 0; + } + const targetDifficulty = parseInt(nonceTag[2], 10); + return Math.min(count, targetDifficulty); + }; + + const pool = new SimplePool(); + + const timeout = (promise, ms) => new Promise((resolve, reject) => { + const timer = setTimeout(() => reject(new Error("Timeout")), ms); + promise + .then(value => { + clearTimeout(timer); + resolve(value); + }) + .catch(err => { + clearTimeout(timer); + reject(err); + }); + }); + + const publishEvent = async (ev) => { + //console.log(ev); + verifyPow(ev); + //console.log('Publishing event:', ev); + try { + const { isAnon, secret } = get_store_value(user); + if (isAnon) { + ev = finalizeEvent(ev, secret); + } else { + ev = await window.nostr.signEvent(ev); + } + const isGood = verifyEvent(ev); + if (!isGood) throw new Error('Event is not valid'); + + const currentActiveRelays = get_store_value(activeRelays); + const pubs = pool.publish(currentActiveRelays, ev).map(p => timeout(p, 10000)); + + const results = await Promise.allSettled(pubs); + const successCount = results.filter(result => result.status === 'fulfilled').length; + + miningState.update( m => ({...m, publishSuccessNum: successCount}) ); + + //console.log(`Event published successfully to ${successCount} relays.`); + } catch (error) { + console.error('Error publishing event:', error); + } + }; + + + + function setMyRelays(relays) { + //console.log(`Setting my relays: ${relays}`); + relaySettings.update(r => ({ + ...r, + myRelays: Array.from(new Set([...r.myRelays, ...relays])) + })); + } + + function onK0(event){ + let profile; + try { + profile = JSON.parse(event.content); + let photo; + if(profile?.photo) photo = profile.photo; + else if(profile?.picture) photo = profile.picture; + else if(profile?.avatar) photo = profile.avatar; + user.update( u => ({...u, photo, name: profile.name }) ); + } + catch(e){ + console.error('Error parsing K0 content:', e); + } + //console.log('K0 profile:', profile) + events.update( e => ({...e, k0: event}) ); + } + + function onK3(event){ + let relays = []; + try{ + relays = Object.keys(JSON.parse(event.content)); + } + catch(e){ + console.error('Error parsing K3 content:', e); + console.warn('K3 content:', event.content); + } + + //console.log('K3 relays:', relays) + setMyRelays(relays); + events.update( e => ({...e, k3: event}) ); + } + + function onK10002(event){ + const relays = event.tags.filter( t => t[0] === 'r' ).map( r => r[1] ); + //console.log('K10002 relays:', relays) + setMyRelays(relays?.length? relays : []); + events.update( e => ({...e, k10002: event}) ); + } + + function onevent(event){ + switch(event.kind){ + case 0: return onK0(event) + case 3: return onK3(event) + case 10002: return onK10002(event) + } + } + + function oneose(){ + try { + const _usub = get_store_value(usub); + _usub.close(); + } + catch(e){ + console.warn('Error closing subscription:', e); + } + } + + function onclose( resolve ){ + user.update( u => ({...u, isAnon: false}) ); + resolve(); + } + + /* src/App.svelte generated by Svelte v3.59.2 */ + + const { Object: Object_1, console: console_1 } = globals; + const file = "src/App.svelte"; + + function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[25] = list[i]; + child_ctx[27] = i; + return child_ctx; + } + + function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[28] = list[i]; + return child_ctx; + } + + function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[28] = list[i]; + return child_ctx; + } + + // (218:2) {#if $user.isAnon} + function create_if_block_5(ctx) { + let t; + + const block = { + c: function create() { + t = text("Login"); + }, + m: function mount(target, anchor) { + insert_dev(target, t, anchor); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_5.name, + type: "if", + source: "(218:2) {#if $user.isAnon}", + ctx + }); + + return block; + } + + // (221:2) {#if !$user.isAnon} + function create_if_block_4(ctx) { + let t; + + const block = { + c: function create() { + t = text("Logout"); + }, + m: function mount(target, anchor) { + insert_dev(target, t, anchor); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_4.name, + type: "if", + source: "(221:2) {#if !$user.isAnon}", + ctx + }); + + return block; + } + + // (278:2) {#if $relaySettings.myRelaysVisible} + function create_if_block_1(ctx) { + let div; + let t0; + let br; + let t1; + let t2; + let strong; + let t4; + let ul; + let if_block0 = /*$relaySettings*/ ctx[2].myRelays.length > 0 && create_if_block_3(ctx); + let if_block1 = /*$relaySettings*/ ctx[2].myRelays.length > 0 && create_if_block_2(ctx); + let each_value_1 = /*$powRelays*/ ctx[3]; + validate_each_argument(each_value_1); + let each_blocks = []; + + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + + const block = { + c: function create() { + div = element("div"); + if (if_block0) if_block0.c(); + t0 = space(); + br = element("br"); + t1 = space(); + if (if_block1) if_block1.c(); + t2 = space(); + strong = element("strong"); + strong.textContent = "POW Relays:"; + t4 = space(); + ul = element("ul"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + add_location(br, file, 287, 6, 7061); + add_location(strong, file, 291, 6, 7211); + attr_dev(ul, "class", "svelte-1qw1mb0"); + add_location(ul, file, 292, 6, 7247); + attr_dev(div, "id", "relaysContainer"); + attr_dev(div, "class", "svelte-1qw1mb0"); + add_location(div, file, 278, 4, 6820); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block0) if_block0.m(div, null); + append_dev(div, t0); + append_dev(div, br); + append_dev(div, t1); + if (if_block1) if_block1.m(div, null); + append_dev(div, t2); + append_dev(div, strong); + append_dev(div, t4); + append_dev(div, ul); + + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(ul, null); + } + } + }, + p: function update(ctx, dirty) { + if (/*$relaySettings*/ ctx[2].myRelays.length > 0) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_3(ctx); + if_block0.c(); + if_block0.m(div, t0); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (/*$relaySettings*/ ctx[2].myRelays.length > 0) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_2(ctx); + if_block1.c(); + if_block1.m(div, t2); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + + if (dirty[0] & /*$powRelays*/ 8) { + each_value_1 = /*$powRelays*/ ctx[3]; + validate_each_argument(each_value_1); + let i; + + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx, each_value_1, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(ul, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_1.length; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + destroy_each(each_blocks, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1.name, + type: "if", + source: "(278:2) {#if $relaySettings.myRelaysVisible}", + ctx + }); + + return block; + } + + // (280:6) {#if $relaySettings.myRelays.length > 0} + function create_if_block_3(ctx) { + let strong; + let t1; + let ul; + let each_value_2 = /*$relaySettings*/ ctx[2].myRelays; + validate_each_argument(each_value_2); + let each_blocks = []; + + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); + } + + const block = { + c: function create() { + strong = element("strong"); + strong.textContent = "My Relays:"; + t1 = space(); + ul = element("ul"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + add_location(strong, file, 280, 6, 6900); + attr_dev(ul, "class", "svelte-1qw1mb0"); + add_location(ul, file, 281, 6, 6934); + }, + m: function mount(target, anchor) { + insert_dev(target, strong, anchor); + insert_dev(target, t1, anchor); + insert_dev(target, ul, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(ul, null); + } + } + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*$relaySettings*/ 4) { + each_value_2 = /*$relaySettings*/ ctx[2].myRelays; + validate_each_argument(each_value_2); + let i; + + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx, each_value_2, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(ul, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_2.length; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(strong); + if (detaching) detach_dev(t1); + if (detaching) detach_dev(ul); + destroy_each(each_blocks, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_3.name, + type: "if", + source: "(280:6) {#if $relaySettings.myRelays.length > 0}", + ctx + }); + + return block; + } + + // (283:8) {#each $relaySettings.myRelays as relay} + function create_each_block_2(ctx) { + let li; + let t_value = /*relay*/ ctx[28] + ""; + let t; + + const block = { + c: function create() { + li = element("li"); + t = text(t_value); + attr_dev(li, "class", "svelte-1qw1mb0"); + add_location(li, file, 283, 10, 6998); + }, + m: function mount(target, anchor) { + insert_dev(target, li, anchor); + append_dev(li, t); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*$relaySettings*/ 4 && t_value !== (t_value = /*relay*/ ctx[28] + "")) set_data_dev(t, t_value); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(li); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block_2.name, + type: "each", + source: "(283:8) {#each $relaySettings.myRelays as relay}", + ctx + }); + + return block; + } + + // (289:6) {#if $relaySettings.myRelays.length > 0} + function create_if_block_2(ctx) { + let input; + let mounted; + let dispose; + + const block = { + c: function create() { + input = element("input"); + attr_dev(input, "type", "checkbox"); + add_location(input, file, 289, 6, 7121); + }, + m: function mount(target, anchor) { + insert_dev(target, input, anchor); + input.checked = /*$relaySettings*/ ctx[2].powRelaysEnabled; + + if (!mounted) { + dispose = listen_dev(input, "change", /*input_change_handler*/ ctx[10]); + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*$relaySettings*/ 4) { + input.checked = /*$relaySettings*/ ctx[2].powRelaysEnabled; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(input); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2.name, + type: "if", + source: "(289:6) {#if $relaySettings.myRelays.length > 0}", + ctx + }); + + return block; + } + + // (294:8) {#each $powRelays as relay} + function create_each_block_1(ctx) { + let li; + let t_value = /*relay*/ ctx[28] + ""; + let t; + + const block = { + c: function create() { + li = element("li"); + t = text(t_value); + attr_dev(li, "class", "svelte-1qw1mb0"); + add_location(li, file, 294, 10, 7298); + }, + m: function mount(target, anchor) { + insert_dev(target, li, anchor); + append_dev(li, t); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*$powRelays*/ 8 && t_value !== (t_value = /*relay*/ ctx[28] + "")) set_data_dev(t, t_value); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(li); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block_1.name, + type: "each", + source: "(294:8) {#each $powRelays as relay}", + ctx + }); + + return block; + } + + // (343:2) {#each $miningState.workersBestPow as worker, key} + function create_each_block(ctx) { + let t0; + let t1; + let t2; + let t3_value = /*worker*/ ctx[25].bestPow + ""; + let t3; + let t4; + let t5_value = /*worker*/ ctx[25].nonce + ""; + let t5; + let t6; + let t7_value = /*worker*/ ctx[25].hash + ""; + let t7; + let t8; + let br; + + const block = { + c: function create() { + t0 = text("Miner #"); + t1 = text(/*key*/ ctx[27]); + t2 = text(": Best PoW: "); + t3 = text(t3_value); + t4 = text(" (Nonce: "); + t5 = text(t5_value); + t6 = text(" Hash: "); + t7 = text(t7_value); + t8 = text(" ) "); + br = element("br"); + add_location(br, file, 343, 90, 8350); + }, + m: function mount(target, anchor) { + insert_dev(target, t0, anchor); + insert_dev(target, t1, anchor); + insert_dev(target, t2, anchor); + insert_dev(target, t3, anchor); + insert_dev(target, t4, anchor); + insert_dev(target, t5, anchor); + insert_dev(target, t6, anchor); + insert_dev(target, t7, anchor); + insert_dev(target, t8, anchor); + insert_dev(target, br, anchor); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*$miningState*/ 32 && t3_value !== (t3_value = /*worker*/ ctx[25].bestPow + "")) set_data_dev(t3, t3_value); + if (dirty[0] & /*$miningState*/ 32 && t5_value !== (t5_value = /*worker*/ ctx[25].nonce + "")) set_data_dev(t5, t5_value); + if (dirty[0] & /*$miningState*/ 32 && t7_value !== (t7_value = /*worker*/ ctx[25].hash + "")) set_data_dev(t7, t7_value); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(t0); + if (detaching) detach_dev(t1); + if (detaching) detach_dev(t2); + if (detaching) detach_dev(t3); + if (detaching) detach_dev(t4); + if (detaching) detach_dev(t5); + if (detaching) detach_dev(t6); + if (detaching) detach_dev(t7); + if (detaching) detach_dev(t8); + if (detaching) detach_dev(br); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block.name, + type: "each", + source: "(343:2) {#each $miningState.workersBestPow as worker, key}", + ctx + }); + + return block; + } + + // (352:2) {:else} + function create_else_block(ctx) { + let t; + + const block = { + c: function create() { + t = text("No PoW results yet."); + }, + m: function mount(target, anchor) { + insert_dev(target, t, anchor); + }, + p: noop$1, + d: function destroy(detaching) { + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_else_block.name, + type: "else", + source: "(352:2) {:else}", + ctx + }); + + return block; + } + + // (350:2) {#if $miningState.overallBestPow && typeof $miningState.overallBestPow.bestPow === 'number'} + function create_if_block(ctx) { + let t_value = JSON.stringify(/*$miningState*/ ctx[5].overallBestPow, null, 2) + ""; + let t; + + const block = { + c: function create() { + t = text(t_value); + }, + m: function mount(target, anchor) { + insert_dev(target, t, anchor); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*$miningState*/ 32 && t_value !== (t_value = JSON.stringify(/*$miningState*/ ctx[5].overallBestPow, null, 2) + "")) set_data_dev(t, t_value); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block.name, + type: "if", + source: "(350:2) {#if $miningState.overallBestPow && typeof $miningState.overallBestPow.bestPow === 'number'}", + ctx + }); + + return block; + } + + function create_fragment(ctx) { + let h1; + let code; + let t1; + let p; + let t2; + let strong; + let t4; + let t5; + let button0; + let t6; + let t7; + let button1; + let t9; + let button2; + let t11; + let button3; + let t13; + let button4; + let t15; + let div; + let t16; + let img; + let img_src_value; + let t17; + let span; + let t18_value = (/*$user*/ ctx[1].isAnon ? 'anon' : /*$user*/ ctx[1].name) + ""; + let t18; + let t19; + let small; + let t21; + let t22; + let textarea; + let t23; + let br0; + let br1; + let t24; + let label0; + let t26; + let input0; + let t27; + let br2; + let br3; + let t28; + let label1; + let t30; + let input1; + let t31; + let br4; + let br5; + let t32; + let button5; + let t33; + let button5_disabled_value; + let t34; + let button6; + let t35; + let button6_disabled_value; + let t36; + let h20; + let t38; + let pre0; + let t39_value = /*$miningState*/ ctx[5].hashRate.toFixed(2) + ""; + let t39; + let t40; + let t41; + let h21; + let t43; + let pre1; + let t44; + let t45; + let t46; + let h22; + let t48; + let pre2; + let t49; + let t50; + let t51; + let h23; + let t53; + let pre3; + let t54_value = /*$miningState*/ ctx[5].result + ""; + let t54; + let t55; + let h24; + let t57; + let pre4; + let t58_value = /*$miningState*/ ctx[5].relayStatus + ""; + let t58; + let t59; + let t60_value = JSON.stringify(/*$activeRelays*/ ctx[0]) + ""; + let t60; + let mounted; + let dispose; + let if_block0 = /*$user*/ ctx[1].isAnon && create_if_block_5(ctx); + let if_block1 = !/*$user*/ ctx[1].isAnon && create_if_block_4(ctx); + let if_block2 = /*$relaySettings*/ ctx[2].myRelaysVisible && create_if_block_1(ctx); + let each_value = /*$miningState*/ ctx[5].workersBestPow; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + + function select_block_type(ctx, dirty) { + if (/*$miningState*/ ctx[5].overallBestPow && typeof /*$miningState*/ ctx[5].overallBestPow.bestPow === 'number') return create_if_block; + return create_else_block; + } + + let current_block_type = select_block_type(ctx); + let if_block3 = current_block_type(ctx); + + const block = { + c: function create() { + h1 = element("h1"); + code = element("code"); + code.textContent = "note⛏️"; + t1 = space(); + p = element("p"); + t2 = text("This is a demo of "); + strong = element("strong"); + strong.textContent = "Notemine"; + t4 = text(", a wasm Nostr note miner written in Rust."); + t5 = space(); + button0 = element("button"); + if (if_block0) if_block0.c(); + t6 = space(); + if (if_block1) if_block1.c(); + t7 = space(); + button1 = element("button"); + button1.textContent = "⚡️ zap me"; + t9 = space(); + button2 = element("button"); + button2.textContent = "🍻 follow"; + t11 = space(); + button3 = element("button"); + button3.textContent = "🤖 git"; + t13 = space(); + button4 = element("button"); + button4.textContent = "📦️ crate"; + t15 = space(); + div = element("div"); + t16 = text("posting as: \n \n "); + img = element("img"); + t17 = space(); + span = element("span"); + t18 = text(t18_value); + t19 = space(); + small = element("small"); + small.textContent = "(relays)"; + t21 = space(); + if (if_block2) if_block2.c(); + t22 = space(); + textarea = element("textarea"); + t23 = space(); + br0 = element("br"); + br1 = element("br"); + t24 = space(); + label0 = element("label"); + label0.textContent = "Difficulty:"; + t26 = space(); + input0 = element("input"); + t27 = space(); + br2 = element("br"); + br3 = element("br"); + t28 = space(); + label1 = element("label"); + label1.textContent = "# of workers:"; + t30 = space(); + input1 = element("input"); + t31 = space(); + br4 = element("br"); + br5 = element("br"); + t32 = space(); + button5 = element("button"); + t33 = text("Mine & Publish"); + t34 = space(); + button6 = element("button"); + t35 = text("Cancel Mining"); + t36 = space(); + h20 = element("h2"); + h20.textContent = "Hash Rate:"; + t38 = space(); + pre0 = element("pre"); + t39 = text(t39_value); + t40 = text(" kH/s"); + t41 = space(); + h21 = element("h2"); + h21.textContent = "Worker Overview:"; + t43 = space(); + pre1 = element("pre"); + t44 = text(" "); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t45 = text("\n"); + t46 = space(); + h22 = element("h2"); + h22.textContent = "Best PoW:"; + t48 = space(); + pre2 = element("pre"); + t49 = text(" "); + if_block3.c(); + t50 = text("\n"); + t51 = space(); + h23 = element("h2"); + h23.textContent = "Result:"; + t53 = space(); + pre3 = element("pre"); + t54 = text(t54_value); + t55 = space(); + h24 = element("h2"); + h24.textContent = "Relay Status:"; + t57 = space(); + pre4 = element("pre"); + t58 = text(t58_value); + t59 = space(); + t60 = text(t60_value); + add_location(code, file, 213, 4, 5026); + add_location(h1, file, 213, 0, 5022); + add_location(strong, file, 214, 21, 5072); + add_location(p, file, 214, 0, 5051); + attr_dev(button0, "class", "svelte-1qw1mb0"); + add_location(button0, file, 216, 0, 5145); + attr_dev(button1, "data-npub", "npub1uac67zc9er54ln0kl6e4qp2y6ta3enfcg7ywnayshvlw9r5w6ehsqq99rx"); + attr_dev(button1, "data-relays", "wss://relay.damus.io,wss://relay.snort.social,wss://nos.lol,wss://nostr.fmt.wiz.biz,wss://nostr.mutinywallet.com,wss://nostr.mywire.org,wss://relay.primal.net"); + attr_dev(button1, "style", "inline-block"); + attr_dev(button1, "class", "svelte-1qw1mb0"); + add_location(button1, file, 225, 0, 5267); + attr_dev(button2, "onclick", "document.location.href='https://njump.me/nprofile1qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy88wumn8ghj7mn0wvhxcmmv9uq3samnwvaz7tmwdaehgu3wvekhgtnhd9azucnf0ghsqg88wxhskpwga90umah7kdgq23xjlvwv6wz83r5lfy9m8m3garkkdusz5s2r'"); + set_style(button2, "display", "inline-block"); + set_style(button2, "cursor", "pointer"); + attr_dev(button2, "class", "svelte-1qw1mb0"); + add_location(button2, file, 233, 0, 5578); + attr_dev(button3, "onclick", "document.location.href='https://github.com/sandwichfarm/minnote-wasm'"); + set_style(button3, "display", "inline-block"); + set_style(button3, "cursor", "pointer"); + attr_dev(button3, "class", "svelte-1qw1mb0"); + add_location(button3, file, 240, 0, 5895); + attr_dev(button4, "onclick", "document.location.href='https://crates.io/crates/notemine'"); + set_style(button4, "display", "inline-block"); + set_style(button4, "cursor", "pointer"); + attr_dev(button4, "class", "svelte-1qw1mb0"); + add_location(button4, file, 247, 0, 6059); + attr_dev(img, "id", "userPhoto"); + attr_dev(img, "width", "20"); + attr_dev(img, "height", "20"); + + if (!src_url_equal(img.src, img_src_value = /*$user*/ ctx[1].isAnon + ? '/img/anon.svg' + : /*$user*/ ctx[1].photo)) attr_dev(img, "src", img_src_value); + + attr_dev(img, "alt", "User Photo"); + add_location(img, file, 257, 2, 6296); + attr_dev(span, "id", "userName"); + add_location(span, file, 264, 2, 6441); + attr_dev(small, "id", "relaysToggle"); + set_style(small, "cursor", "pointer"); + set_style(small, "color", "#333"); + attr_dev(small, "tabindex", "0"); + add_location(small, file, 268, 2, 6627); + attr_dev(div, "id", "user"); + attr_dev(div, "class", "svelte-1qw1mb0"); + add_location(div, file, 254, 0, 6215); + attr_dev(textarea, "id", "eventInput"); + attr_dev(textarea, "rows", "10"); + attr_dev(textarea, "placeholder", "140 characters or less."); + attr_dev(textarea, "maxlength", "140"); + attr_dev(textarea, "class", "svelte-1qw1mb0"); + add_location(textarea, file, 301, 0, 7370); + add_location(br0, file, 309, 0, 7524); + add_location(br1, file, 309, 4, 7528); + attr_dev(label0, "for", "difficulty"); + add_location(label0, file, 311, 0, 7534); + attr_dev(input0, "type", "number"); + attr_dev(input0, "id", "difficulty"); + attr_dev(input0, "min", "1"); + attr_dev(input0, "class", "svelte-1qw1mb0"); + add_location(input0, file, 312, 0, 7578); + add_location(br2, file, 318, 0, 7676); + add_location(br3, file, 318, 4, 7680); + attr_dev(label1, "for", "numberOfWorkers"); + add_location(label1, file, 320, 0, 7686); + attr_dev(input1, "type", "number"); + attr_dev(input1, "id", "numberOfWorkers"); + attr_dev(input1, "min", "1"); + attr_dev(input1, "max", navigator.hardwareConcurrency); + attr_dev(input1, "class", "svelte-1qw1mb0"); + add_location(input1, file, 321, 0, 7737); + add_location(br4, file, 328, 0, 7884); + add_location(br5, file, 328, 4, 7888); + button5.disabled = button5_disabled_value = /*$miningState*/ ctx[5].mining; + attr_dev(button5, "class", "svelte-1qw1mb0"); + add_location(button5, file, 330, 0, 7894); + button6.disabled = button6_disabled_value = !/*$miningState*/ ctx[5].mining; + attr_dev(button6, "class", "svelte-1qw1mb0"); + add_location(button6, file, 333, 0, 7985); + add_location(h20, file, 337, 0, 8075); + attr_dev(pre0, "id", "hashrate"); + attr_dev(pre0, "class", "svelte-1qw1mb0"); + add_location(pre0, file, 338, 0, 8095); + add_location(h21, file, 340, 0, 8161); + attr_dev(pre1, "id", "hashrate"); + attr_dev(pre1, "class", "svelte-1qw1mb0"); + add_location(pre1, file, 341, 0, 8187); + add_location(h22, file, 347, 0, 8375); + attr_dev(pre2, "id", "overallBestPow"); + attr_dev(pre2, "class", "svelte-1qw1mb0"); + add_location(pre2, file, 348, 0, 8394); + add_location(h23, file, 356, 0, 8624); + attr_dev(pre3, "id", "result"); + attr_dev(pre3, "class", "svelte-1qw1mb0"); + add_location(pre3, file, 357, 0, 8641); + add_location(h24, file, 359, 0, 8687); + attr_dev(pre4, "id", "relayStatus"); + attr_dev(pre4, "class", "svelte-1qw1mb0"); + add_location(pre4, file, 360, 0, 8710); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, h1, anchor); + append_dev(h1, code); + insert_dev(target, t1, anchor); + insert_dev(target, p, anchor); + append_dev(p, t2); + append_dev(p, strong); + append_dev(p, t4); + insert_dev(target, t5, anchor); + insert_dev(target, button0, anchor); + if (if_block0) if_block0.m(button0, null); + append_dev(button0, t6); + if (if_block1) if_block1.m(button0, null); + insert_dev(target, t7, anchor); + insert_dev(target, button1, anchor); + insert_dev(target, t9, anchor); + insert_dev(target, button2, anchor); + insert_dev(target, t11, anchor); + insert_dev(target, button3, anchor); + insert_dev(target, t13, anchor); + insert_dev(target, button4, anchor); + insert_dev(target, t15, anchor); + insert_dev(target, div, anchor); + append_dev(div, t16); + append_dev(div, img); + append_dev(div, t17); + append_dev(div, span); + append_dev(span, t18); + append_dev(div, t19); + append_dev(div, small); + append_dev(div, t21); + if (if_block2) if_block2.m(div, null); + insert_dev(target, t22, anchor); + insert_dev(target, textarea, anchor); + set_input_value(textarea, /*$contentState*/ ctx[4].content); + insert_dev(target, t23, anchor); + insert_dev(target, br0, anchor); + insert_dev(target, br1, anchor); + insert_dev(target, t24, anchor); + insert_dev(target, label0, anchor); + insert_dev(target, t26, anchor); + insert_dev(target, input0, anchor); + set_input_value(input0, /*$contentState*/ ctx[4].difficulty); + insert_dev(target, t27, anchor); + insert_dev(target, br2, anchor); + insert_dev(target, br3, anchor); + insert_dev(target, t28, anchor); + insert_dev(target, label1, anchor); + insert_dev(target, t30, anchor); + insert_dev(target, input1, anchor); + set_input_value(input1, /*$contentState*/ ctx[4].numberOfWorkers); + insert_dev(target, t31, anchor); + insert_dev(target, br4, anchor); + insert_dev(target, br5, anchor); + insert_dev(target, t32, anchor); + insert_dev(target, button5, anchor); + append_dev(button5, t33); + insert_dev(target, t34, anchor); + insert_dev(target, button6, anchor); + append_dev(button6, t35); + insert_dev(target, t36, anchor); + insert_dev(target, h20, anchor); + insert_dev(target, t38, anchor); + insert_dev(target, pre0, anchor); + append_dev(pre0, t39); + append_dev(pre0, t40); + insert_dev(target, t41, anchor); + insert_dev(target, h21, anchor); + insert_dev(target, t43, anchor); + insert_dev(target, pre1, anchor); + append_dev(pre1, t44); + + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(pre1, null); + } + } + + append_dev(pre1, t45); + insert_dev(target, t46, anchor); + insert_dev(target, h22, anchor); + insert_dev(target, t48, anchor); + insert_dev(target, pre2, anchor); + append_dev(pre2, t49); + if_block3.m(pre2, null); + append_dev(pre2, t50); + insert_dev(target, t51, anchor); + insert_dev(target, h23, anchor); + insert_dev(target, t53, anchor); + insert_dev(target, pre3, anchor); + append_dev(pre3, t54); + insert_dev(target, t55, anchor); + insert_dev(target, h24, anchor); + insert_dev(target, t57, anchor); + insert_dev(target, pre4, anchor); + append_dev(pre4, t58); + insert_dev(target, t59, anchor); + insert_dev(target, t60, anchor); + + if (!mounted) { + dispose = [ + listen_dev(button0, "click", /*toggleAuth*/ ctx[6], false, false, false, false), + listen_dev(small, "click", /*toggleRelays*/ ctx[7], false, false, false, false), + listen_dev(textarea, "input", /*textarea_input_handler*/ ctx[11]), + listen_dev(input0, "input", /*input0_input_handler*/ ctx[12]), + listen_dev(input1, "input", /*input1_input_handler*/ ctx[13]), + listen_dev(button5, "click", /*startMining*/ ctx[8], false, false, false, false), + listen_dev(button6, "click", /*stopMining*/ ctx[9], false, false, false, false) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (/*$user*/ ctx[1].isAnon) { + if (if_block0) ; else { + if_block0 = create_if_block_5(ctx); + if_block0.c(); + if_block0.m(button0, t6); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (!/*$user*/ ctx[1].isAnon) { + if (if_block1) ; else { + if_block1 = create_if_block_4(ctx); + if_block1.c(); + if_block1.m(button0, null); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + + if (dirty[0] & /*$user*/ 2 && !src_url_equal(img.src, img_src_value = /*$user*/ ctx[1].isAnon + ? '/img/anon.svg' + : /*$user*/ ctx[1].photo)) { + attr_dev(img, "src", img_src_value); + } + + if (dirty[0] & /*$user*/ 2 && t18_value !== (t18_value = (/*$user*/ ctx[1].isAnon ? 'anon' : /*$user*/ ctx[1].name) + "")) set_data_dev(t18, t18_value); + + if (/*$relaySettings*/ ctx[2].myRelaysVisible) { + if (if_block2) { + if_block2.p(ctx, dirty); + } else { + if_block2 = create_if_block_1(ctx); + if_block2.c(); + if_block2.m(div, null); + } + } else if (if_block2) { + if_block2.d(1); + if_block2 = null; + } + + if (dirty[0] & /*$contentState*/ 16) { + set_input_value(textarea, /*$contentState*/ ctx[4].content); + } + + if (dirty[0] & /*$contentState*/ 16 && to_number(input0.value) !== /*$contentState*/ ctx[4].difficulty) { + set_input_value(input0, /*$contentState*/ ctx[4].difficulty); + } + + if (dirty[0] & /*$contentState*/ 16 && to_number(input1.value) !== /*$contentState*/ ctx[4].numberOfWorkers) { + set_input_value(input1, /*$contentState*/ ctx[4].numberOfWorkers); + } + + if (dirty[0] & /*$miningState*/ 32 && button5_disabled_value !== (button5_disabled_value = /*$miningState*/ ctx[5].mining)) { + prop_dev(button5, "disabled", button5_disabled_value); + } + + if (dirty[0] & /*$miningState*/ 32 && button6_disabled_value !== (button6_disabled_value = !/*$miningState*/ ctx[5].mining)) { + prop_dev(button6, "disabled", button6_disabled_value); + } + + if (dirty[0] & /*$miningState*/ 32 && t39_value !== (t39_value = /*$miningState*/ ctx[5].hashRate.toFixed(2) + "")) set_data_dev(t39, t39_value); + + if (dirty[0] & /*$miningState*/ 32) { + each_value = /*$miningState*/ ctx[5].workersBestPow; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(pre1, t45); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value.length; + } + + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block3) { + if_block3.p(ctx, dirty); + } else { + if_block3.d(1); + if_block3 = current_block_type(ctx); + + if (if_block3) { + if_block3.c(); + if_block3.m(pre2, t50); + } + } + + if (dirty[0] & /*$miningState*/ 32 && t54_value !== (t54_value = /*$miningState*/ ctx[5].result + "")) set_data_dev(t54, t54_value); + if (dirty[0] & /*$miningState*/ 32 && t58_value !== (t58_value = /*$miningState*/ ctx[5].relayStatus + "")) set_data_dev(t58, t58_value); + if (dirty[0] & /*$activeRelays*/ 1 && t60_value !== (t60_value = JSON.stringify(/*$activeRelays*/ ctx[0]) + "")) set_data_dev(t60, t60_value); + }, + i: noop$1, + o: noop$1, + d: function destroy(detaching) { + if (detaching) detach_dev(h1); + if (detaching) detach_dev(t1); + if (detaching) detach_dev(p); + if (detaching) detach_dev(t5); + if (detaching) detach_dev(button0); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + if (detaching) detach_dev(t7); + if (detaching) detach_dev(button1); + if (detaching) detach_dev(t9); + if (detaching) detach_dev(button2); + if (detaching) detach_dev(t11); + if (detaching) detach_dev(button3); + if (detaching) detach_dev(t13); + if (detaching) detach_dev(button4); + if (detaching) detach_dev(t15); + if (detaching) detach_dev(div); + if (if_block2) if_block2.d(); + if (detaching) detach_dev(t22); + if (detaching) detach_dev(textarea); + if (detaching) detach_dev(t23); + if (detaching) detach_dev(br0); + if (detaching) detach_dev(br1); + if (detaching) detach_dev(t24); + if (detaching) detach_dev(label0); + if (detaching) detach_dev(t26); + if (detaching) detach_dev(input0); + if (detaching) detach_dev(t27); + if (detaching) detach_dev(br2); + if (detaching) detach_dev(br3); + if (detaching) detach_dev(t28); + if (detaching) detach_dev(label1); + if (detaching) detach_dev(t30); + if (detaching) detach_dev(input1); + if (detaching) detach_dev(t31); + if (detaching) detach_dev(br4); + if (detaching) detach_dev(br5); + if (detaching) detach_dev(t32); + if (detaching) detach_dev(button5); + if (detaching) detach_dev(t34); + if (detaching) detach_dev(button6); + if (detaching) detach_dev(t36); + if (detaching) detach_dev(h20); + if (detaching) detach_dev(t38); + if (detaching) detach_dev(pre0); + if (detaching) detach_dev(t41); + if (detaching) detach_dev(h21); + if (detaching) detach_dev(t43); + if (detaching) detach_dev(pre1); + destroy_each(each_blocks, detaching); + if (detaching) detach_dev(t46); + if (detaching) detach_dev(h22); + if (detaching) detach_dev(t48); + if (detaching) detach_dev(pre2); + if_block3.d(); + if (detaching) detach_dev(t51); + if (detaching) detach_dev(h23); + if (detaching) detach_dev(t53); + if (detaching) detach_dev(pre3); + if (detaching) detach_dev(t55); + if (detaching) detach_dev(h24); + if (detaching) detach_dev(t57); + if (detaching) detach_dev(pre4); + if (detaching) detach_dev(t59); + if (detaching) detach_dev(t60); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance($$self, $$props, $$invalidate) { + let $activeRelays; + let $usub; + let $user; + let $relaySettings; + let $powRelays; + let $contentState; + let $miningState; + validate_store(activeRelays, 'activeRelays'); + component_subscribe($$self, activeRelays, $$value => $$invalidate(0, $activeRelays = $$value)); + validate_store(usub, 'usub'); + component_subscribe($$self, usub, $$value => $$invalidate(20, $usub = $$value)); + validate_store(user, 'user'); + component_subscribe($$self, user, $$value => $$invalidate(1, $user = $$value)); + validate_store(relaySettings, 'relaySettings'); + component_subscribe($$self, relaySettings, $$value => $$invalidate(2, $relaySettings = $$value)); + validate_store(powRelays, 'powRelays'); + component_subscribe($$self, powRelays, $$value => $$invalidate(3, $powRelays = $$value)); + validate_store(contentState, 'contentState'); + component_subscribe($$self, contentState, $$value => $$invalidate(4, $contentState = $$value)); + validate_store(miningState, 'miningState'); + component_subscribe($$self, miningState, $$value => $$invalidate(5, $miningState = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('App', slots, []); + let notemine; + let progressSub, successSub, errorSub, bestPowSub, workersPowSub; + + function authAnon() { + const newSecret = generateSecretKey(); + + user.set({ + isAnon: true, + secret: newSecret, + pubkey: getPublicKey(newSecret) + }); + + relaySettings.update(r => ({ ...r, myRelays: [] })); + } + + async function authUser() { + try { + const pubkey = await window.nostr.getPublicKey(); + const isAnon = false; + const secret = ''; + user.set({ isAnon, pubkey, secret }); + await getUserData(); + } catch(error) { + console.error('Authentication failed:', error); + } + } + + function toggleAuth() { + const currentUser = get_store_value(user); + + if (currentUser.isAnon) { + authUser(); + } else { + authAnon(); + } + } + + function toggleRelays() { + relaySettings.update(r => ({ + ...r, + myRelaysVisible: !r.myRelaysVisible + })); + } + + async function getUserData() { + const currentUser = get_store_value(user); + + return new Promise(async (resolve, reject) => { + set_store_value( + usub, + $usub = pool.subscribeMany( + ['wss://purplepag.es', 'wss://user.kindpag.es'], + [ + { + kinds: [0, 3, 10002], + authors: [currentUser.pubkey] + } + ], + { + onevent, + oneose, + onclose: onclose(resolve) + } + ), + $usub + ); + }); + } + + async function startMining() { + const currentUser = get_store_value(user); + const currentContent = get_store_value(contentState); + + if (!currentUser.pubkey || !currentContent.content.trim()) { + alert('Please fill in all required fields.'); + return; + } + + resetMiningState(); + miningState.update(m => ({ ...m, mining: true })); + + notemine = new Notemine({ + content: currentContent.content, + pubkey: currentUser.pubkey, + difficulty: currentContent.difficulty, + numberOfWorkers: currentContent.numberOfWorkers + }); + + workersPowSub = notemine.workersPow$.subscribe(data => { + miningState.update(m => { + const workersBestPow = Object.values(data); + return { ...m, workersBestPow }; + }); + }); + + bestPowSub = notemine.highestPow$.subscribe(data => { + miningState.update(m => { + const overallBestPow = data; + return { ...m, overallBestPow }; + }); + }); + + progressSub = notemine.progress$.subscribe(() => { + miningState.update(m => { + const overallBestPow = m.overallBestPow; + const hashRate = notemine.totalHashRate; + return { ...m, overallBestPow, hashRate }; + }); + }); + + successSub = notemine.success$.subscribe(async ({ result: minedResult }) => { + // const currentActiveRelays = get(activeRelays); + // //console.log(`currentActiveRelays: ${$activeRelays}`); + miningState.update(m => ({ + ...m, + mining: false, + result: minedResult + ? JSON.stringify(minedResult, null, 2) + : 'No result received.' + })); + + await publishEvent(minedResult.event); + + miningState.update(m => ({ + ...m, + relayStatus: `Published to relays: ${$activeRelays.join(', ')}` + })); + }); + + errorSub = notemine.error$.subscribe(({ error }) => { + console.error('Mining error:', error); + + miningState.update(m => ({ + ...m, + mining: false, + result: `Error: ${error}` + })); + }); + + await notemine.mine(); + console.log('All workers mining.'); + } + + const resetMiningState = () => { + miningState.update(m => ({ + ...m, + mining: false, + result: '', + relayStatus: '', + hashRate: 0, + overallBestPow: null, + publishSuccessNum: 0 + })); + }; + + function stopMining() { + if (notemine) { + notemine.cancel(); + resetMiningState(); + } + } + + onMount(() => { + authAnon(); + }); + + onDestroy(() => { + progressSub && progressSub.unsubscribe(); + successSub && successSub.unsubscribe(); + errorSub && errorSub.unsubscribe(); + + if (notemine && get_store_value(miningState).mining) { + notemine.cancel(); + } + }); + + const writable_props = []; + + Object_1.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1.warn(` was created with unknown prop '${key}'`); + }); + + function input_change_handler() { + $relaySettings.powRelaysEnabled = this.checked; + relaySettings.set($relaySettings); + } + + function textarea_input_handler() { + $contentState.content = this.value; + contentState.set($contentState); + } + + function input0_input_handler() { + $contentState.difficulty = to_number(this.value); + contentState.set($contentState); + } + + function input1_input_handler() { + $contentState.numberOfWorkers = to_number(this.value); + contentState.set($contentState); + } + + $$self.$capture_state = () => ({ + writable, + derived, + get: get_store_value, + generateSecretKey, + getPublicKey, + onMount, + onDestroy, + Notemine, + user, + relaySettings, + miningState, + contentState, + activeRelays, + usub, + powRelays, + publishEvent, + pool, + onevent, + oneose, + onclose, + notemine, + progressSub, + successSub, + errorSub, + bestPowSub, + workersPowSub, + authAnon, + authUser, + toggleAuth, + toggleRelays, + getUserData, + startMining, + resetMiningState, + stopMining, + $activeRelays, + $usub, + $user, + $relaySettings, + $powRelays, + $contentState, + $miningState + }); + + $$self.$inject_state = $$props => { + if ('notemine' in $$props) notemine = $$props.notemine; + if ('progressSub' in $$props) progressSub = $$props.progressSub; + if ('successSub' in $$props) successSub = $$props.successSub; + if ('errorSub' in $$props) errorSub = $$props.errorSub; + if ('bestPowSub' in $$props) bestPowSub = $$props.bestPowSub; + if ('workersPowSub' in $$props) workersPowSub = $$props.workersPowSub; + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + $activeRelays, + $user, + $relaySettings, + $powRelays, + $contentState, + $miningState, + toggleAuth, + toggleRelays, + startMining, + stopMining, + input_change_handler, + textarea_input_handler, + input0_input_handler, + input1_input_handler + ]; + } + + class App extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance, create_fragment, safe_not_equal, {}, null, [-1, -1]); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "App", + options, + id: create_fragment.name + }); + } + } + + const app = new App({ + target: document.body + }); + + return app; + +})(); +//# sourceMappingURL=bundle.js.map diff --git a/demos/svelte/public/build/bundle.js.map b/demos/svelte/public/build/bundle.js.map new file mode 100644 index 0000000..0fc78ef --- /dev/null +++ b/demos/svelte/public/build/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/sha256.js","../../node_modules/@noble/curves/esm/abstract/utils.js","../../node_modules/@noble/curves/esm/abstract/modular.js","../../node_modules/@noble/curves/esm/abstract/curve.js","../../node_modules/@noble/curves/esm/abstract/weierstrass.js","../../node_modules/@noble/curves/node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/curves/esm/_shortw_utils.js","../../node_modules/@noble/curves/esm/secp256k1.js","../../node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/@noble/hashes/esm/sha256.js","../../node_modules/nostr-tools/node_modules/@scure/base/lib/esm/index.js","../../node_modules/@noble/ciphers/esm/_assert.js","../../node_modules/@noble/ciphers/esm/utils.js","../../node_modules/@noble/ciphers/esm/aes.js","../../node_modules/@noble/ciphers/esm/_arx.js","../../node_modules/@noble/ciphers/esm/chacha.js","../../node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/hashes/esm/hkdf.js","../../node_modules/nostr-tools/lib/esm/index.js","../../../dist/index.js","../../src/lib/stores/user.js","../../src/lib/stores/mining-state.js","../../src/lib/stores/relay-settings.js","../../src/lib/stores/content-state.js","../../src/lib/stores/relays.js","../../src/lib/utils.js","../../src/lib/nostr.js","../../src/App.svelte","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\n// Adapted from https://github.com/then/is-promise/blob/master/index.js\n// Distributed under MIT License https://github.com/then/is-promise/blob/master/LICENSE\nfunction is_promise(value) {\n return !!value && (typeof value === 'object' || typeof value === 'function') && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\nfunction split_css_unit(value) {\n const split = typeof value === 'string' && value.match(/^\\s*(-?[\\d.]+)([^\\s]*)\\s*$/);\n return split ? [parseFloat(split[1]), split[2] || 'px'] : [value, 'px'];\n}\nconst contenteditable_truthy_values = ['', true, 1, 'true', 'contenteditable'];\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\n/**\n * Resize observer singleton.\n * One listener per element only!\n * https://groups.google.com/a/chromium.org/g/blink-dev/c/z6ienONUb5A/m/F5-VcUZtBAAJ\n */\nclass ResizeObserverSingleton {\n constructor(options) {\n this.options = options;\n this._listeners = 'WeakMap' in globals ? new WeakMap() : undefined;\n }\n observe(element, listener) {\n this._listeners.set(element, listener);\n this._getObserver().observe(element, this.options);\n return () => {\n this._listeners.delete(element);\n this._observer.unobserve(element); // this line can probably be removed\n };\n }\n _getObserver() {\n var _a;\n return (_a = this._observer) !== null && _a !== void 0 ? _a : (this._observer = new ResizeObserver((entries) => {\n var _a;\n for (const entry of entries) {\n ResizeObserverSingleton.entries.set(entry.target, entry);\n (_a = this._listeners.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);\n }\n }));\n }\n}\n// Needs to be written like this to pass the tree-shake-test\nResizeObserverSingleton.entries = 'WeakMap' in globals ? new WeakMap() : undefined;\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction comment(content) {\n return document.createComment(content);\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_immediate_propagation(fn) {\n return function (event) {\n event.stopImmediatePropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\n/**\n * List of attributes that should always be set through the attr method,\n * because updating them through the property setter doesn't work reliably.\n * In the example of `width`/`height`, the problem is that the setter only\n * accepts numeric values, but the attribute can also be set to a string like `50%`.\n * If this list becomes too big, rethink this approach.\n */\nconst always_set_through_set_attribute = ['width', 'height'];\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set && always_set_through_set_attribute.indexOf(key) === -1) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction set_dynamic_element_data(tag) {\n return (/-/.test(tag)) ? set_custom_element_data_map : set_attributes;\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction init_binding_group(group) {\n let _inputs;\n return {\n /* push */ p(...inputs) {\n _inputs = inputs;\n _inputs.forEach(input => group.push(input));\n },\n /* remove */ r() {\n _inputs.forEach(input => group.splice(group.indexOf(input), 1));\n }\n };\n}\nfunction init_binding_group_dynamic(group, indexes) {\n let _group = get_binding_group(group);\n let _inputs;\n function get_binding_group(group) {\n for (let i = 0; i < indexes.length; i++) {\n group = group[indexes[i]] = group[indexes[i]] || [];\n }\n return group;\n }\n function push() {\n _inputs.forEach(input => _group.push(input));\n }\n function remove() {\n _inputs.forEach(input => _group.splice(_group.indexOf(input), 1));\n }\n return {\n /* update */ u(new_indexes) {\n indexes = new_indexes;\n const new_group = get_binding_group(group);\n if (new_group !== _group) {\n remove();\n _group = new_group;\n push();\n }\n },\n /* push */ p(...inputs) {\n _inputs = inputs;\n push();\n },\n /* remove */ r: remove\n };\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction claim_comment(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 8, (node) => {\n node.data = '' + data;\n return undefined;\n }, () => comment(data), true);\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.data === data)\n return;\n text.data = data;\n}\nfunction set_data_contenteditable(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n text.data = data;\n}\nfunction set_data_maybe_contenteditable(text, data, attr_value) {\n if (~contenteditable_truthy_values.indexOf(attr_value)) {\n set_data_contenteditable(text, data);\n }\n else {\n set_data(text, data);\n }\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value == null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value, mounting) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n if (!mounting || value !== undefined) {\n select.selectedIndex = -1; // no option should be selected\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked');\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_iframe_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n // make sure an initial resize event is fired _after_ the iframe is loaded (which is asynchronous)\n // see https://github.com/sveltejs/svelte/issues/4233\n fn();\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nconst resize_observer_content_box = /* @__PURE__ */ new ResizeObserverSingleton({ box: 'content-box' });\nconst resize_observer_border_box = /* @__PURE__ */ new ResizeObserverSingleton({ box: 'border-box' });\nconst resize_observer_device_pixel_content_box = /* @__PURE__ */ new ResizeObserverSingleton({ box: 'device-pixel-content-box' });\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n /** #7364 target for