diff --git a/.github/workflows/lint-and-format.yml b/.github/workflows/lint-and-format.yml new file mode 100644 index 00000000..b1fe1886 --- /dev/null +++ b/.github/workflows/lint-and-format.yml @@ -0,0 +1,23 @@ +name: Lint and Format Check + +on: + pull_request: + branches: + - main + push: + branches: + - main + +jobs: + check: + name: Check code quality + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: oven-sh/setup-bun@v1 + + - name: Install dependencies + run: bun install + + - name: Check code quality + run: bun run check diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cae6e8c0..55a96ab4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,3 +32,21 @@ Export a static HTML version of the specification when your changes are done wit In general, Community Group Draft Reports do not follow the same strict conventions as more mature specifications. We only archive major versions of the specification. For example, a copy of the [2021-03-17 draft report](https://github.com/WICG/webmonetization/tree/main/src/pages/specification/versions/CG-DRAFT-web-monetization-20210317.html) currently lives in [src/pages/specification/versions/](https://github.com/WICG/webmonetization/tree/main/src/pages/specification/versions). Prettier is disabled on `src/pages/specification` as it conflicts with the code format style used by W3C specifications. There is [no way](https://github.com/prettier/prettier/issues/5246) to configure Prettier to follow the [W3C recommendation](https://github.com/validator/validator/wiki/Markup-%C2%BB-Void-elements) of not using trailing slashes on void elements. + +## Code Quality + +We use ESLint to keep the codebase consistent. Before submitting a pull request, please make sure your changes pass linting: + +```sh +bun run lint +``` + +If ESLint finds issues that can be automatically fixed, you can run: + +```sh +bun run lint:fix +``` + +This will fix most formatting and style issues automatically. Any remaining issues will need to be fixed manually. + +Note that some files in `public/interactive-examples/` may have warnings for unused variables. These are intentional and can be ignored - they're example files that demonstrate different usage patterns. diff --git a/README.md b/README.md index eb3df4e8..e3ed95ec 100755 --- a/README.md +++ b/README.md @@ -41,11 +41,15 @@ All commands are run from the root of the project, from a terminal: | `bun run start` | Starts local dev server at `localhost:1100` | | `bun run build` | Build your production site to `./dist/` | | `bun run preview` | Preview your build locally before deploying | +| `bun run lint` | Check code for linting errors | +| `bun run lint:fix` | Automatically fix linting errors where possible | | `bun run astro ...` | Run CLI commands like `astro add`, `astro check` | | `bun run astro -- --help` | Get help using the Astro CLI | You can substitute the bun commands with your chosen package manager's commands. +Before submitting a PR, make sure your code passes linting by running `bun run lint`. If there are any issues that can be automatically fixed, use `bun run lint:fix`. + ## Specification Development Please refer to the [CONTRIBUTING.md](./CONTRIBUTING.md#specification-development). diff --git a/astro.config.mjs b/astro.config.mjs index a4ae003f..86dffab7 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -288,7 +288,7 @@ export default defineConfig({ '/docs/resources/libraries': '/developers/libraries', '/docs/resources/op-wallets': '/wallets', '/docs/resources/get-involved': '/resources/get-involved', - '/install': '/supporters' + '/install': '/supporters', }, server: { port: 1100, diff --git a/bun.lock b/bun.lock new file mode 100644 index 00000000..01744358 --- /dev/null +++ b/bun.lock @@ -0,0 +1,1811 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "dependencies": { + "@astrojs/check": "^0.9.4", + "@astrojs/starlight": "^0.34.4", + "@interledger/docs-design-system": "^0.8.0", + "astro": "5.11.0", + "prettier": "^3.6.2", + "remark-mermaidjs": "^7.0.0", + "respec": "^35.4.2", + "sharp": "^0.34.2", + "starlight-fullview-mode": "^0.2.3", + "starlight-links-validator": "^0.17.0", + "typescript": "^5.8.3", + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^8.47.0", + "@typescript-eslint/parser": "^8.47.0", + "eslint": "^9.39.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-astro": "^1.5.0", + }, + }, + }, + "packages": { + "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], + + "@antfu/utils": ["@antfu/utils@9.3.0", "", {}, "sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA=="], + + "@astrojs/check": ["@astrojs/check@0.9.5", "", { "dependencies": { "@astrojs/language-server": "^2.15.0", "chokidar": "^4.0.1", "kleur": "^4.1.5", "yargs": "^17.7.2" }, "peerDependencies": { "typescript": "^5.0.0" }, "bin": { "astro-check": "dist/bin.js" } }, "sha512-88vc8n2eJ1Oua74yXSGo/8ABMeypfQPGEzuoAx2awL9Ju8cE6tZ2Rz9jVx5hIExHK5gKVhpxfZj4WXm7e32g1w=="], + + "@astrojs/compiler": ["@astrojs/compiler@2.13.0", "", {}, "sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw=="], + + "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.6.1", "", {}, "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A=="], + + "@astrojs/language-server": ["@astrojs/language-server@2.16.0", "", { "dependencies": { "@astrojs/compiler": "^2.10.3", "@astrojs/yaml2ts": "^0.2.2", "@jridgewell/sourcemap-codec": "^1.4.15", "@volar/kit": "~2.4.23", "@volar/language-core": "~2.4.23", "@volar/language-server": "~2.4.23", "@volar/language-service": "~2.4.23", "fast-glob": "^3.2.12", "muggle-string": "^0.4.1", "volar-service-css": "0.0.66", "volar-service-emmet": "0.0.66", "volar-service-html": "0.0.66", "volar-service-prettier": "0.0.66", "volar-service-typescript": "0.0.66", "volar-service-typescript-twoslash-queries": "0.0.66", "volar-service-yaml": "0.0.66", "vscode-html-languageservice": "^5.5.2", "vscode-uri": "^3.1.0" }, "peerDependencies": { "prettier": "^3.0.0", "prettier-plugin-astro": ">=0.11.0" }, "optionalPeers": ["prettier", "prettier-plugin-astro"], "bin": { "astro-ls": "bin/nodeServer.js" } }, "sha512-oX2KkuIfEEM5d4/+lfuxy6usRDYko0S02YvtHFTrnqW0h9e4ElAfWZRKyqxWlwpuPdciBPKef5YJ7DFH3PPssw=="], + + "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.2", "", { "dependencies": { "@astrojs/internal-helpers": "0.6.1", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.2.1", "smol-toml": "^1.3.1", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-bO35JbWpVvyKRl7cmSJD822e8YA8ThR/YbUsciWNA7yTcqpIAL2hJDToWP5KcZBWxGT6IOdOkHSXARSNZc4l/Q=="], + + "@astrojs/mdx": ["@astrojs/mdx@4.3.11", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.9", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.15.0", "es-module-lexer": "^1.7.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "picocolors": "^1.1.1", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-ca18jxAiYDbPE1eAsNoiGnZoMYZGtfQpCmAJMXCB1WpyzTOHH7+KP1+gnKK8SFEA6XjHvjwI5Xzu8695c0Gabw=="], + + "@astrojs/prism": ["@astrojs/prism@3.3.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ=="], + + "@astrojs/sitemap": ["@astrojs/sitemap@3.6.0", "", { "dependencies": { "sitemap": "^8.0.0", "stream-replace-string": "^2.0.0", "zod": "^3.25.76" } }, "sha512-4aHkvcOZBWJigRmMIAJwRQXBS+ayoP5z40OklTXYXhUDhwusz+DyDl+nSshY6y9DvkVEavwNcFO8FD81iGhXjg=="], + + "@astrojs/starlight": ["@astrojs/starlight@0.34.8", "", { "dependencies": { "@astrojs/markdown-remark": "^6.3.1", "@astrojs/mdx": "^4.2.3", "@astrojs/sitemap": "^3.3.0", "@pagefind/default-ui": "^1.3.0", "@types/hast": "^3.0.4", "@types/js-yaml": "^4.0.9", "@types/mdast": "^4.0.4", "astro-expressive-code": "^0.41.1", "bcp-47": "^2.1.0", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-string": "^3.0.0", "hastscript": "^9.0.0", "i18next": "^23.11.5", "js-yaml": "^4.1.0", "klona": "^2.0.6", "mdast-util-directive": "^3.0.0", "mdast-util-to-markdown": "^2.1.0", "mdast-util-to-string": "^4.0.0", "pagefind": "^1.3.0", "rehype": "^13.0.1", "rehype-format": "^5.0.0", "remark-directive": "^3.0.0", "ultrahtml": "^1.6.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "vfile": "^6.0.2" }, "peerDependencies": { "astro": "^5.5.0" } }, "sha512-XuYz0TfCZhje2u1Q9FNtmTdm7/B9QP91RDI1VkPgYvDhSYlME3k8gwgcBMHnR9ASDo2p9gskrqe7t1Pub/qryg=="], + + "@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="], + + "@astrojs/yaml2ts": ["@astrojs/yaml2ts@0.2.2", "", { "dependencies": { "yaml": "^2.5.0" } }, "sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ=="], + + "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], + + "@babel/runtime": ["@babel/runtime@7.28.4", "", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="], + + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], + + "@braintree/sanitize-url": ["@braintree/sanitize-url@7.1.1", "", {}, "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw=="], + + "@capsizecss/unpack": ["@capsizecss/unpack@2.4.0", "", { "dependencies": { "blob-to-buffer": "^1.2.8", "cross-fetch": "^3.0.4", "fontkit": "^2.0.2" } }, "sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q=="], + + "@chevrotain/cst-dts-gen": ["@chevrotain/cst-dts-gen@11.0.3", "", { "dependencies": { "@chevrotain/gast": "11.0.3", "@chevrotain/types": "11.0.3", "lodash-es": "4.17.21" } }, "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ=="], + + "@chevrotain/gast": ["@chevrotain/gast@11.0.3", "", { "dependencies": { "@chevrotain/types": "11.0.3", "lodash-es": "4.17.21" } }, "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q=="], + + "@chevrotain/regexp-to-ast": ["@chevrotain/regexp-to-ast@11.0.3", "", {}, "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA=="], + + "@chevrotain/types": ["@chevrotain/types@11.0.3", "", {}, "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ=="], + + "@chevrotain/utils": ["@chevrotain/utils@11.0.3", "", {}, "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ=="], + + "@ctrl/tinycolor": ["@ctrl/tinycolor@4.2.0", "", {}, "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A=="], + + "@emmetio/abbreviation": ["@emmetio/abbreviation@2.3.3", "", { "dependencies": { "@emmetio/scanner": "^1.0.4" } }, "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA=="], + + "@emmetio/css-abbreviation": ["@emmetio/css-abbreviation@2.1.8", "", { "dependencies": { "@emmetio/scanner": "^1.0.4" } }, "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw=="], + + "@emmetio/css-parser": ["@emmetio/css-parser@github:ramya-rao-a/css-parser#370c480", { "dependencies": { "@emmetio/stream-reader": "^2.2.0", "@emmetio/stream-reader-utils": "^0.1.0" } }, "ramya-rao-a-css-parser-370c480"], + + "@emmetio/html-matcher": ["@emmetio/html-matcher@1.3.0", "", { "dependencies": { "@emmetio/scanner": "^1.0.0" } }, "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ=="], + + "@emmetio/scanner": ["@emmetio/scanner@1.0.4", "", {}, "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA=="], + + "@emmetio/stream-reader": ["@emmetio/stream-reader@2.2.0", "", {}, "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw=="], + + "@emmetio/stream-reader-utils": ["@emmetio/stream-reader-utils@0.1.0", "", {}, "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], + + "@eslint/js": ["@eslint/js@9.39.1", "", {}, "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + + "@expressive-code/core": ["@expressive-code/core@0.41.3", "", { "dependencies": { "@ctrl/tinycolor": "^4.0.4", "hast-util-select": "^6.0.2", "hast-util-to-html": "^9.0.1", "hast-util-to-text": "^4.0.1", "hastscript": "^9.0.0", "postcss": "^8.4.38", "postcss-nested": "^6.0.1", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1" } }, "sha512-9qzohqU7O0+JwMEEgQhnBPOw5DtsQRBXhW++5fvEywsuX44vCGGof1SL5OvPElvNgaWZ4pFZAFSlkNOkGyLwSQ=="], + + "@expressive-code/plugin-frames": ["@expressive-code/plugin-frames@0.41.3", "", { "dependencies": { "@expressive-code/core": "^0.41.3" } }, "sha512-rFQtmf/3N2CK3Cq/uERweMTYZnBu+CwxBdHuOftEmfA9iBE7gTVvwpbh82P9ZxkPLvc40UMhYt7uNuAZexycRQ=="], + + "@expressive-code/plugin-shiki": ["@expressive-code/plugin-shiki@0.41.3", "", { "dependencies": { "@expressive-code/core": "^0.41.3", "shiki": "^3.2.2" } }, "sha512-RlTARoopzhFJIOVHLGvuXJ8DCEme/hjV+ZnRJBIxzxsKVpGPW4Oshqg9xGhWTYdHstTsxO663s0cdBLzZj9TQA=="], + + "@expressive-code/plugin-text-markers": ["@expressive-code/plugin-text-markers@0.41.3", "", { "dependencies": { "@expressive-code/core": "^0.41.3" } }, "sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g=="], + + "@fortawesome/fontawesome-free": ["@fortawesome/fontawesome-free@6.7.2", "", {}, "sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@iconify-json/mdi": ["@iconify-json/mdi@1.2.3", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg=="], + + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + + "@iconify/utils": ["@iconify/utils@3.0.2", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@antfu/utils": "^9.2.0", "@iconify/types": "^2.0.0", "debug": "^4.4.1", "globals": "^15.15.0", "kolorist": "^1.8.0", "local-pkg": "^1.1.1", "mlly": "^1.7.4" } }, "sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ=="], + + "@img/colour": ["@img/colour@1.0.0", "", {}, "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + + "@interledger/docs-design-system": ["@interledger/docs-design-system@0.8.0", "", { "dependencies": { "mermaid": "^11.8.0" } }, "sha512-rkJD0vPhENhoNVEmlMAIqVtxo7z2jjr5zn5pzR2vIUDksnqzb31X0u37BJ9tLVJswncxQYFTkXLENEWIS6l/Kg=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="], + + "@mermaid-js/parser": ["@mermaid-js/parser@0.6.3", "", { "dependencies": { "langium": "3.3.1" } }, "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], + + "@pagefind/darwin-arm64": ["@pagefind/darwin-arm64@1.4.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ=="], + + "@pagefind/darwin-x64": ["@pagefind/darwin-x64@1.4.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A=="], + + "@pagefind/default-ui": ["@pagefind/default-ui@1.4.0", "", {}, "sha512-wie82VWn3cnGEdIjh4YwNESyS1G6vRHwL6cNjy9CFgNnWW/PGRjsLq300xjVH5sfPFK3iK36UxvIBymtQIEiSQ=="], + + "@pagefind/freebsd-x64": ["@pagefind/freebsd-x64@1.4.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q=="], + + "@pagefind/linux-arm64": ["@pagefind/linux-arm64@1.4.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw=="], + + "@pagefind/linux-x64": ["@pagefind/linux-x64@1.4.0", "", { "os": "linux", "cpu": "x64" }, "sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg=="], + + "@pagefind/windows-x64": ["@pagefind/windows-x64@1.4.0", "", { "os": "win32", "cpu": "x64" }, "sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g=="], + + "@pkgr/core": ["@pkgr/core@0.2.9", "", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], + + "@puppeteer/browsers": ["@puppeteer/browsers@2.10.13", "", { "dependencies": { "debug": "^4.4.3", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.3", "tar-fs": "^3.1.1", "yargs": "^17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" } }, "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q=="], + + "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.2", "", { "os": "android", "cpu": "arm" }, "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.2", "", { "os": "android", "cpu": "arm64" }, "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.2", "", { "os": "none", "cpu": "arm64" }, "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA=="], + + "@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], + + "@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], + + "@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], + + "@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + + "@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], + + "@tootallnate/quickjs-emscripten": ["@tootallnate/quickjs-emscripten@0.23.0", "", {}, "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="], + + "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], + + "@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="], + + "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], + + "@types/d3-brush": ["@types/d3-brush@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A=="], + + "@types/d3-chord": ["@types/d3-chord@3.0.6", "", {}, "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="], + + "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], + + "@types/d3-contour": ["@types/d3-contour@3.0.6", "", { "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg=="], + + "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], + + "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], + + "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], + + "@types/d3-dsv": ["@types/d3-dsv@3.0.7", "", {}, "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="], + + "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], + + "@types/d3-fetch": ["@types/d3-fetch@3.0.7", "", { "dependencies": { "@types/d3-dsv": "*" } }, "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA=="], + + "@types/d3-force": ["@types/d3-force@3.0.10", "", {}, "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="], + + "@types/d3-format": ["@types/d3-format@3.0.4", "", {}, "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="], + + "@types/d3-geo": ["@types/d3-geo@3.1.0", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ=="], + + "@types/d3-hierarchy": ["@types/d3-hierarchy@3.1.7", "", {}, "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="], + + "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + + "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="], + + "@types/d3-polygon": ["@types/d3-polygon@3.0.2", "", {}, "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="], + + "@types/d3-quadtree": ["@types/d3-quadtree@3.0.6", "", {}, "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="], + + "@types/d3-random": ["@types/d3-random@3.0.3", "", {}, "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="], + + "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="], + + "@types/d3-scale-chromatic": ["@types/d3-scale-chromatic@3.1.0", "", {}, "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="], + + "@types/d3-selection": ["@types/d3-selection@3.0.11", "", {}, "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w=="], + + "@types/d3-shape": ["@types/d3-shape@3.1.7", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg=="], + + "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="], + + "@types/d3-time-format": ["@types/d3-time-format@4.0.3", "", {}, "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="], + + "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + + "@types/d3-transition": ["@types/d3-transition@3.0.9", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg=="], + + "@types/d3-zoom": ["@types/d3-zoom@3.0.8", "", { "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw=="], + + "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + + "@types/fontkit": ["@types/fontkit@2.0.8", "", { "dependencies": { "@types/node": "*" } }, "sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew=="], + + "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + + "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + + "@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/mdx": ["@types/mdx@2.0.13", "", {}, "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="], + + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + + "@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="], + + "@types/node": ["@types/node@17.0.45", "", {}, "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="], + + "@types/picomatch": ["@types/picomatch@3.0.2", "", {}, "sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA=="], + + "@types/sax": ["@types/sax@1.2.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.47.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.47.0", "@typescript-eslint/type-utils": "8.47.0", "@typescript-eslint/utils": "8.47.0", "@typescript-eslint/visitor-keys": "8.47.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.47.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.47.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.47.0", "@typescript-eslint/types": "8.47.0", "@typescript-eslint/typescript-estree": "8.47.0", "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.47.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.47.0", "@typescript-eslint/types": "^8.47.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.47.0", "", { "dependencies": { "@typescript-eslint/types": "8.47.0", "@typescript-eslint/visitor-keys": "8.47.0" } }, "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.47.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.47.0", "", { "dependencies": { "@typescript-eslint/types": "8.47.0", "@typescript-eslint/typescript-estree": "8.47.0", "@typescript-eslint/utils": "8.47.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.47.0", "", {}, "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.47.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.47.0", "@typescript-eslint/tsconfig-utils": "8.47.0", "@typescript-eslint/types": "8.47.0", "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.47.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.47.0", "@typescript-eslint/types": "8.47.0", "@typescript-eslint/typescript-estree": "8.47.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.47.0", "", { "dependencies": { "@typescript-eslint/types": "8.47.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + + "@volar/kit": ["@volar/kit@2.4.23", "", { "dependencies": { "@volar/language-service": "2.4.23", "@volar/typescript": "2.4.23", "typesafe-path": "^0.2.2", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "typescript": "*" } }, "sha512-YuUIzo9zwC2IkN7FStIcVl1YS9w5vkSFEZfPvnu0IbIMaR9WHhc9ZxvlT+91vrcSoRY469H2jwbrGqpG7m1KaQ=="], + + "@volar/language-core": ["@volar/language-core@2.4.23", "", { "dependencies": { "@volar/source-map": "2.4.23" } }, "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ=="], + + "@volar/language-server": ["@volar/language-server@2.4.23", "", { "dependencies": { "@volar/language-core": "2.4.23", "@volar/language-service": "2.4.23", "@volar/typescript": "2.4.23", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "sha512-k0iO+tybMGMMyrNdWOxgFkP0XJTdbH0w+WZlM54RzJU3WZSjHEupwL30klpM7ep4FO6qyQa03h+VcGHD4Q8gEg=="], + + "@volar/language-service": ["@volar/language-service@2.4.23", "", { "dependencies": { "@volar/language-core": "2.4.23", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "sha512-h5mU9DZ/6u3LCB9xomJtorNG6awBNnk9VuCioGsp6UtFiM8amvS5FcsaC3dabdL9zO0z+Gq9vIEMb/5u9K6jGQ=="], + + "@volar/source-map": ["@volar/source-map@2.4.23", "", {}, "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q=="], + + "@volar/typescript": ["@volar/typescript@2.4.23", "", { "dependencies": { "@volar/language-core": "2.4.23", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag=="], + + "@vscode/emmet-helper": ["@vscode/emmet-helper@2.11.0", "", { "dependencies": { "emmet": "^2.4.3", "jsonc-parser": "^2.3.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.15.1", "vscode-uri": "^3.0.8" } }, "sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw=="], + + "@vscode/l10n": ["@vscode/l10n@0.0.18", "", {}, "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ=="], + + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + + "ajv-draft-04": ["ajv-draft-04@1.0.0", "", { "peerDependencies": { "ajv": "^8.5.0" }, "optionalPeers": ["ajv"] }, "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw=="], + + "ansi-align": ["ansi-align@3.0.1", "", { "dependencies": { "string-width": "^4.1.0" } }, "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], + + "ast-types": ["ast-types@0.13.4", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w=="], + + "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], + + "astro": ["astro@5.11.0", "", { "dependencies": { "@astrojs/compiler": "^2.12.2", "@astrojs/internal-helpers": "0.6.1", "@astrojs/markdown-remark": "6.3.2", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.4", "acorn": "^8.14.1", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.2.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.0.2", "cssesc": "^3.0.0", "debug": "^4.4.0", "deterministic-object-hash": "^2.0.2", "devalue": "^5.1.1", "diff": "^5.2.0", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.6.0", "esbuild": "^0.25.0", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "fontace": "~0.3.0", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.1.1", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.17", "magicast": "^0.3.5", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "package-manager-detector": "^1.1.0", "picomatch": "^4.0.2", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.1", "shiki": "^3.2.1", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.12", "tsconfck": "^3.1.5", "ultrahtml": "^1.6.0", "unifont": "~0.5.0", "unist-util-visit": "^5.0.0", "unstorage": "^1.15.0", "vfile": "^6.0.3", "vite": "^6.3.4", "vitefu": "^1.0.6", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.1", "zod": "^3.24.2", "zod-to-json-schema": "^3.24.5", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.33.3" }, "bin": { "astro": "astro.js" } }, "sha512-MEICntERthUxJPSSDsDiZuwiCMrsaYy3fnDhp4c6ScUfldCB8RBnB/myYdpTFXpwYBy6SgVsHQ1H4MuuA7ro/Q=="], + + "astro-eslint-parser": ["astro-eslint-parser@1.2.2", "", { "dependencies": { "@astrojs/compiler": "^2.0.0", "@typescript-eslint/scope-manager": "^7.0.0 || ^8.0.0", "@typescript-eslint/types": "^7.0.0 || ^8.0.0", "astrojs-compiler-sync": "^1.0.0", "debug": "^4.3.4", "entities": "^6.0.0", "eslint-scope": "^8.0.1", "eslint-visitor-keys": "^4.0.0", "espree": "^10.0.0", "fast-glob": "^3.3.3", "is-glob": "^4.0.3", "semver": "^7.3.8" } }, "sha512-JepyLROIad6f44uyqMF6HKE2QbunNzp3mYKRcPoDGt0QkxXmH222FAFC64WTyQu2Kg8NNEXHTN/sWuUId9sSxw=="], + + "astro-expressive-code": ["astro-expressive-code@0.41.3", "", { "dependencies": { "rehype-expressive-code": "^0.41.3" }, "peerDependencies": { "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0" } }, "sha512-u+zHMqo/QNLE2eqYRCrK3+XMlKakv33Bzuz+56V1gs8H0y6TZ0hIi3VNbIxeTn51NLn+mJfUV/A0kMNfE4rANw=="], + + "astrojs-compiler-sync": ["astrojs-compiler-sync@1.1.1", "", { "dependencies": { "synckit": "^0.11.0" }, "peerDependencies": { "@astrojs/compiler": ">=0.27.0" } }, "sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "b4a": ["b4a@1.7.3", "", { "peerDependencies": { "react-native-b4a": "*" }, "optionalPeers": ["react-native-b4a"] }, "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q=="], + + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "bare-events": ["bare-events@2.8.2", "", { "peerDependencies": { "bare-abort-controller": "*" }, "optionalPeers": ["bare-abort-controller"] }, "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ=="], + + "bare-fs": ["bare-fs@4.5.1", "", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4", "bare-url": "^2.2.2", "fast-fifo": "^1.3.2" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-zGUCsm3yv/ePt2PHNbVxjjn0nNB1MkIaR4wOCxJ2ig5pCf5cCVAYJXVhQg/3OhhJV6DB1ts7Hv0oUaElc2TPQg=="], + + "bare-os": ["bare-os@3.6.2", "", {}, "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A=="], + + "bare-path": ["bare-path@3.0.0", "", { "dependencies": { "bare-os": "^3.0.1" } }, "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw=="], + + "bare-stream": ["bare-stream@2.7.0", "", { "dependencies": { "streamx": "^2.21.0" }, "peerDependencies": { "bare-buffer": "*", "bare-events": "*" }, "optionalPeers": ["bare-buffer", "bare-events"] }, "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A=="], + + "bare-url": ["bare-url@2.3.2", "", { "dependencies": { "bare-path": "^3.0.0" } }, "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw=="], + + "base-64": ["base-64@1.0.0", "", {}, "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "basic-ftp": ["basic-ftp@5.0.5", "", {}, "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg=="], + + "bcp-47": ["bcp-47@2.1.0", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w=="], + + "bcp-47-match": ["bcp-47-match@2.0.3", "", {}, "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ=="], + + "blob-to-buffer": ["blob-to-buffer@1.2.9", "", {}, "sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA=="], + + "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], + + "boxen": ["boxen@8.0.1", "", { "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^8.0.0", "chalk": "^5.3.0", "cli-boxes": "^3.0.0", "string-width": "^7.2.0", "type-fest": "^4.21.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0" } }, "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw=="], + + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "brotli": ["brotli@1.3.3", "", { "dependencies": { "base64-js": "^1.1.2" } }, "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg=="], + + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "camelcase": ["camelcase@8.0.0", "", {}, "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + + "chevrotain": ["chevrotain@11.0.3", "", { "dependencies": { "@chevrotain/cst-dts-gen": "11.0.3", "@chevrotain/gast": "11.0.3", "@chevrotain/regexp-to-ast": "11.0.3", "@chevrotain/types": "11.0.3", "@chevrotain/utils": "11.0.3", "lodash-es": "4.17.21" } }, "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw=="], + + "chevrotain-allstar": ["chevrotain-allstar@0.3.1", "", { "dependencies": { "lodash-es": "^4.17.21" }, "peerDependencies": { "chevrotain": "^11.0.0" } }, "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw=="], + + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + + "chromium-bidi": ["chromium-bidi@11.0.0", "", { "dependencies": { "mitt": "^3.0.1", "zod": "^3.24.1" }, "peerDependencies": { "devtools-protocol": "*" } }, "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw=="], + + "ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], + + "cli-boxes": ["cli-boxes@3.0.0", "", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="], + + "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], + + "clone": ["clone@2.1.2", "", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "collapse-white-space": ["collapse-white-space@2.1.0", "", {}, "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw=="], + + "color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "color-string": ["color-string@1.9.1", "", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="], + + "colors": ["colors@1.4.0", "", {}, "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + + "common-ancestor-path": ["common-ancestor-path@1.0.1", "", {}, "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], + + "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], + + "cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], + + "cose-base": ["cose-base@1.0.3", "", { "dependencies": { "layout-base": "^1.0.0" } }, "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg=="], + + "cosmiconfig": ["cosmiconfig@9.0.0", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="], + + "cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], + + "css-selector-parser": ["css-selector-parser@3.2.0", "", {}, "sha512-L1bdkNKUP5WYxiW5dW6vA2hd3sL8BdRNLy2FCX0rLVise4eNw9nBdeBuJHxlELieSE2H1f6bYQFfwVUwWCV9rQ=="], + + "css-tree": ["css-tree@3.1.0", "", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "cytoscape": ["cytoscape@3.33.1", "", {}, "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ=="], + + "cytoscape-cose-bilkent": ["cytoscape-cose-bilkent@4.1.0", "", { "dependencies": { "cose-base": "^1.0.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ=="], + + "cytoscape-fcose": ["cytoscape-fcose@2.2.0", "", { "dependencies": { "cose-base": "^2.2.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ=="], + + "d3": ["d3@7.9.0", "", { "dependencies": { "d3-array": "3", "d3-axis": "3", "d3-brush": "3", "d3-chord": "3", "d3-color": "3", "d3-contour": "4", "d3-delaunay": "6", "d3-dispatch": "3", "d3-drag": "3", "d3-dsv": "3", "d3-ease": "3", "d3-fetch": "3", "d3-force": "3", "d3-format": "3", "d3-geo": "3", "d3-hierarchy": "3", "d3-interpolate": "3", "d3-path": "3", "d3-polygon": "3", "d3-quadtree": "3", "d3-random": "3", "d3-scale": "4", "d3-scale-chromatic": "3", "d3-selection": "3", "d3-shape": "3", "d3-time": "3", "d3-time-format": "4", "d3-timer": "3", "d3-transition": "3", "d3-zoom": "3" } }, "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-axis": ["d3-axis@3.0.0", "", {}, "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="], + + "d3-brush": ["d3-brush@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "3", "d3-transition": "3" } }, "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ=="], + + "d3-chord": ["d3-chord@3.0.1", "", { "dependencies": { "d3-path": "1 - 3" } }, "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g=="], + + "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], + + "d3-contour": ["d3-contour@4.0.2", "", { "dependencies": { "d3-array": "^3.2.0" } }, "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA=="], + + "d3-delaunay": ["d3-delaunay@6.0.4", "", { "dependencies": { "delaunator": "5" } }, "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A=="], + + "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], + + "d3-drag": ["d3-drag@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" } }, "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="], + + "d3-dsv": ["d3-dsv@3.0.1", "", { "dependencies": { "commander": "7", "iconv-lite": "0.6", "rw": "1" }, "bin": { "csv2json": "bin/dsv2json.js", "csv2tsv": "bin/dsv2dsv.js", "dsv2dsv": "bin/dsv2dsv.js", "dsv2json": "bin/dsv2json.js", "json2csv": "bin/json2dsv.js", "json2dsv": "bin/json2dsv.js", "json2tsv": "bin/json2dsv.js", "tsv2csv": "bin/dsv2dsv.js", "tsv2json": "bin/dsv2json.js" } }, "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q=="], + + "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], + + "d3-fetch": ["d3-fetch@3.0.1", "", { "dependencies": { "d3-dsv": "1 - 3" } }, "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw=="], + + "d3-force": ["d3-force@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", "d3-timer": "1 - 3" } }, "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg=="], + + "d3-format": ["d3-format@3.1.0", "", {}, "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "d3-hierarchy": ["d3-hierarchy@3.1.2", "", {}, "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="], + + "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], + + "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], + + "d3-polygon": ["d3-polygon@3.0.1", "", {}, "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="], + + "d3-quadtree": ["d3-quadtree@3.0.1", "", {}, "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="], + + "d3-random": ["d3-random@3.0.1", "", {}, "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="], + + "d3-sankey": ["d3-sankey@0.12.3", "", { "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" } }, "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ=="], + + "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], + + "d3-scale-chromatic": ["d3-scale-chromatic@3.1.0", "", { "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" } }, "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="], + + "d3-selection": ["d3-selection@3.0.0", "", {}, "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="], + + "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], + + "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], + + "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], + + "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + + "d3-transition": ["d3-transition@3.0.1", "", { "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", "d3-ease": "1 - 3", "d3-interpolate": "1 - 3", "d3-timer": "1 - 3" }, "peerDependencies": { "d3-selection": "2 - 3" } }, "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="], + + "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], + + "dagre-d3-es": ["dagre-d3-es@7.0.13", "", { "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q=="], + + "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="], + + "dayjs": ["dayjs@1.11.19", "", {}, "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "decode-named-character-reference": ["decode-named-character-reference@1.2.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="], + + "degenerator": ["degenerator@5.0.1", "", { "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", "esprima": "^4.0.1" } }, "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ=="], + + "delaunator": ["delaunator@5.0.1", "", { "dependencies": { "robust-predicates": "^3.0.2" } }, "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw=="], + + "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "deterministic-object-hash": ["deterministic-object-hash@2.0.2", "", { "dependencies": { "base-64": "^1.0.0" } }, "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ=="], + + "devalue": ["devalue@5.5.0", "", {}, "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "devtools-protocol": ["devtools-protocol@0.0.1521046", "", {}, "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w=="], + + "dfa": ["dfa@1.2.0", "", {}, "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="], + + "diff": ["diff@5.2.0", "", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="], + + "direction": ["direction@2.0.1", "", { "bin": { "direction": "cli.js" } }, "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA=="], + + "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], + + "dompurify": ["dompurify@3.3.0", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ=="], + + "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], + + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + + "emmet": ["emmet@2.4.11", "", { "dependencies": { "@emmetio/abbreviation": "^2.3.3", "@emmetio/css-abbreviation": "^2.1.8" } }, "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ=="], + + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + + "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], + + "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + + "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], + + "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], + + "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + + "esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="], + + "esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="], + + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "escodegen": ["escodegen@2.1.0", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="], + + "eslint": ["eslint@9.39.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.1", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g=="], + + "eslint-compat-utils": ["eslint-compat-utils@0.6.5", "", { "dependencies": { "semver": "^7.5.4" }, "peerDependencies": { "eslint": ">=6.0.0" } }, "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ=="], + + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + + "eslint-plugin-astro": ["eslint-plugin-astro@1.5.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@jridgewell/sourcemap-codec": "^1.4.14", "@typescript-eslint/types": "^7.7.1 || ^8", "astro-eslint-parser": "^1.0.2", "eslint-compat-utils": "^0.6.0", "globals": "^16.0.0", "postcss": "^8.4.14", "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "eslint": ">=8.57.0" } }, "sha512-IWy4kY3DKTJxd7g652zIWpBGFuxw7NIIt16kyqc8BlhnIKvI8yGJj+Maua0DiNYED3F/D8AmzoTTTA6A95WX9g=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "estree-util-attach-comments": ["estree-util-attach-comments@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw=="], + + "estree-util-build-jsx": ["estree-util-build-jsx@3.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" } }, "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ=="], + + "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], + + "estree-util-scope": ["estree-util-scope@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" } }, "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ=="], + + "estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="], + + "estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="], + + "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], + + "eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="], + + "events-universal": ["events-universal@1.0.1", "", { "dependencies": { "bare-events": "^2.7.0" } }, "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw=="], + + "expressive-code": ["expressive-code@0.41.3", "", { "dependencies": { "@expressive-code/core": "^0.41.3", "@expressive-code/plugin-frames": "^0.41.3", "@expressive-code/plugin-shiki": "^0.41.3", "@expressive-code/plugin-text-markers": "^0.41.3" } }, "sha512-YLnD62jfgBZYrXIPQcJ0a51Afv9h8VlWqEGK9uU2T5nL/5rb8SnA86+7+mgCZe5D34Tff5RNEA5hjNVJYHzrFg=="], + + "exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], + + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-fifo": ["fast-fifo@1.3.2", "", {}, "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="], + + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], + + "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], + + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "finalhandler": ["finalhandler@2.1.0", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + + "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], + + "fontace": ["fontace@0.3.1", "", { "dependencies": { "@types/fontkit": "^2.0.8", "fontkit": "^2.0.4" } }, "sha512-9f5g4feWT1jWT8+SbL85aLIRLIXUaDygaM2xPXRmzPYxrOMNok79Lr3FGJoKVNKibE0WCunNiEVG2mwuE+2qEg=="], + + "fontkit": ["fontkit@2.0.4", "", { "dependencies": { "@swc/helpers": "^0.5.12", "brotli": "^1.3.2", "clone": "^2.1.2", "dfa": "^1.2.0", "fast-deep-equal": "^3.1.3", "restructure": "^3.0.0", "tiny-inflate": "^1.0.3", "unicode-properties": "^1.4.0", "unicode-trie": "^2.0.0" } }, "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g=="], + + "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + + "get-east-asian-width": ["get-east-asian-width@1.4.0", "", {}, "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q=="], + + "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + + "get-uri": ["get-uri@6.0.5", "", { "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4" } }, "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg=="], + + "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@16.5.0", "", {}, "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ=="], + + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + + "h3": ["h3@1.15.4", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.2", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ=="], + + "hachure-fill": ["hachure-fill@0.5.2", "", {}, "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "hast-util-embedded": ["hast-util-embedded@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-is-element": "^3.0.0" } }, "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA=="], + + "hast-util-format": ["hast-util-format@1.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-minify-whitespace": "^1.0.0", "hast-util-phrasing": "^3.0.0", "hast-util-whitespace": "^3.0.0", "html-whitespace-sensitive-tag-names": "^3.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA=="], + + "hast-util-from-dom": ["hast-util-from-dom@5.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hastscript": "^9.0.0", "web-namespaces": "^2.0.0" } }, "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q=="], + + "hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], + + "hast-util-from-html-isomorphic": ["hast-util-from-html-isomorphic@2.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-dom": "^5.0.0", "hast-util-from-html": "^2.0.0", "unist-util-remove-position": "^5.0.0" } }, "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw=="], + + "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], + + "hast-util-has-property": ["hast-util-has-property@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA=="], + + "hast-util-is-body-ok-link": ["hast-util-is-body-ok-link@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ=="], + + "hast-util-is-element": ["hast-util-is-element@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g=="], + + "hast-util-minify-whitespace": ["hast-util-minify-whitespace@1.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-is-element": "^3.0.0", "hast-util-whitespace": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + + "hast-util-phrasing": ["hast-util-phrasing@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-has-property": "^3.0.0", "hast-util-is-body-ok-link": "^3.0.0", "hast-util-is-element": "^3.0.0" } }, "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ=="], + + "hast-util-raw": ["hast-util-raw@9.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw=="], + + "hast-util-select": ["hast-util-select@6.0.4", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "bcp-47-match": "^2.0.0", "comma-separated-tokens": "^2.0.0", "css-selector-parser": "^3.0.0", "devlop": "^1.0.0", "direction": "^2.0.0", "hast-util-has-property": "^3.0.0", "hast-util-to-string": "^3.0.0", "hast-util-whitespace": "^3.0.0", "nth-check": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw=="], + + "hast-util-to-estree": ["hast-util-to-estree@3.1.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="], + + "hast-util-to-parse5": ["hast-util-to-parse5@8.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw=="], + + "hast-util-to-string": ["hast-util-to-string@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A=="], + + "hast-util-to-text": ["hast-util-to-text@4.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "hast-util-is-element": "^3.0.0", "unist-util-find-after": "^5.0.0" } }, "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + + "html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "html-whitespace-sensitive-tag-names": ["html-whitespace-sensitive-tag-names@3.0.1", "", {}, "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA=="], + + "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], + + "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], + + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], + + "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + + "i18next": ["i18next@23.16.8", "", { "dependencies": { "@babel/runtime": "^7.23.2" } }, "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg=="], + + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + + "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], + + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + + "ip-address": ["ip-address@10.1.0", "", {}, "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q=="], + + "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + + "is-absolute-url": ["is-absolute-url@4.0.1", "", {}, "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A=="], + + "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], + + "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], + + "is-arrayish": ["is-arrayish@0.3.4", "", {}, "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA=="], + + "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], + + "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="], + + "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "jsonc-parser": ["jsonc-parser@2.3.1", "", {}, "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg=="], + + "katex": ["katex@0.16.25", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "khroma": ["khroma@2.1.0", "", {}, "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="], + + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + + "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], + + "kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="], + + "langium": ["langium@3.3.1", "", { "dependencies": { "chevrotain": "~11.0.3", "chevrotain-allstar": "~0.3.0", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", "vscode-uri": "~3.0.8" } }, "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w=="], + + "layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + + "local-pkg": ["local-pkg@1.1.2", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "lodash-es": ["lodash-es@4.17.21", "", {}, "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + + "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "magicast": ["magicast@0.3.5", "", { "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", "source-map-js": "^1.2.0" } }, "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ=="], + + "markdown-extensions": ["markdown-extensions@2.0.0", "", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="], + + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], + + "marked": ["marked@12.0.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q=="], + + "mdast-util-definitions": ["mdast-util-definitions@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="], + + "mdast-util-directive": ["mdast-util-directive@3.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q=="], + + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], + + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="], + + "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], + + "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="], + + "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], + + "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], + + "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], + + "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], + + "mdast-util-mdx": ["mdast-util-mdx@3.0.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w=="], + + "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="], + + "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="], + + "mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="], + + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA=="], + + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + + "mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "mermaid": ["mermaid@11.12.1", "", { "dependencies": { "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.1", "@mermaid-js/parser": "^0.6.3", "@types/d3": "^7.4.3", "cytoscape": "^3.29.3", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.13", "dayjs": "^1.11.18", "dompurify": "^3.2.5", "katex": "^0.16.22", "khroma": "^2.1.0", "lodash-es": "^4.17.21", "marked": "^16.2.1", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", "uuid": "^11.1.0" } }, "sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g=="], + + "mermaid-isomorphic": ["mermaid-isomorphic@3.0.4", "", { "dependencies": { "@fortawesome/fontawesome-free": "^6.0.0", "mermaid": "^11.0.0" }, "peerDependencies": { "playwright": "1" }, "optionalPeers": ["playwright"] }, "sha512-XQTy7H1XwHK3DPEHf+ZNWiqUEd9BwX3Xws38R9Fj2gx718srmgjlZoUzHr+Tca+O+dqJOJsAJaKzCoP65QDfDg=="], + + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + + "micromark-extension-directive": ["micromark-extension-directive@3.0.2", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "parse-entities": "^4.0.0" } }, "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA=="], + + "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], + + "micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="], + + "micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="], + + "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="], + + "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="], + + "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="], + + "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="], + + "micromark-extension-mdx-expression": ["micromark-extension-mdx-expression@3.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q=="], + + "micromark-extension-mdx-jsx": ["micromark-extension-mdx-jsx@3.0.2", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ=="], + + "micromark-extension-mdx-md": ["micromark-extension-mdx-md@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ=="], + + "micromark-extension-mdxjs": ["micromark-extension-mdxjs@3.0.0", "", { "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ=="], + + "micromark-extension-mdxjs-esm": ["micromark-extension-mdxjs-esm@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A=="], + + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + + "micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="], + + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="], + + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + + "mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="], + + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + + "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], + + "mlly": ["mlly@1.8.0", "", { "dependencies": { "acorn": "^8.15.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.1" } }, "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g=="], + + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], + + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "muggle-string": ["muggle-string@0.4.1", "", {}, "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "neotraverse": ["neotraverse@0.6.18", "", {}, "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA=="], + + "netmask": ["netmask@2.0.2", "", {}, "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="], + + "nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="], + + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], + + "node-mock-http": ["node-mock-http@1.0.3", "", {}, "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + + "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], + + "ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], + + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], + + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + + "oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="], + + "oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "p-limit": ["p-limit@6.2.0", "", { "dependencies": { "yocto-queue": "^1.1.1" } }, "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "p-queue": ["p-queue@8.1.1", "", { "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^6.1.2" } }, "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ=="], + + "p-timeout": ["p-timeout@6.1.4", "", {}, "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg=="], + + "pac-proxy-agent": ["pac-proxy-agent@7.2.0", "", { "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.6", "pac-resolver": "^7.0.1", "socks-proxy-agent": "^8.0.5" } }, "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA=="], + + "pac-resolver": ["pac-resolver@7.0.1", "", { "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" } }, "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg=="], + + "package-manager-detector": ["package-manager-detector@1.5.0", "", {}, "sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw=="], + + "pagefind": ["pagefind@1.4.0", "", { "optionalDependencies": { "@pagefind/darwin-arm64": "1.4.0", "@pagefind/darwin-x64": "1.4.0", "@pagefind/freebsd-x64": "1.4.0", "@pagefind/linux-arm64": "1.4.0", "@pagefind/linux-x64": "1.4.0", "@pagefind/windows-x64": "1.4.0" }, "bin": { "pagefind": "lib/runner/bin.cjs" } }, "sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g=="], + + "pako": ["pako@0.2.9", "", {}, "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + + "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], + + "parse-latin": ["parse-latin@7.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", "nlcst-to-string": "^4.0.0", "unist-util-modify-children": "^4.0.0", "unist-util-visit-children": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ=="], + + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + + "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], + + "path-data-parser": ["path-data-parser@0.1.0", "", {}, "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + + "pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="], + + "points-on-curve": ["points-on-curve@0.2.0", "", {}, "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="], + + "points-on-path": ["points-on-path@0.2.1", "", { "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" } }, "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g=="], + + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + + "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], + + "postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="], + + "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + + "progress": ["progress@2.0.3", "", {}, "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="], + + "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], + + "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + + "proxy-agent": ["proxy-agent@6.5.0", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", "socks-proxy-agent": "^8.0.5" } }, "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A=="], + + "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], + + "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "puppeteer": ["puppeteer@24.30.0", "", { "dependencies": { "@puppeteer/browsers": "2.10.13", "chromium-bidi": "11.0.0", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1521046", "puppeteer-core": "24.30.0", "typed-query-selector": "^2.12.0" }, "bin": { "puppeteer": "lib/cjs/puppeteer/node/cli.js" } }, "sha512-A5OtCi9WpiXBQgJ2vQiZHSyrAzQmO/WDsvghqlN4kgw21PhxA5knHUaUQq/N3EMt8CcvSS0RM+kmYLJmedR3TQ=="], + + "puppeteer-core": ["puppeteer-core@24.30.0", "", { "dependencies": { "@puppeteer/browsers": "2.10.13", "chromium-bidi": "11.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1521046", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.3.8", "ws": "^8.18.3" } }, "sha512-2S3Smy0t0W4wJnNvDe7W0bE7wDmZjfZ3ljfMgJd6hn2Hq/f0jgN+x9PULZo2U3fu5UUIJ+JP8cNUGllu8P91Pg=="], + + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], + + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + + "recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="], + + "recma-jsx": ["recma-jsx@1.0.1", "", { "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" }, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w=="], + + "recma-parse": ["recma-parse@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ=="], + + "recma-stringify": ["recma-stringify@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g=="], + + "regex": ["regex@6.0.1", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + + "rehype": ["rehype@13.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "rehype-parse": "^9.0.0", "rehype-stringify": "^10.0.0", "unified": "^11.0.0" } }, "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A=="], + + "rehype-expressive-code": ["rehype-expressive-code@0.41.3", "", { "dependencies": { "expressive-code": "^0.41.3" } }, "sha512-8d9Py4c/V6I/Od2VIXFAdpiO2kc0SV2qTJsRAaqSIcM9aruW4ASLNe2kOEo1inXAAkIhpFzAHTc358HKbvpNUg=="], + + "rehype-format": ["rehype-format@5.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-format": "^1.0.0" } }, "sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ=="], + + "rehype-parse": ["rehype-parse@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", "unified": "^11.0.0" } }, "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag=="], + + "rehype-raw": ["rehype-raw@7.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="], + + "rehype-recma": ["rehype-recma@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "hast-util-to-estree": "^3.0.0" } }, "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw=="], + + "rehype-stringify": ["rehype-stringify@10.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", "unified": "^11.0.0" } }, "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA=="], + + "remark-directive": ["remark-directive@3.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", "micromark-extension-directive": "^3.0.0", "unified": "^11.0.0" } }, "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A=="], + + "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], + + "remark-mdx": ["remark-mdx@3.1.1", "", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg=="], + + "remark-mermaidjs": ["remark-mermaidjs@7.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "hast-util-from-html-isomorphic": "^2.0.0", "mermaid-isomorphic": "^3.0.0", "unified": "^11.0.0", "unist-util-visit-parents": "^6.0.0", "vfile": "^6.0.0" }, "peerDependencies": { "playwright": "1" }, "optionalPeers": ["playwright"] }, "sha512-daW4LzAX1q3//SdRsTQ0ELyAXdy0yvJJQ2S0he5ddhZmnt8cyTv3QN536ezMY/OY4a3XGDMz+NU1SOSQ5xcYAA=="], + + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], + + "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], + + "remark-smartypants": ["remark-smartypants@3.0.2", "", { "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", "unified": "^11.0.4", "unist-util-visit": "^5.0.0" } }, "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA=="], + + "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + + "request-light": ["request-light@0.7.0", "", {}, "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q=="], + + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "respec": ["respec@35.6.0", "", { "dependencies": { "colors": "1.4.0", "finalhandler": "^2.1.0", "marked": "^12.0.2", "puppeteer": "^24.24.0", "sade": "^1.8.1", "serve-static": "^2.2.0" }, "bin": { "respec": "tools/respec2html.js", "respec2html": "tools/respec2html.js" } }, "sha512-ZLk+iQ9df7YrtWqv92WJV8Hgf0+VCCvWkmibzulgOmgsS+VBDnUiOCQYTmaBxwAnH0mBR8OxETKseaJs/y+gsQ=="], + + "restructure": ["restructure@3.0.2", "", {}, "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw=="], + + "retext": ["retext@9.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", "retext-stringify": "^4.0.0", "unified": "^11.0.0" } }, "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA=="], + + "retext-latin": ["retext-latin@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", "unified": "^11.0.0" } }, "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA=="], + + "retext-smartypants": ["retext-smartypants@6.2.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ=="], + + "retext-stringify": ["retext-stringify@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" } }, "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + + "robust-predicates": ["robust-predicates@3.0.2", "", {}, "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="], + + "rollup": ["rollup@4.53.2", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.2", "@rollup/rollup-android-arm64": "4.53.2", "@rollup/rollup-darwin-arm64": "4.53.2", "@rollup/rollup-darwin-x64": "4.53.2", "@rollup/rollup-freebsd-arm64": "4.53.2", "@rollup/rollup-freebsd-x64": "4.53.2", "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", "@rollup/rollup-linux-arm-musleabihf": "4.53.2", "@rollup/rollup-linux-arm64-gnu": "4.53.2", "@rollup/rollup-linux-arm64-musl": "4.53.2", "@rollup/rollup-linux-loong64-gnu": "4.53.2", "@rollup/rollup-linux-ppc64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-musl": "4.53.2", "@rollup/rollup-linux-s390x-gnu": "4.53.2", "@rollup/rollup-linux-x64-gnu": "4.53.2", "@rollup/rollup-linux-x64-musl": "4.53.2", "@rollup/rollup-openharmony-arm64": "4.53.2", "@rollup/rollup-win32-arm64-msvc": "4.53.2", "@rollup/rollup-win32-ia32-msvc": "4.53.2", "@rollup/rollup-win32-x64-gnu": "4.53.2", "@rollup/rollup-win32-x64-msvc": "4.53.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g=="], + + "roughjs": ["roughjs@4.6.6", "", { "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", "points-on-curve": "^0.2.0", "points-on-path": "^0.2.1" } }, "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="], + + "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "sax": ["sax@1.4.3", "", {}, "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ=="], + + "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + + "send": ["send@1.2.0", "", { "dependencies": { "debug": "^4.3.5", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.0", "mime-types": "^3.0.1", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.1" } }, "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw=="], + + "serve-static": ["serve-static@2.2.0", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ=="], + + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + + "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], + + "simple-swizzle": ["simple-swizzle@0.2.4", "", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw=="], + + "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + + "sitemap": ["sitemap@8.0.2", "", { "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", "arg": "^5.0.0", "sax": "^1.4.1" }, "bin": { "sitemap": "dist/cli.js" } }, "sha512-LwktpJcyZDoa0IL6KT++lQ53pbSrx2c9ge41/SeLTyqy2XUNA6uR4+P9u5IVo5lPeL2arAcOKn1aZAxoYbCKlQ=="], + + "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="], + + "smol-toml": ["smol-toml@1.5.2", "", {}, "sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ=="], + + "socks": ["socks@2.8.7", "", { "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" } }, "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A=="], + + "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="], + + "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + + "starlight-fullview-mode": ["starlight-fullview-mode@0.2.6", "", { "dependencies": { "@iconify-json/mdi": "^1.1.68" }, "peerDependencies": { "@astrojs/starlight": ">=0.32" } }, "sha512-gXVTOUVkObbfR+iS6Y1i/uR5JHGKow3CtRZnx0IbWW+TWLBaYZ0fsbGrjdH2ELMF2qvkHzco3uQD1xmrMaKy7g=="], + + "starlight-links-validator": ["starlight-links-validator@0.17.2", "", { "dependencies": { "@types/picomatch": "^3.0.1", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-has-property": "^3.0.0", "is-absolute-url": "^4.0.1", "kleur": "^4.1.5", "mdast-util-mdx-jsx": "^3.1.3", "mdast-util-to-string": "^4.0.0", "picomatch": "^4.0.2", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@astrojs/starlight": ">=0.32.0" } }, "sha512-d2SRWu04HPiUzrzntuv/uzuXnIu4reJwzX1c+7uvcnqOCuzgpv+tmlUC+dp3VYpmfxQy8RX+xcWtfcEkx905VA=="], + + "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + + "stream-replace-string": ["stream-replace-string@2.0.0", "", {}, "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w=="], + + "streamx": ["streamx@2.23.0", "", { "dependencies": { "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" } }, "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="], + + "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], + + "stylis": ["stylis@4.3.6", "", {}, "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], + + "tar-fs": ["tar-fs@3.1.1", "", { "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", "bare-path": "^3.0.0" } }, "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg=="], + + "tar-stream": ["tar-stream@3.1.7", "", { "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ=="], + + "text-decoder": ["text-decoder@1.2.3", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="], + + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], + + "tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + + "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], + + "ts-dedent": ["ts-dedent@2.2.0", "", {}, "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ=="], + + "tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], + + "typed-query-selector": ["typed-query-selector@2.12.0", "", {}, "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg=="], + + "typesafe-path": ["typesafe-path@0.2.2", "", {}, "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "typescript-auto-import-cache": ["typescript-auto-import-cache@0.3.6", "", { "dependencies": { "semver": "^7.3.8" } }, "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ=="], + + "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], + + "ultrahtml": ["ultrahtml@1.6.0", "", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="], + + "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + + "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + + "unicode-properties": ["unicode-properties@1.4.1", "", { "dependencies": { "base64-js": "^1.3.0", "unicode-trie": "^2.0.0" } }, "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg=="], + + "unicode-trie": ["unicode-trie@2.0.0", "", { "dependencies": { "pako": "^0.2.5", "tiny-inflate": "^1.0.0" } }, "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ=="], + + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unifont": ["unifont@0.5.2", "", { "dependencies": { "css-tree": "^3.0.0", "ofetch": "^1.4.1", "ohash": "^2.0.0" } }, "sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg=="], + + "unist-util-find-after": ["unist-util-find-after@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-modify-children": ["unist-util-modify-children@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" } }, "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-position-from-estree": ["unist-util-position-from-estree@2.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ=="], + + "unist-util-remove-position": ["unist-util-remove-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg=="], + + "unist-util-visit-children": ["unist-util-visit-children@3.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "unstorage": ["unstorage@1.17.2", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.4", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.0", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-cKEsD6iBWJgOMJ6vW1ID/SYuqNf8oN4yqRk8OYqaVQ3nnkJXOT1PSpaMh2QfzLs78UN5kSNRD2c/mgjT8tX7+w=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uuid": ["uuid@11.1.0", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], + + "vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], + + "volar-service-css": ["volar-service-css@0.0.66", "", { "dependencies": { "vscode-css-languageservice": "^6.3.0", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-XrL1V9LEAHnunglYdDf/7shJbQXqKsHB+P69zPmJTqHx6hqvM9GWNbn2h7M0P/oElW8p/MTVHdfjl6C8cxdsBQ=="], + + "volar-service-emmet": ["volar-service-emmet@0.0.66", "", { "dependencies": { "@emmetio/css-parser": "github:ramya-rao-a/css-parser#vscode", "@emmetio/html-matcher": "^1.3.0", "@vscode/emmet-helper": "^2.9.3", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-BMPSpm6mk0DAEVdI2haxYIOt1Z2oaIZvCGtXuRu95x50a5pOSRPjdeHv2uGp1rQsq1Izigx+VR/bZUf2HcSnVQ=="], + + "volar-service-html": ["volar-service-html@0.0.66", "", { "dependencies": { "vscode-html-languageservice": "^5.3.0", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-MKKD2qM8qVZvBKBIugt00+Bm8j1ehgeX7Cm5XwgeEgdW/3PhUEEe/aeTxQGon1WJIGf2MM/cHPjZxPJOQN4WfQ=="], + + "volar-service-prettier": ["volar-service-prettier@0.0.66", "", { "dependencies": { "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0", "prettier": "^2.2 || ^3.0" }, "optionalPeers": ["@volar/language-service", "prettier"] }, "sha512-CVaQEyfmFWoq3NhNVExoyDKonPqdacmb/07w7OfTZljxLgZpDRygiHAvzBKIcenb7rKtJNHqfQJv99ULOinJBA=="], + + "volar-service-typescript": ["volar-service-typescript@0.0.66", "", { "dependencies": { "path-browserify": "^1.0.1", "semver": "^7.6.2", "typescript-auto-import-cache": "^0.3.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-nls": "^5.2.0", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-8irsfCEf86R1RqPijrU6p5NCqKDNzyJNWKM6ZXmCcJqhebtl7Hr/a0bnlr59AzqkS3Ym4PbbJZs1K/92CXTDsw=="], + + "volar-service-typescript-twoslash-queries": ["volar-service-typescript-twoslash-queries@0.0.66", "", { "dependencies": { "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-PA3CyvEaBrkxJcBq+HFdks1TF1oJ8H+jTOTQUurLDRkVjmUFg8bfdya6U/dWfTsPaDSRM4m/2chwgew5zoQXfg=="], + + "volar-service-yaml": ["volar-service-yaml@0.0.66", "", { "dependencies": { "vscode-uri": "^3.0.8", "yaml-language-server": "~1.19.2" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-q6oTKD6EMEu1ws1FDjRw+cfCF69Gu51IEGM9jVbtmSZS1qQHKxMqlt2+wBInKl2D+xILtjzkWbfkjQyBYQMw7g=="], + + "vscode-css-languageservice": ["vscode-css-languageservice@6.3.8", "", { "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", "vscode-uri": "^3.1.0" } }, "sha512-dBk/9ullEjIMbfSYAohGpDOisOVU1x2MQHOeU12ohGJQI7+r0PCimBwaa/pWpxl/vH4f7ibrBfxIZY3anGmHKQ=="], + + "vscode-html-languageservice": ["vscode-html-languageservice@5.6.0", "", { "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.1.0" } }, "sha512-FIVz83oGw2tBkOr8gQPeiREInnineCKGCz3ZD1Pi6opOuX3nSRkc4y4zLLWsuop+6ttYX//XZCI6SLzGhRzLmA=="], + + "vscode-json-languageservice": ["vscode-json-languageservice@4.1.8", "", { "dependencies": { "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.16.0", "vscode-nls": "^5.0.0", "vscode-uri": "^3.0.2" } }, "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg=="], + + "vscode-jsonrpc": ["vscode-jsonrpc@8.2.0", "", {}, "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA=="], + + "vscode-languageserver": ["vscode-languageserver@9.0.1", "", { "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" } }, "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g=="], + + "vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.17.5", "", { "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" } }, "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg=="], + + "vscode-languageserver-textdocument": ["vscode-languageserver-textdocument@1.0.12", "", {}, "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="], + + "vscode-languageserver-types": ["vscode-languageserver-types@3.17.5", "", {}, "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="], + + "vscode-nls": ["vscode-nls@5.2.0", "", {}, "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng=="], + + "vscode-uri": ["vscode-uri@3.1.0", "", {}, "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ=="], + + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + + "webdriver-bidi-protocol": ["webdriver-bidi-protocol@0.3.8", "", {}, "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ=="], + + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-pm-runs": ["which-pm-runs@1.1.0", "", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="], + + "widest-line": ["widest-line@5.0.0", "", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], + + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + + "ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], + + "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], + + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + + "yaml": ["yaml@2.8.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="], + + "yaml-language-server": ["yaml-language-server@1.19.2", "", { "dependencies": { "@vscode/l10n": "^0.0.18", "ajv": "^8.17.1", "ajv-draft-04": "^1.0.0", "lodash": "4.17.21", "prettier": "^3.5.0", "request-light": "^0.5.7", "vscode-json-languageservice": "4.1.8", "vscode-languageserver": "^9.0.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.16.0", "vscode-uri": "^3.0.2", "yaml": "2.7.1" }, "bin": { "yaml-language-server": "bin/yaml-language-server" } }, "sha512-9F3myNmJzUN/679jycdMxqtydPSDRAarSj3wPiF7pchEPnO9Dg07Oc+gIYLqXR4L+g+FSEVXXv2+mr54StLFOg=="], + + "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], + + "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + + "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], + + "yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], + + "yocto-spinner": ["yocto-spinner@0.2.3", "", { "dependencies": { "yoctocolors": "^2.1.1" } }, "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ=="], + + "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="], + + "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + + "zod-to-json-schema": ["zod-to-json-schema@3.25.0", "", { "peerDependencies": { "zod": "^3.25 || ^4" } }, "sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ=="], + + "zod-to-ts": ["zod-to-ts@1.2.0", "", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@antfu/install-pkg/tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], + + "@astrojs/mdx/@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.9", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.5", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.2.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.13.0", "smol-toml": "^1.4.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-hX2cLC/KW74Io1zIbn92kI482j9J7LleBLGCVU9EP3BeH5MVrnFawOnqD0t/q6D1Z+ZNeQG2gNKMslCcO36wng=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "@eslint/eslintrc/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "@iconify/utils/globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "@types/fontkit/@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], + + "@types/sax/@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], + + "@types/yauzl/@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "astro/sharp": ["sharp@0.33.5", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="], + + "boxen/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "boxen/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "cliui/wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "cytoscape-fcose/cose-base": ["cose-base@2.2.0", "", { "dependencies": { "layout-base": "^2.0.0" } }, "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g=="], + + "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "d3-sankey/d3-array": ["d3-array@2.12.1", "", { "dependencies": { "internmap": "^1.0.0" } }, "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ=="], + + "d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="], + + "error-ex/is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], + + "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "eslint/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "hast-util-to-parse5/property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], + + "http-errors/statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], + + "langium/vscode-uri": ["vscode-uri@3.0.8", "", {}, "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="], + + "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], + + "mermaid/marked": ["marked@16.4.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="], + + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "mlly/pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], + + "p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + + "postcss-nested/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + + "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], + + "proxy-agent/lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="], + + "vscode-json-languageservice/jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], + + "widest-line/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + + "wrap-ansi/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "wrap-ansi/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + + "yaml-language-server/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + + "yaml-language-server/request-light": ["request-light@0.5.8", "", {}, "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg=="], + + "yaml-language-server/yaml": ["yaml@2.7.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ=="], + + "@astrojs/mdx/@astrojs/markdown-remark/@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.7.5", "", {}, "sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "astro/sharp/@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.0.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ=="], + + "astro/sharp/@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.0.4" }, "os": "darwin", "cpu": "x64" }, "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q=="], + + "astro/sharp/@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg=="], + + "astro/sharp/@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.0.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ=="], + + "astro/sharp/@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.0.5", "", { "os": "linux", "cpu": "arm" }, "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g=="], + + "astro/sharp/@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA=="], + + "astro/sharp/@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.0.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA=="], + + "astro/sharp/@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw=="], + + "astro/sharp/@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA=="], + + "astro/sharp/@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw=="], + + "astro/sharp/@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.0.5" }, "os": "linux", "cpu": "arm" }, "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ=="], + + "astro/sharp/@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA=="], + + "astro/sharp/@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.0.4" }, "os": "linux", "cpu": "s390x" }, "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q=="], + + "astro/sharp/@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA=="], + + "astro/sharp/@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g=="], + + "astro/sharp/@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw=="], + + "astro/sharp/@img/sharp-wasm32": ["@img/sharp-wasm32@0.33.5", "", { "dependencies": { "@emnapi/runtime": "^1.2.0" }, "cpu": "none" }, "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg=="], + + "astro/sharp/@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.33.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ=="], + + "astro/sharp/@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.33.5", "", { "os": "win32", "cpu": "x64" }, "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg=="], + + "boxen/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "boxen/string-width/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + + "cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="], + + "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + + "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], + + "mlly/pkg-types/confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + + "p-locate/p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "widest-line/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "widest-line/string-width/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + + "wrap-ansi/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "yaml-language-server/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + + "boxen/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "widest-line/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + } +} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..2b5f17de --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,72 @@ +import eslintPluginAstro from 'eslint-plugin-astro' +import tseslint from '@typescript-eslint/eslint-plugin' +import tsparser from '@typescript-eslint/parser' +import prettierConfig from 'eslint-config-prettier' + +export default [ + { + ignores: ['**/*.mdx', '**/dist/**', '**/node_modules/**', '**/.astro/**'], + }, + { + files: ['**/*.{js,mjs,ts}'], + languageOptions: { + parser: tsparser, + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + }, + plugins: { + '@typescript-eslint': tseslint, + }, + rules: { + ...tseslint.configs.recommended.rules, + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-unused-expressions': [ + 'error', + { + allowShortCircuit: true, + allowTernary: true, + }, + ], + }, + }, + { + files: ['**/*.d.ts'], + rules: { + '@typescript-eslint/triple-slash-reference': 'off', + }, + }, + { + files: ['**/specification/**/*.js'], + rules: { + '@typescript-eslint/no-unused-vars': 'warn', + }, + }, + { + files: ['**/*.cjs'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'script', + }, + rules: { + '@typescript-eslint/no-require-imports': 'off', + }, + }, + { + files: ['**/public/**/*.js'], + rules: { + '@typescript-eslint/no-unused-vars': 'warn', + '@typescript-eslint/no-unused-expressions': 'warn', + }, + }, + ...eslintPluginAstro.configs.recommended, + prettierConfig, +] diff --git a/package.json b/package.json index 0ed4dc6b..4ce2e615 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,12 @@ "start": "astro dev", "build": "astro build", "preview": "astro preview", - "astro": "astro" + "astro": "astro", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "format": "prettier --write .", + "format:check": "prettier --check .", + "check": "prettier --check . && eslint ." }, "dependencies": { "@astrojs/check": "^0.9.4", @@ -19,5 +24,12 @@ "starlight-fullview-mode": "^0.2.3", "starlight-links-validator": "^0.17.0", "typescript": "^5.8.3" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^8.47.0", + "@typescript-eslint/parser": "^8.47.0", + "eslint": "^9.39.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-astro": "^1.5.0" } } diff --git a/public/interactive-examples/wm2-ad-free-experience/README.md b/public/interactive-examples/wm2-ad-free-experience/README.md index 48a13348..bc162c5f 100644 --- a/public/interactive-examples/wm2-ad-free-experience/README.md +++ b/public/interactive-examples/wm2-ad-free-experience/README.md @@ -1,6 +1,6 @@ # Remove content for web monetized visitors -You can use Web Monetization to remove content, such as advertisements, only for web monetized visitors. +You can use Web Monetization to remove content, such as advertisements, only for web monetized visitors. In this example, non-web monetized visitors are shown a red advertisement box. The box is hidden for web monetized visitors. @@ -26,7 +26,7 @@ The monetization `` element contains a wallet address as the `href` value. ## ← ad-free.js -Shows/removes the advertisement box based on whether the visitor is web monetized. +Shows/removes the advertisement box based on whether the visitor is web monetized. ## ← wm-previewer.js diff --git a/public/interactive-examples/wm2-ad-free-experience/ad-free.js b/public/interactive-examples/wm2-ad-free-experience/ad-free.js index 14387eea..47a5bbb9 100644 --- a/public/interactive-examples/wm2-ad-free-experience/ad-free.js +++ b/public/interactive-examples/wm2-ad-free-experience/ad-free.js @@ -1,31 +1,31 @@ const adCode = - '
This is an ad! Buy my product!
'; + '
This is an ad! Buy my product!
' function showAds() { - document.getElementById("ad").innerHTML = adCode; + document.getElementById('ad').innerHTML = adCode } function removeAds() { - document.getElementById("ad").remove(); + document.getElementById('ad').remove() } -let hasPaid = false; +let hasPaid = false if (window.MonetizationEvent) { - const link = document.querySelector('link[rel="monetization"]'); - link.addEventListener("monetization", () => { - hasPaid = true; - removeAds(); - }); + const link = document.querySelector('link[rel="monetization"]') + link.addEventListener('monetization', () => { + hasPaid = true + removeAds() + }) } -window.addEventListener("load", () => { +window.addEventListener('load', () => { if (!window.MonetizationEvent) { - showAds(); + showAds() } else { setTimeout(() => { if (!hasPaid) { - showAds(); + showAds() } - }, 3000); + }, 3000) } -}); +}) diff --git a/public/interactive-examples/wm2-ad-free-experience/index.html b/public/interactive-examples/wm2-ad-free-experience/index.html index 64c57f9f..dae23482 100644 --- a/public/interactive-examples/wm2-ad-free-experience/index.html +++ b/public/interactive-examples/wm2-ad-free-experience/index.html @@ -9,6 +9,6 @@ -
+
Your page's content goes here. diff --git a/public/interactive-examples/wm2-ad-free-experience/wm-previewer.js b/public/interactive-examples/wm2-ad-free-experience/wm-previewer.js index 7e8ee3dd..4b4bbd0a 100644 --- a/public/interactive-examples/wm2-ad-free-experience/wm-previewer.js +++ b/public/interactive-examples/wm2-ad-free-experience/wm-previewer.js @@ -1,103 +1,105 @@ function getWmTag() { - return document.querySelector('link[rel="monetization"]'); + return document.querySelector('link[rel="monetization"]') } -function uuid () { +function uuid() { return 'fc23b14d-70e4-4d55-b0a0-dd86f70ce402' } function emitWm() { - const wmTag = getWmTag(); + const wmTag = getWmTag() if (!wmTag) { - throw new Error("cannot emit monetization event without link tag"); + throw new Error('cannot emit monetization event without link tag') } - + const paymentPointer = wmTag.href - + const wmEvent = new Event('monetization') wmEvent.paymentPointer = paymentPointer - wmEvent.amountSent = { currency:'USD', value: (Math.random() * 0.00001).toFixed(9).toString() } - wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`, - wmTag.dispatchEvent(wmEvent); + wmEvent.amountSent = { + currency: 'USD', + value: (Math.random() * 0.00001).toFixed(9).toString(), + } + ;((wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`), + wmTag.dispatchEvent(wmEvent)) } function isWm() { - const pageUrl = new URL(window.location); - return pageUrl.searchParams.get("wm") === "true"; + const pageUrl = new URL(window.location) + return pageUrl.searchParams.get('wm') === 'true' } function createWmWidget() { - const div = document.createElement("div"); - div.style.position = "fixed"; - div.style.right = "0px"; - div.style.bottom = "0px"; - div.style.padding = "20px"; - - const pageUrl = new URL(window.location); - const isWm = pageUrl.searchParams.get("wm") === "true"; - - const buttonDiv = document.createElement("a"); - buttonDiv.style.display = "block"; - buttonDiv.style.cursor = "pointer"; - buttonDiv.style.fontFamily = "sans-serif"; - buttonDiv.style.borderRadius = "5px"; - buttonDiv.style.backgroundColor = "black"; - buttonDiv.style.color = "white"; - buttonDiv.style.lineHeight = "30px"; - buttonDiv.style.paddingTop = "3px"; - buttonDiv.style.paddingLeft = "10px"; - buttonDiv.style.paddingRight = "10px"; + const div = document.createElement('div') + div.style.position = 'fixed' + div.style.right = '0px' + div.style.bottom = '0px' + div.style.padding = '20px' + + const pageUrl = new URL(window.location) + const isWm = pageUrl.searchParams.get('wm') === 'true' + + const buttonDiv = document.createElement('a') + buttonDiv.style.display = 'block' + buttonDiv.style.cursor = 'pointer' + buttonDiv.style.fontFamily = 'sans-serif' + buttonDiv.style.borderRadius = '5px' + buttonDiv.style.backgroundColor = 'black' + buttonDiv.style.color = 'white' + buttonDiv.style.lineHeight = '30px' + buttonDiv.style.paddingTop = '3px' + buttonDiv.style.paddingLeft = '10px' + buttonDiv.style.paddingRight = '10px' buttonDiv.innerText = isWm - ? "View as non-web monetized visitor" - : "View as web monetized visitor"; + ? 'View as non-web monetized visitor' + : 'View as web monetized visitor' - div.appendChild(buttonDiv); - buttonDiv.addEventListener("click", () => { - pageUrl.searchParams.set("wm", isWm ? "false" : "true"); - window.location = pageUrl.href; - }); + div.appendChild(buttonDiv) + buttonDiv.addEventListener('click', () => { + pageUrl.searchParams.set('wm', isWm ? 'false' : 'true') + window.location = pageUrl.href + }) - return div; + return div } const STOPPED_ICON_SRC = '/img/wm-icon.svg' const STARTED_ICON_SRC = '/img/wm-icon-animated.svg' function createWmIcon() { - const img = document.createElement("img"); - img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC; - img.style.position = "fixed"; - img.style.right = "20px"; - img.style.bottom = "70px"; - img.style.width = "40px"; - img.style.height = "40px"; - img.id = "wm-icon"; - - return img; + const img = document.createElement('img') + img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC + img.style.position = 'fixed' + img.style.right = '20px' + img.style.bottom = '70px' + img.style.width = '40px' + img.style.height = '40px' + img.id = 'wm-icon' + + return img } function start() { // This is just for embedded demos if (window === window.top) { - return; + return } - - window.MonetizationEvent = {}; // define MonetizationEvent + window.MonetizationEvent = {} // define MonetizationEvent - const wmWidget = createWmWidget(); - const icon = createWmIcon(); + const wmWidget = createWmWidget() + const icon = createWmIcon() - window.addEventListener("load", (event) => { - document.body.appendChild(wmWidget); - document.body.appendChild(icon); - }); + window.addEventListener('load', (event) => { + document.body.appendChild(wmWidget) + document.body.appendChild(icon) + }) if (isWm()) { - window.addEventListener("load", (event) => { - emitWm(); - }); + window.addEventListener('load', (event) => { + emitWm() + }) } } -start(); +start() diff --git a/public/interactive-examples/wm2-count-revenue/README.md b/public/interactive-examples/wm2-count-revenue/README.md index 9c697a0a..0296beca 100644 --- a/public/interactive-examples/wm2-count-revenue/README.md +++ b/public/interactive-examples/wm2-count-revenue/README.md @@ -4,7 +4,6 @@ You can use Web Monetization to show your visitors exactly how much they've cont For web monetized visitors, the counter increases by one cent every ~20 seconds. - # Web Monetization Web Monetization is an easier way for site visitors to financially contribute to creators. diff --git a/public/interactive-examples/wm2-count-revenue/counter.js b/public/interactive-examples/wm2-count-revenue/counter.js index 48678070..16bf7c0f 100644 --- a/public/interactive-examples/wm2-count-revenue/counter.js +++ b/public/interactive-examples/wm2-count-revenue/counter.js @@ -1,20 +1,20 @@ -let total = 0; +let total = 0 if (window.MonetizationEvent) { - const link = document.querySelector('link[rel="monetization"]'); - const contribution = document.getElementById('contribution'); + const link = document.querySelector('link[rel="monetization"]') + const contribution = document.getElementById('contribution') link.addEventListener('monetization', (event) => { const { amountSent: { value, currency }, - } = event; - console.log(`Browser sent ${currency} ${value}.`); + } = event + console.log(`Browser sent ${currency} ${value}.`) - total += Number(value); + total += Number(value) contribution.innerText = new Intl.NumberFormat(navigator.language, { style: 'currency', currency, - }).format(total); - }); + }).format(total) + }) } diff --git a/public/interactive-examples/wm2-count-revenue/wm-previewer.js b/public/interactive-examples/wm2-count-revenue/wm-previewer.js index ba25c6f7..98f801ed 100644 --- a/public/interactive-examples/wm2-count-revenue/wm-previewer.js +++ b/public/interactive-examples/wm2-count-revenue/wm-previewer.js @@ -1,5 +1,5 @@ function getWmTag() { - return document.querySelector('link[rel="monetization"]'); + return document.querySelector('link[rel="monetization"]') } function uuid() { @@ -7,98 +7,99 @@ function uuid() { } function emitWm() { - const wmTag = getWmTag(); + const wmTag = getWmTag() if (!wmTag) { - throw new Error("cannot emit monetization event without link tag"); + throw new Error('cannot emit monetization event without link tag') } - + const paymentPointer = wmTag.href - + const wmEvent = new Event('monetization') wmEvent.paymentPointer = paymentPointer - wmEvent.amountSent = { currency:'USD', value: (Math.random() * 0.001).toString() } - wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`, - - wmTag.dispatchEvent(wmEvent); + wmEvent.amountSent = { + currency: 'USD', + value: (Math.random() * 0.001).toString(), + } + ;((wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`), + wmTag.dispatchEvent(wmEvent)) } function isWm() { - const pageUrl = new URL(window.location); - return pageUrl.searchParams.get("wm") === "true"; + const pageUrl = new URL(window.location) + return pageUrl.searchParams.get('wm') === 'true' } function createWmWidget() { - const div = document.createElement("div"); - div.style.position = "fixed"; - div.style.right = "0px"; - div.style.bottom = "0px"; - div.style.padding = "20px"; - - const pageUrl = new URL(window.location); - const isWm = pageUrl.searchParams.get("wm") === "true"; - - const buttonDiv = document.createElement("a"); - buttonDiv.style.display = "block"; - buttonDiv.style.cursor = "pointer"; - buttonDiv.style.fontFamily = "sans-serif"; - buttonDiv.style.borderRadius = "5px"; - buttonDiv.style.backgroundColor = "black"; - buttonDiv.style.color = "white"; - buttonDiv.style.lineHeight = "30px"; - buttonDiv.style.paddingTop = "3px"; - buttonDiv.style.paddingLeft = "10px"; - buttonDiv.style.paddingRight = "10px"; + const div = document.createElement('div') + div.style.position = 'fixed' + div.style.right = '0px' + div.style.bottom = '0px' + div.style.padding = '20px' + + const pageUrl = new URL(window.location) + const isWm = pageUrl.searchParams.get('wm') === 'true' + + const buttonDiv = document.createElement('a') + buttonDiv.style.display = 'block' + buttonDiv.style.cursor = 'pointer' + buttonDiv.style.fontFamily = 'sans-serif' + buttonDiv.style.borderRadius = '5px' + buttonDiv.style.backgroundColor = 'black' + buttonDiv.style.color = 'white' + buttonDiv.style.lineHeight = '30px' + buttonDiv.style.paddingTop = '3px' + buttonDiv.style.paddingLeft = '10px' + buttonDiv.style.paddingRight = '10px' buttonDiv.innerText = isWm - ? "View as non-web monetized visitor" - : "View as web monetized visitor"; + ? 'View as non-web monetized visitor' + : 'View as web monetized visitor' - div.appendChild(buttonDiv); - buttonDiv.addEventListener("click", () => { - pageUrl.searchParams.set("wm", isWm ? "false" : "true"); - window.location = pageUrl.href; - }); + div.appendChild(buttonDiv) + buttonDiv.addEventListener('click', () => { + pageUrl.searchParams.set('wm', isWm ? 'false' : 'true') + window.location = pageUrl.href + }) - return div; + return div } -const STOPPED_ICON_SRC = "/img/wm-icon.svg"; -const STARTED_ICON_SRC = "/img/wm-icon-animated.svg"; +const STOPPED_ICON_SRC = '/img/wm-icon.svg' +const STARTED_ICON_SRC = '/img/wm-icon-animated.svg' function createWmIcon() { - const img = document.createElement("img"); - img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC; - img.style.position = "fixed"; - img.style.right = "20px"; - img.style.bottom = "70px"; - img.style.width = "40px"; - img.style.height = "40px"; - img.id = "wm-icon"; - - return img; + const img = document.createElement('img') + img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC + img.style.position = 'fixed' + img.style.right = '20px' + img.style.bottom = '70px' + img.style.width = '40px' + img.style.height = '40px' + img.id = 'wm-icon' + + return img } function start() { // This is just for embedded demos if (window === window.top) { - return; + return } - - window.MonetizationEvent = {}; // define MonetizationEvent + window.MonetizationEvent = {} // define MonetizationEvent - const wmWidget = createWmWidget(); - const icon = createWmIcon(); + const wmWidget = createWmWidget() + const icon = createWmIcon() - window.addEventListener("load", (event) => { - document.body.appendChild(wmWidget); - document.body.appendChild(icon); - }); + window.addEventListener('load', (event) => { + document.body.appendChild(wmWidget) + document.body.appendChild(icon) + }) if (isWm()) { - window.addEventListener("load", (event) => { + window.addEventListener('load', (event) => { setInterval(emitWm, 1000) - }); + }) } } -start(); \ No newline at end of file +start() diff --git a/public/interactive-examples/wm2-exclusive-content-complex/README.md b/public/interactive-examples/wm2-exclusive-content-complex/README.md index df44d295..17e1e687 100644 --- a/public/interactive-examples/wm2-exclusive-content-complex/README.md +++ b/public/interactive-examples/wm2-exclusive-content-complex/README.md @@ -1,6 +1,6 @@ # Show indicator and exclusive content -You can use Web Monetization to show an indicator to your visitors while they wait up to three seconds for Web Monetization to initialize. +You can use Web Monetization to show an indicator to your visitors while they wait up to three seconds for Web Monetization to initialize. Non-web monetized users will be presented with a message that says exclusive content is available if they become web monetized. The exclusive content will remain hidden. diff --git a/public/interactive-examples/wm2-exclusive-content-complex/exclusive-content-complex.js b/public/interactive-examples/wm2-exclusive-content-complex/exclusive-content-complex.js index 31238394..4317810e 100644 --- a/public/interactive-examples/wm2-exclusive-content-complex/exclusive-content-complex.js +++ b/public/interactive-examples/wm2-exclusive-content-complex/exclusive-content-complex.js @@ -1,29 +1,29 @@ function showExclusiveContent() { - document.getElementById("loading").classList.add("hidden"); - document.getElementById("cta").classList.add("hidden"); - document.getElementById("exclusive").classList.remove("hidden"); + document.getElementById('loading').classList.add('hidden') + document.getElementById('cta').classList.add('hidden') + document.getElementById('exclusive').classList.remove('hidden') } function showCTA() { - document.getElementById("loading").classList.add("hidden"); - document.getElementById("cta").classList.remove("hidden"); + document.getElementById('loading').classList.add('hidden') + document.getElementById('cta').classList.remove('hidden') } function showLoading() { - document.getElementById("loading").classList.remove("hidden"); + document.getElementById('loading').classList.remove('hidden') } if (window.MonetizationEvent) { - const link = document.querySelector('link[rel="monetization"]'); - link.addEventListener("monetization", (ev) => { - showExclusiveContent(); - }); + const link = document.querySelector('link[rel="monetization"]') + link.addEventListener('monetization', (ev) => { + showExclusiveContent() + }) } -window.addEventListener("load", () => { +window.addEventListener('load', () => { if (!window.MonetizationEvent) { - showCTA(); + showCTA() } else { - showLoading(); + showLoading() } -}); +}) diff --git a/public/interactive-examples/wm2-exclusive-content-complex/index.html b/public/interactive-examples/wm2-exclusive-content-complex/index.html index cf74ed1b..9837d1d5 100644 --- a/public/interactive-examples/wm2-exclusive-content-complex/index.html +++ b/public/interactive-examples/wm2-exclusive-content-complex/index.html @@ -21,6 +21,6 @@ type="application/javascript" src="./exclusive-content-complex.js" > -
+

This is content that's available to everyone.

diff --git a/public/interactive-examples/wm2-exclusive-content-complex/wm-previewer.js b/public/interactive-examples/wm2-exclusive-content-complex/wm-previewer.js index f76f8174..5e310a35 100644 --- a/public/interactive-examples/wm2-exclusive-content-complex/wm-previewer.js +++ b/public/interactive-examples/wm2-exclusive-content-complex/wm-previewer.js @@ -1,109 +1,109 @@ function getWmTag() { - return document.querySelector('link[rel="monetization"]'); + return document.querySelector('link[rel="monetization"]') } function uuid() { - return "fc23b14d-70e4-4d55-b0a0-dd86f70ce402"; + return 'fc23b14d-70e4-4d55-b0a0-dd86f70ce402' } function emitWm() { - const wmTag = getWmTag(); + const wmTag = getWmTag() if (!wmTag) { - throw new Error("cannot emit monetization event without link tag"); + throw new Error('cannot emit monetization event without link tag') } - const paymentPointer = wmTag.href; + const paymentPointer = wmTag.href - const wmEvent = new Event("monetization"); - wmEvent.paymentPointer = paymentPointer; + const wmEvent = new Event('monetization') + wmEvent.paymentPointer = paymentPointer wmEvent.amountSent = { - currency: "USD", + currency: 'USD', value: (Math.random() * 0.00001).toFixed(9).toString(), - }; - wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`; - setTimeout(()=> {wmTag.dispatchEvent(wmEvent)}, 1000); + } + wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}` + setTimeout(() => { + wmTag.dispatchEvent(wmEvent) + }, 1000) } function isWm() { - const pageUrl = new URL(window.location); - return pageUrl.searchParams.get("wm") === "true"; + const pageUrl = new URL(window.location) + return pageUrl.searchParams.get('wm') === 'true' } function createWmWidget() { - const div = document.createElement("div"); - div.style.position = "fixed"; - div.style.right = "0px"; - div.style.bottom = "0px"; - div.style.padding = "20px"; - - const pageUrl = new URL(window.location); - const isWm = pageUrl.searchParams.get("wm") === "true"; - - const buttonDiv = document.createElement("a"); - buttonDiv.style.display = "block"; - buttonDiv.style.cursor = "pointer"; - buttonDiv.style.fontFamily = "sans-serif"; - buttonDiv.style.borderRadius = "5px"; - buttonDiv.style.backgroundColor = "black"; - buttonDiv.style.color = "white"; - buttonDiv.style.lineHeight = "30px"; - buttonDiv.style.paddingTop = "3px"; - buttonDiv.style.paddingLeft = "10px"; - buttonDiv.style.paddingRight = "10px"; + const div = document.createElement('div') + div.style.position = 'fixed' + div.style.right = '0px' + div.style.bottom = '0px' + div.style.padding = '20px' + + const pageUrl = new URL(window.location) + const isWm = pageUrl.searchParams.get('wm') === 'true' + + const buttonDiv = document.createElement('a') + buttonDiv.style.display = 'block' + buttonDiv.style.cursor = 'pointer' + buttonDiv.style.fontFamily = 'sans-serif' + buttonDiv.style.borderRadius = '5px' + buttonDiv.style.backgroundColor = 'black' + buttonDiv.style.color = 'white' + buttonDiv.style.lineHeight = '30px' + buttonDiv.style.paddingTop = '3px' + buttonDiv.style.paddingLeft = '10px' + buttonDiv.style.paddingRight = '10px' buttonDiv.innerText = isWm - ? "View as non-web monetized visitor" - : "View as web monetized visitor"; + ? 'View as non-web monetized visitor' + : 'View as web monetized visitor' - div.appendChild(buttonDiv); - buttonDiv.addEventListener("click", () => { - pageUrl.searchParams.set("wm", isWm ? "false" : "true"); - window.location = pageUrl.href; - }); + div.appendChild(buttonDiv) + buttonDiv.addEventListener('click', () => { + pageUrl.searchParams.set('wm', isWm ? 'false' : 'true') + window.location = pageUrl.href + }) - return div; + return div } -const STOPPED_ICON_SRC = "/img/wm-icon.svg"; -const STARTED_ICON_SRC = "/img/wm-icon-animated.svg"; +const STOPPED_ICON_SRC = '/img/wm-icon.svg' +const STARTED_ICON_SRC = '/img/wm-icon-animated.svg' function createWmIcon() { - const img = document.createElement("img"); - img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC; - img.style.position = "fixed"; - img.style.right = "20px"; - img.style.bottom = "70px"; - img.style.width = "40px"; - img.style.height = "40px"; - img.id = "wm-icon"; - - return img; + const img = document.createElement('img') + img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC + img.style.position = 'fixed' + img.style.right = '20px' + img.style.bottom = '70px' + img.style.width = '40px' + img.style.height = '40px' + img.id = 'wm-icon' + + return img } function start() { // This is just for embedded demos if (window === window.top) { - return; + return } - window.MonetizationEvent = {}; // define MonetizationEvent + window.MonetizationEvent = {} // define MonetizationEvent - const wmWidget = createWmWidget(); - const icon = createWmIcon(); + const wmWidget = createWmWidget() + const icon = createWmIcon() - window.addEventListener("load", (event) => { - document.body.appendChild(wmWidget); - document.body.appendChild(icon); - }); + window.addEventListener('load', (event) => { + document.body.appendChild(wmWidget) + document.body.appendChild(icon) + }) if (isWm()) { - - window.addEventListener("load", (event) => { - emitWm(); - }); - } - else { - delete window.MonetizationEvent; + window.addEventListener('load', (event) => { + emitWm() + }) + } else { + delete window.MonetizationEvent } } -start(); +start() diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/README.md b/public/interactive-examples/wm2-exclusive-content-demo-simulation/README.md index 96036fb2..e57ec65d 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/README.md +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/README.md @@ -1,5 +1,4 @@ -Welcome to Glitch -================= +# Welcome to Glitch Click `Show` in the header to see your app live. Updates to your code will instantly deploy and update live. @@ -7,9 +6,7 @@ Click `Show` in the header to see your app live. Updates to your code will insta Find out more [about Glitch](https://glitch.com/about). - -Your Project ------------- +## Your Project ### ← README.md @@ -17,7 +14,7 @@ That's this file, where you can tell people what your cool website does and how ### ← index.html -Where you'll write the content of your website. +Where you'll write the content of your website. ### ← style.css @@ -31,7 +28,6 @@ If you're feeling fancy you can add interactivity to your site with JavaScript. Drag in `assets`, like images or music, to add them to your project -Made by [Glitch](https://glitch.com/) -------------------- +## Made by [Glitch](https://glitch.com/) \ ゜o゜)ノ diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/index.html b/public/interactive-examples/wm2-exclusive-content-demo-simulation/index.html index 9d061a37..b55cde88 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/index.html +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/index.html @@ -1,4 +1,4 @@ - + Exclusive Content Demo @@ -29,9 +29,7 @@

Exclusive Content using the Exclusive Content Generator

-

- Example 1: Simple text -

+

Example 1: Simple text

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, @@ -68,9 +66,7 @@


-

- Example 2: HTML -

+

Example 2: HTML


 <h5>
   This is HTML
@@ -112,9 +108,7 @@ 

-

- Example 3: Multimedia Link -

+

Example 3: Multimedia Link


 <iframe 
   src="https://archive.org/embed/subprime-attention-crisis" 
@@ -151,87 +145,87 @@ 

diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/normalize.css b/public/interactive-examples/wm2-exclusive-content-demo-simulation/normalize.css index 4f3972c9..d9f54fd9 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/normalize.css +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/normalize.css @@ -6,7 +6,7 @@ * user zoom. */ - html { +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ @@ -331,8 +331,8 @@ input { * 2. Remove excess padding in IE 8/9/10. */ -input[type="checkbox"], -input[type="radio"] { +input[type='checkbox'], +input[type='radio'] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } @@ -343,8 +343,8 @@ input[type="radio"] { * decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { +input[type='number']::-webkit-inner-spin-button, +input[type='number']::-webkit-outer-spin-button { height: auto; } @@ -354,7 +354,7 @@ input[type="number"]::-webkit-outer-spin-button { * (include `-moz` to future-proof). */ -input[type="search"] { +input[type='search'] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ @@ -367,8 +367,8 @@ input[type="search"] { * padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-decoration { -webkit-appearance: none; } @@ -424,4 +424,4 @@ table { td, th { padding: 0; -} \ No newline at end of file +} diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/script.js b/public/interactive-examples/wm2-exclusive-content-demo-simulation/script.js index 8f42b540..17a32cff 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/script.js +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/script.js @@ -1,99 +1,99 @@ -const ec = document.getElementById("ec"); +const ec = document.getElementById('ec') const data = { - pp: ec.getAttribute("pointer"), - vr: ec.getAttribute("verifier"), - bi: "", - ct: document.getElementById("ecc").innerText.trim(), - iv: ec.getAttribute("iv") -}; -let decryption; + pp: ec.getAttribute('pointer'), + vr: ec.getAttribute('verifier'), + bi: '', + ct: document.getElementById('ecc').innerText.trim(), + iv: ec.getAttribute('iv'), +} +let decryption if (document.monetization !== undefined) { - setMeta(); + setMeta() - document.monetization.addEventListener("monetizationpending", event => { - document.getElementById("ecm").innerHTML = - "

⸻ ⏰ Waiting for Web Monetization to start to unlock this content. ⸻

"; - }); + document.monetization.addEventListener('monetizationpending', (event) => { + document.getElementById('ecm').innerHTML = + '

⸻ ⏰ Waiting for Web Monetization to start to unlock this content. ⸻

' + }) - document.monetization.addEventListener("monetizationstart", event => { - decryption = setInterval(function() { - decryptExclusiveContent(data); - }, 3000); - document.getElementById("ecm").innerHTML = - "

⸻ ⏰ Waiting for Web Monetization receipt verification to unlock this content. ⸻

"; - }); + document.monetization.addEventListener('monetizationstart', (event) => { + decryption = setInterval(function () { + decryptExclusiveContent(data) + }, 3000) + document.getElementById('ecm').innerHTML = + '

⸻ ⏰ Waiting for Web Monetization receipt verification to unlock this content. ⸻

' + }) - document.monetization.addEventListener("monetizationstop", event => { - removeContentDiv(); - document.getElementById("ecm").innerHTML = - "

⸻ 🔒 This content is exclusive for users with Web Monetization enabled. ⸻

"; - }); + document.monetization.addEventListener('monetizationstop', (event) => { + removeContentDiv() + document.getElementById('ecm').innerHTML = + '

⸻ 🔒 This content is exclusive for users with Web Monetization enabled. ⸻

' + }) - document.monetization.addEventListener("monetizationprogress", event => { + document.monetization.addEventListener('monetizationprogress', (event) => { if (data.bi !== event.detail.requestId) { - data["bi"] = event.detail.requestId; + data['bi'] = event.detail.requestId } - creditReceipt(data.vr, data.bi, event.detail.receipt); - }); + creditReceipt(data.vr, data.bi, event.detail.receipt) + }) } else { - document.getElementById("ecm").innerHTML = - "

⸻ 🔒 This content is exclusive for users with Web Monetization enabled. ⸻

"; + document.getElementById('ecm').innerHTML = + '

⸻ 🔒 This content is exclusive for users with Web Monetization enabled. ⸻

' } function setMeta() { - const meta = document.createElement("meta"); - meta.name = "monetization"; - meta.content = data.pp; - document.getElementsByTagName("head")[0].appendChild(meta); + const meta = document.createElement('meta') + meta.name = 'monetization' + meta.content = data.pp + document.getElementsByTagName('head')[0].appendChild(meta) } function creditReceipt(verifier, balanceId, receipt) { const endpoint = new URL( - verifier.endsWith("/") + verifier.endsWith('/') ? `${verifier}balances/${balanceId}:creditReceipt` - : `${verifier}/balances/${balanceId}:creditReceipt` - ); + : `${verifier}/balances/${balanceId}:creditReceipt`, + ) - fetch(endpoint.href, { method: "POST", body: receipt }).then(res => { + fetch(endpoint.href, { method: 'POST', body: receipt }).then((res) => { if (!res.ok) { - console.log(`Credit receipt error: ${res.status} ${res.statusText}`); + console.log(`Credit receipt error: ${res.status} ${res.statusText}`) } - }); + }) } function decryptExclusiveContent(data) { fetch( - "https://exclusive-content-generator.sabinebertram.workers.dev/decrypt", + 'https://exclusive-content-generator.sabinebertram.workers.dev/decrypt', { - method: "POST", + method: 'POST', headers: { - "Content-Type": "application/json" + 'Content-Type': 'application/json', }, - body: JSON.stringify(data) - } + body: JSON.stringify(data), + }, ) - .then(response => { - return response.json(); + .then((response) => { + return response.json() + }) + .then((data) => { + clearInterval(decryption) + addContentDiv(data.pt) }) - .then(data => { - clearInterval(decryption); - addContentDiv(data.pt); + .catch((error) => { + console.log('Error:', error) }) - .catch(error => { - console.log("Error:", error); - }); } function addContentDiv(content) { - const div = document.createElement("div"); - div.id = "ecp"; - div.innerHTML = content; - document.getElementById("ec").appendChild(div); - document.getElementById("ecm").innerHTML = - "

⸻ 🔓 Enjoy your exclusive content! ⸻

"; + const div = document.createElement('div') + div.id = 'ecp' + div.innerHTML = content + document.getElementById('ec').appendChild(div) + document.getElementById('ecm').innerHTML = + '

⸻ 🔓 Enjoy your exclusive content! ⸻

' } function removeContentDiv() { - document.getElementById("ecp").remove(); + document.getElementById('ecp').remove() } diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/skeleton.css b/public/interactive-examples/wm2-exclusive-content-demo-simulation/skeleton.css index f28bf6c5..352b4b26 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/skeleton.css +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/skeleton.css @@ -7,7 +7,6 @@ * 12/29/2014 */ - /* Table of contents –––––––––––––––––––––––––––––––––––––––––––––––––– - Grid @@ -25,7 +24,6 @@ - Media Queries */ - /* Grid –––––––––––––––––––––––––––––––––––––––––––––––––– */ .container { @@ -34,142 +32,250 @@ max-width: 960px; margin: 0 auto; padding: 0 20px; - box-sizing: border-box; } + box-sizing: border-box; +} .column, .columns { width: 100%; float: left; - box-sizing: border-box; } + box-sizing: border-box; +} /* For devices larger than 400px */ @media (min-width: 400px) { .container { width: 85%; - padding: 0; } + padding: 0; + } } /* For devices larger than 550px */ @media (min-width: 550px) { .container { - width: 80%; } + width: 80%; + } .column, .columns { - margin-left: 4%; } + margin-left: 4%; + } .column:first-child, .columns:first-child { - margin-left: 0; } + margin-left: 0; + } .one.column, - .one.columns { width: 4.66666666667%; } - .two.columns { width: 13.3333333333%; } - .three.columns { width: 22%; } - .four.columns { width: 30.6666666667%; } - .five.columns { width: 39.3333333333%; } - .six.columns { width: 48%; } - .seven.columns { width: 56.6666666667%; } - .eight.columns { width: 65.3333333333%; } - .nine.columns { width: 74.0%; } - .ten.columns { width: 82.6666666667%; } - .eleven.columns { width: 91.3333333333%; } - .twelve.columns { width: 100%; margin-left: 0; } - - .one-third.column { width: 30.6666666667%; } - .two-thirds.column { width: 65.3333333333%; } - - .one-half.column { width: 48%; } + .one.columns { + width: 4.66666666667%; + } + .two.columns { + width: 13.3333333333%; + } + .three.columns { + width: 22%; + } + .four.columns { + width: 30.6666666667%; + } + .five.columns { + width: 39.3333333333%; + } + .six.columns { + width: 48%; + } + .seven.columns { + width: 56.6666666667%; + } + .eight.columns { + width: 65.3333333333%; + } + .nine.columns { + width: 74%; + } + .ten.columns { + width: 82.6666666667%; + } + .eleven.columns { + width: 91.3333333333%; + } + .twelve.columns { + width: 100%; + margin-left: 0; + } + + .one-third.column { + width: 30.6666666667%; + } + .two-thirds.column { + width: 65.3333333333%; + } + + .one-half.column { + width: 48%; + } /* Offsets */ .offset-by-one.column, - .offset-by-one.columns { margin-left: 8.66666666667%; } + .offset-by-one.columns { + margin-left: 8.66666666667%; + } .offset-by-two.column, - .offset-by-two.columns { margin-left: 17.3333333333%; } + .offset-by-two.columns { + margin-left: 17.3333333333%; + } .offset-by-three.column, - .offset-by-three.columns { margin-left: 26%; } + .offset-by-three.columns { + margin-left: 26%; + } .offset-by-four.column, - .offset-by-four.columns { margin-left: 34.6666666667%; } + .offset-by-four.columns { + margin-left: 34.6666666667%; + } .offset-by-five.column, - .offset-by-five.columns { margin-left: 43.3333333333%; } + .offset-by-five.columns { + margin-left: 43.3333333333%; + } .offset-by-six.column, - .offset-by-six.columns { margin-left: 52%; } + .offset-by-six.columns { + margin-left: 52%; + } .offset-by-seven.column, - .offset-by-seven.columns { margin-left: 60.6666666667%; } + .offset-by-seven.columns { + margin-left: 60.6666666667%; + } .offset-by-eight.column, - .offset-by-eight.columns { margin-left: 69.3333333333%; } + .offset-by-eight.columns { + margin-left: 69.3333333333%; + } .offset-by-nine.column, - .offset-by-nine.columns { margin-left: 78.0%; } + .offset-by-nine.columns { + margin-left: 78%; + } .offset-by-ten.column, - .offset-by-ten.columns { margin-left: 86.6666666667%; } + .offset-by-ten.columns { + margin-left: 86.6666666667%; + } .offset-by-eleven.column, - .offset-by-eleven.columns { margin-left: 95.3333333333%; } + .offset-by-eleven.columns { + margin-left: 95.3333333333%; + } .offset-by-one-third.column, - .offset-by-one-third.columns { margin-left: 34.6666666667%; } + .offset-by-one-third.columns { + margin-left: 34.6666666667%; + } .offset-by-two-thirds.column, - .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } + .offset-by-two-thirds.columns { + margin-left: 69.3333333333%; + } .offset-by-one-half.column, - .offset-by-one-half.columns { margin-left: 52%; } - + .offset-by-one-half.columns { + margin-left: 52%; + } } - /* Base Styles –––––––––––––––––––––––––––––––––––––––––––––––––– */ /* NOTE html is set to 62.5% so that all the REM measurements throughout Skeleton are based on 10px sizing. So basically 1.5rem = 15px :) */ html { - font-size: 62.5%; } + font-size: 62.5%; +} body { font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ line-height: 1.6; font-weight: 400; - font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #222; } - + font-family: + 'Raleway', 'HelveticaNeue', 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: #222; +} /* Typography –––––––––––––––––––––––––––––––––––––––––––––––––– */ -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { margin-top: 0; margin-bottom: 2rem; - font-weight: 300; } -h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} -h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } -h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } -h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } -h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } -h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } + font-weight: 300; +} +h1 { + font-size: 4rem; + line-height: 1.2; + letter-spacing: -0.1rem; +} +h2 { + font-size: 3.6rem; + line-height: 1.25; + letter-spacing: -0.1rem; +} +h3 { + font-size: 3rem; + line-height: 1.3; + letter-spacing: -0.1rem; +} +h4 { + font-size: 2.4rem; + line-height: 1.35; + letter-spacing: -0.08rem; +} +h5 { + font-size: 1.8rem; + line-height: 1.5; + letter-spacing: -0.05rem; +} +h6 { + font-size: 1.5rem; + line-height: 1.6; + letter-spacing: 0; +} /* Larger than phablet */ @media (min-width: 550px) { - h1 { font-size: 5.0rem; } - h2 { font-size: 4.2rem; } - h3 { font-size: 3.6rem; } - h4 { font-size: 3.0rem; } - h5 { font-size: 2.4rem; } - h6 { font-size: 1.5rem; } + h1 { + font-size: 5rem; + } + h2 { + font-size: 4.2rem; + } + h3 { + font-size: 3.6rem; + } + h4 { + font-size: 3rem; + } + h5 { + font-size: 2.4rem; + } + h6 { + font-size: 1.5rem; + } } p { - margin-top: 0; } - + margin-top: 0; +} /* Links –––––––––––––––––––––––––––––––––––––––––––––––––– */ a { - color: #1EAEDB; } + color: #1eaedb; +} a:hover { - color: #0FA0CE; } - + color: #0fa0ce; +} /* Buttons –––––––––––––––––––––––––––––––––––––––––––––––––– */ .button, button, -input[type="submit"], -input[type="reset"], -input[type="button"] { +input[type='submit'], +input[type='reset'], +input[type='button'] { display: inline-block; height: 38px; padding: 0 30px; @@ -178,7 +284,7 @@ input[type="button"] { font-size: 11px; font-weight: 600; line-height: 38px; - letter-spacing: .1rem; + letter-spacing: 0.1rem; text-transform: uppercase; text-decoration: none; white-space: nowrap; @@ -186,139 +292,155 @@ input[type="button"] { border-radius: 4px; border: 1px solid #bbb; cursor: pointer; - box-sizing: border-box; } + box-sizing: border-box; +} .button:hover, button:hover, -input[type="submit"]:hover, -input[type="reset"]:hover, -input[type="button"]:hover, +input[type='submit']:hover, +input[type='reset']:hover, +input[type='button']:hover, .button:focus, button:focus, -input[type="submit"]:focus, -input[type="reset"]:focus, -input[type="button"]:focus { +input[type='submit']:focus, +input[type='reset']:focus, +input[type='button']:focus { color: #333; border-color: #888; - outline: 0; } + outline: 0; +} .button.button-primary, button.button-primary, -input[type="submit"].button-primary, -input[type="reset"].button-primary, -input[type="button"].button-primary { - color: #FFF; - background-color: #33C3F0; - border-color: #33C3F0; } +input[type='submit'].button-primary, +input[type='reset'].button-primary, +input[type='button'].button-primary { + color: #fff; + background-color: #33c3f0; + border-color: #33c3f0; +} .button.button-primary:hover, button.button-primary:hover, -input[type="submit"].button-primary:hover, -input[type="reset"].button-primary:hover, -input[type="button"].button-primary:hover, +input[type='submit'].button-primary:hover, +input[type='reset'].button-primary:hover, +input[type='button'].button-primary:hover, .button.button-primary:focus, button.button-primary:focus, -input[type="submit"].button-primary:focus, -input[type="reset"].button-primary:focus, -input[type="button"].button-primary:focus { - color: #FFF; - background-color: #1EAEDB; - border-color: #1EAEDB; } - +input[type='submit'].button-primary:focus, +input[type='reset'].button-primary:focus, +input[type='button'].button-primary:focus { + color: #fff; + background-color: #1eaedb; + border-color: #1eaedb; +} /* Forms –––––––––––––––––––––––––––––––––––––––––––––––––– */ -input[type="email"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], +input[type='email'], +input[type='number'], +input[type='search'], +input[type='text'], +input[type='tel'], +input[type='url'], +input[type='password'], textarea, select { height: 38px; padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ background-color: #fff; - border: 1px solid #D1D1D1; + border: 1px solid #d1d1d1; border-radius: 4px; box-shadow: none; - box-sizing: border-box; } + box-sizing: border-box; +} /* Removes awkward default styles on some inputs for iOS */ -input[type="email"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], +input[type='email'], +input[type='number'], +input[type='search'], +input[type='text'], +input[type='tel'], +input[type='url'], +input[type='password'], textarea { -webkit-appearance: none; - -moz-appearance: none; - appearance: none; } + -moz-appearance: none; + appearance: none; +} textarea { min-height: 65px; padding-top: 6px; - padding-bottom: 6px; } -input[type="email"]:focus, -input[type="number"]:focus, -input[type="search"]:focus, -input[type="text"]:focus, -input[type="tel"]:focus, -input[type="url"]:focus, -input[type="password"]:focus, + padding-bottom: 6px; +} +input[type='email']:focus, +input[type='number']:focus, +input[type='search']:focus, +input[type='text']:focus, +input[type='tel']:focus, +input[type='url']:focus, +input[type='password']:focus, textarea:focus, select:focus { - border: 1px solid #33C3F0; - outline: 0; } + border: 1px solid #33c3f0; + outline: 0; +} label, legend { display: block; - margin-bottom: .5rem; - font-weight: 600; } + margin-bottom: 0.5rem; + font-weight: 600; +} fieldset { padding: 0; - border-width: 0; } -input[type="checkbox"], -input[type="radio"] { - display: inline; } + border-width: 0; +} +input[type='checkbox'], +input[type='radio'] { + display: inline; +} label > .label-body { display: inline-block; - margin-left: .5rem; - font-weight: normal; } - + margin-left: 0.5rem; + font-weight: normal; +} /* Lists –––––––––––––––––––––––––––––––––––––––––––––––––– */ ul { - list-style: circle inside; } + list-style: circle inside; +} ol { - list-style: decimal inside; } -ol, ul { + list-style: decimal inside; +} +ol, +ul { padding-left: 0; - margin-top: 0; } + margin-top: 0; +} ul ul, ul ol, ol ol, ol ul { margin: 1.5rem 0 1.5rem 3rem; - font-size: 90%; } + font-size: 90%; +} li { - margin-bottom: 1rem; } - + margin-bottom: 1rem; +} /* Code –––––––––––––––––––––––––––––––––––––––––––––––––– */ code { - padding: .2rem .5rem; - margin: 0 .2rem; + padding: 0.2rem 0.5rem; + margin: 0 0.2rem; font-size: 90%; white-space: nowrap; - background: #F1F1F1; - border: 1px solid #E1E1E1; - border-radius: 4px; } + background: #f1f1f1; + border: 1px solid #e1e1e1; + border-radius: 4px; +} pre > code { display: block; padding: 1rem 1.5rem; - white-space: pre; } - + white-space: pre; +} /* Tables –––––––––––––––––––––––––––––––––––––––––––––––––– */ @@ -326,25 +448,29 @@ th, td { padding: 12px 15px; text-align: left; - border-bottom: 1px solid #E1E1E1; } + border-bottom: 1px solid #e1e1e1; +} th:first-child, td:first-child { - padding-left: 0; } + padding-left: 0; +} th:last-child, td:last-child { - padding-right: 0; } - + padding-right: 0; +} /* Spacing –––––––––––––––––––––––––––––––––––––––––––––––––– */ button, .button { - margin-bottom: 1rem; } + margin-bottom: 1rem; +} input, textarea, select, fieldset { - margin-bottom: 1.5rem; } + margin-bottom: 1.5rem; +} pre, blockquote, dl, @@ -354,22 +480,25 @@ p, ul, ol, form { - margin-bottom: 2.5rem; } - + margin-bottom: 2.5rem; +} /* Utilities –––––––––––––––––––––––––––––––––––––––––––––––––– */ .u-full-width { width: 100%; - box-sizing: border-box; } + box-sizing: border-box; +} .u-max-full-width { max-width: 100%; - box-sizing: border-box; } + box-sizing: border-box; +} .u-pull-right { - float: right; } + float: right; +} .u-pull-left { - float: left; } - + float: left; +} /* Misc –––––––––––––––––––––––––––––––––––––––––––––––––– */ @@ -377,8 +506,8 @@ hr { margin-top: 3rem; margin-bottom: 3.5rem; border-width: 0; - border-top: 1px solid #E1E1E1; } - + border-top: 1px solid #e1e1e1; +} /* Clearing –––––––––––––––––––––––––––––––––––––––––––––––––– */ @@ -387,10 +516,10 @@ hr { .container:after, .row:after, .u-cf { - content: ""; + content: ''; display: table; - clear: both; } - + clear: both; +} /* Media Queries –––––––––––––––––––––––––––––––––––––––––––––––––– */ @@ -401,18 +530,22 @@ on small devices, paste the mobile query code up in the buttons section and styl there. */ - /* Larger than mobile */ -@media (min-width: 400px) {} +@media (min-width: 400px) { +} /* Larger than phablet (also point when grid becomes active) */ -@media (min-width: 550px) {} +@media (min-width: 550px) { +} /* Larger than tablet */ -@media (min-width: 750px) {} +@media (min-width: 750px) { +} /* Larger than desktop */ -@media (min-width: 1000px) {} +@media (min-width: 1000px) { +} /* Larger than Desktop HD */ -@media (min-width: 1200px) {} +@media (min-width: 1200px) { +} diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/style.css b/public/interactive-examples/wm2-exclusive-content-demo-simulation/style.css index e1ad49d1..329ae3cf 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/style.css +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/style.css @@ -1,9 +1,12 @@ -h1, h2, h3 { +h1, +h2, +h3 { text-align: center; } -img, video { - max-width: 100% +img, +video { + max-width: 100%; } footer { @@ -12,7 +15,7 @@ footer { background-color: rgb(232, 232, 232); /* position:absolute; bottom:0; */ - width:100%; + width: 100%; height: 50px; } @@ -27,4 +30,4 @@ footer { border-color: tomato; border-radius: 10px; background-color: rgb(246, 205, 201); -} \ No newline at end of file +} diff --git a/public/interactive-examples/wm2-exclusive-content-demo-simulation/wm-previewer.js b/public/interactive-examples/wm2-exclusive-content-demo-simulation/wm-previewer.js index 7aa0d1cb..8bc0b94c 100644 --- a/public/interactive-examples/wm2-exclusive-content-demo-simulation/wm-previewer.js +++ b/public/interactive-examples/wm2-exclusive-content-demo-simulation/wm-previewer.js @@ -1,206 +1,206 @@ function getWmTag() { - return document.head.querySelector('meta[name="monetization"]'); + return document.head.querySelector('meta[name="monetization"]') } function uuid() { // TODO: make the uuid random - return "fc23b14d-70e4-4d55-b0a0-dd86f70ce402"; + return 'fc23b14d-70e4-4d55-b0a0-dd86f70ce402' } function wmStateTransition() { - const wmTag = getWmTag(); - const state = document.monetization.state; + const wmTag = getWmTag() + const state = document.monetization.state if (wmTag) { - if (state === "stopped") { - startWm(); + if (state === 'stopped') { + startWm() } } } function observeWm() { - const headObserver = new MutationObserver(mutations => { - const wmTag = getWmTag(); - const state = document.monetization.state; + const headObserver = new MutationObserver((mutations) => { + const wmTag = getWmTag() + const state = document.monetization.state - if (!wmTag && state === "started") stopWm(); - if (wmTag && state === "stopped") { - pendingWm(); + if (!wmTag && state === 'started') stopWm() + if (wmTag && state === 'stopped') { + pendingWm() // TODO: observe wmTag for attribute changes? } - }); + }) - headObserver.observe(document.head, { childList: true }); + headObserver.observe(document.head, { childList: true }) } function initWm() { - document.monetization = document.createElement("div"); - document.monetization.state = "stopped"; + document.monetization = document.createElement('div') + document.monetization.state = 'stopped' - observeWm(); + observeWm() if (getWmTag()) { - pendingWm(); + pendingWm() } } function pendingWm() { - document.monetization._requestId = uuid(); - emitWm("pending", "pending"); - document.monetization._startWmTimer = setTimeout(startWm, 700); + document.monetization._requestId = uuid() + emitWm('pending', 'pending') + document.monetization._startWmTimer = setTimeout(startWm, 700) } function startWm() { - emitWm("start", "started"); - startWmIcon(); - progressWm(); - document.monetization._wmProgressInterval = setInterval(progressWm, 1000); + emitWm('start', 'started') + startWmIcon() + progressWm() + document.monetization._wmProgressInterval = setInterval(progressWm, 1000) } function emitWm(name, state) { - const wmTag = getWmTag(); + const wmTag = getWmTag() if (!wmTag) { - throw new Error("cannot emit " + name + " w/o meta tag"); + throw new Error('cannot emit ' + name + ' w/o meta tag') } - document.monetization._wmTag = wmTag; - document.monetization.state = state; + document.monetization._wmTag = wmTag + document.monetization.state = state document.monetization.dispatchEvent( - new CustomEvent("monetization" + name, { + new CustomEvent('monetization' + name, { detail: { requestId: document.monetization._requestId, - paymentPointer: wmTag.content - } - }) - ); + paymentPointer: wmTag.content, + }, + }), + ) } function progressWm() { - const wmTag = document.monetization._wmTag; + const wmTag = document.monetization._wmTag if (!wmTag) { - throw new Error("cannot emit progress w/o meta tag"); + throw new Error('cannot emit progress w/o meta tag') } document.monetization.dispatchEvent( - new CustomEvent("monetizationprogress", { + new CustomEvent('monetizationprogress', { detail: { requestId: document.monetization._requestId, paymentPointer: wmTag.content, amount: String(Math.floor(50000 + Math.random() * 100000)), - assetCode: "USD", - assetScale: 9 - } - }) - ); + assetCode: 'USD', + assetScale: 9, + }, + }), + ) } function stopWm() { - const wmTag = document.monetization._wmTag; + const wmTag = document.monetization._wmTag if (!wmTag) { - throw new Error("cannot emit stop w/o meta tag"); + throw new Error('cannot emit stop w/o meta tag') } - stopWmIcon(); + stopWmIcon() if (document.monetization._startWmTimer) { - clearTimeout(document.monetization._startWmTimer); + clearTimeout(document.monetization._startWmTimer) } if (document.monetization._wmProgressInterval) { - clearTimeout(document.monetization._wmProgressInterval); + clearTimeout(document.monetization._wmProgressInterval) } - document.monetization.state = "stopped"; + document.monetization.state = 'stopped' document.monetization.dispatchEvent( - new CustomEvent("monetizationstop", { + new CustomEvent('monetizationstop', { detail: { requestId: document.monetization._requestId, paymentPointer: wmTag.content, - finalized: true - } - }) - ); + finalized: true, + }, + }), + ) } function isWm() { - const pageUrl = new URL(window.location); - return pageUrl.searchParams.get("wm") === "true"; + const pageUrl = new URL(window.location) + return pageUrl.searchParams.get('wm') === 'true' } function createWmWidget() { - const div = document.createElement("div"); - div.style.position = "fixed"; - div.style.right = "0px"; - div.style.bottom = "0px"; - div.style.padding = "20px"; - - const pageUrl = new URL(window.location); - const isWm = pageUrl.searchParams.get("wm") === "true"; - - const buttonDiv = document.createElement("a"); - buttonDiv.style.display = "block"; - buttonDiv.style.cursor = "pointer"; - buttonDiv.style.fontFamily = "sans-serif"; - buttonDiv.style.borderRadius = "5px"; - buttonDiv.style.backgroundColor = "black"; - buttonDiv.style.color = "white"; - buttonDiv.style.lineHeight = "30px"; - buttonDiv.style.paddingTop = "3px"; - buttonDiv.style.paddingLeft = "10px"; - buttonDiv.style.paddingRight = "10px"; + const div = document.createElement('div') + div.style.position = 'fixed' + div.style.right = '0px' + div.style.bottom = '0px' + div.style.padding = '20px' + + const pageUrl = new URL(window.location) + const isWm = pageUrl.searchParams.get('wm') === 'true' + + const buttonDiv = document.createElement('a') + buttonDiv.style.display = 'block' + buttonDiv.style.cursor = 'pointer' + buttonDiv.style.fontFamily = 'sans-serif' + buttonDiv.style.borderRadius = '5px' + buttonDiv.style.backgroundColor = 'black' + buttonDiv.style.color = 'white' + buttonDiv.style.lineHeight = '30px' + buttonDiv.style.paddingTop = '3px' + buttonDiv.style.paddingLeft = '10px' + buttonDiv.style.paddingRight = '10px' buttonDiv.innerText = isWm - ? "View as non-Web Monetized visitor" - : "View as Web Monetized visitor"; + ? 'View as non-Web Monetized visitor' + : 'View as Web Monetized visitor' - div.appendChild(buttonDiv); - buttonDiv.addEventListener("click", () => { - pageUrl.searchParams.set("wm", isWm ? "false" : "true"); - window.location = pageUrl.href; - }); + div.appendChild(buttonDiv) + buttonDiv.addEventListener('click', () => { + pageUrl.searchParams.set('wm', isWm ? 'false' : 'true') + window.location = pageUrl.href + }) - window.addEventListener("load", () => { - document.body.appendChild(div); - }); + window.addEventListener('load', () => { + document.body.appendChild(div) + }) } -const STOPPED_ICON_SRC = "/img/wm-icon.svg"; -const STARTED_ICON_SRC = "/img/wm-icon-animated.svg"; +const STOPPED_ICON_SRC = '/img/wm-icon.svg' +const STARTED_ICON_SRC = '/img/wm-icon-animated.svg' function addWmIcon() { - const img = document.createElement("img"); - img.src = STOPPED_ICON_SRC; - img.style.position = "fixed"; - img.style.right = "20px"; - img.style.bottom = "70px"; - img.style.width = "40px"; - img.style.height = "40px"; - img.id = "wm-icon"; + const img = document.createElement('img') + img.src = STOPPED_ICON_SRC + img.style.position = 'fixed' + img.style.right = '20px' + img.style.bottom = '70px' + img.style.width = '40px' + img.style.height = '40px' + img.id = 'wm-icon' - window.addEventListener("load", () => { - document.body.appendChild(img); - }); + window.addEventListener('load', () => { + document.body.appendChild(img) + }) } function stopWmIcon() { - document.getElementById("wm-icon").src = STOPPED_ICON_SRC; + document.getElementById('wm-icon').src = STOPPED_ICON_SRC } function startWmIcon() { - document.getElementById("wm-icon").src = STARTED_ICON_SRC; + document.getElementById('wm-icon').src = STARTED_ICON_SRC } function start() { // This is just for embedded demos if (window === window.top) { - return; + return } - createWmWidget(); + createWmWidget() if (isWm()) { - addWmIcon(); - console.log("creating web monetization"); - initWm(); + addWmIcon() + console.log('creating web monetization') + initWm() } else { - delete document.monetization; + delete document.monetization } } -start(); +start() diff --git a/public/interactive-examples/wm2-exclusive-content-simple/README.md b/public/interactive-examples/wm2-exclusive-content-simple/README.md index a37fa288..3a8ad818 100644 --- a/public/interactive-examples/wm2-exclusive-content-simple/README.md +++ b/public/interactive-examples/wm2-exclusive-content-simple/README.md @@ -8,7 +8,7 @@ This is a simple example for showing exclusive content to web monetized visitors Web Monetization is an easier way for site visitors to financially contribute to creators. -Site visitors and creators must both have an account with a Web Monetization-compatible digital wallet. +Site visitors and creators must both have an account with a Web Monetization-compatible digital wallet. By adding a single line of code to their pages, creators can receive payments from web monetized site visitors. @@ -20,9 +20,9 @@ Only the web monetized site visitors can choose when and how much to pay. A page ## ← index.html -Contains a monetization `` element, a `hidden` style, references to two JS files, and the content for the example web page. +Contains a monetization `` element, a `hidden` style, references to two JS files, and the content for the example web page. -The monetization `` element contains a wallet address as the `href` value. The wallet address is provided by a Web Monetization-compatible digital wallet. +The monetization `` element contains a wallet address as the `href` value. The wallet address is provided by a Web Monetization-compatible digital wallet. ## ← exclusive-content-simple.js diff --git a/public/interactive-examples/wm2-exclusive-content-simple/exclusive-content-simple.js b/public/interactive-examples/wm2-exclusive-content-simple/exclusive-content-simple.js index db7baacd..8ce756ed 100644 --- a/public/interactive-examples/wm2-exclusive-content-simple/exclusive-content-simple.js +++ b/public/interactive-examples/wm2-exclusive-content-simple/exclusive-content-simple.js @@ -1,6 +1,6 @@ if (window.MonetizationEvent) { - const link = document.querySelector('link[rel="monetization"]'); - link.addEventListener("monetization", (ev) => { - document.getElementById("exclusive").classList.remove("hidden"); - }); + const link = document.querySelector('link[rel="monetization"]') + link.addEventListener('monetization', (ev) => { + document.getElementById('exclusive').classList.remove('hidden') + }) } diff --git a/public/interactive-examples/wm2-exclusive-content-simple/wm-previewer.js b/public/interactive-examples/wm2-exclusive-content-simple/wm-previewer.js index 39866ae6..5f4506f3 100644 --- a/public/interactive-examples/wm2-exclusive-content-simple/wm-previewer.js +++ b/public/interactive-examples/wm2-exclusive-content-simple/wm-previewer.js @@ -1,105 +1,105 @@ function getWmTag() { - return document.querySelector('link[rel="monetization"]'); + return document.querySelector('link[rel="monetization"]') } function uuid() { - return "e8953856-d95f-4dc8-a1ba-acaf0e7984e2"; + return 'e8953856-d95f-4dc8-a1ba-acaf0e7984e2' } function emitWm() { - const wmTag = getWmTag(); + const wmTag = getWmTag() if (!wmTag) { - throw new Error("cannot emit monetization event without link tag"); + throw new Error('cannot emit monetization event without link tag') } - const paymentPointer = wmTag.href; + const paymentPointer = wmTag.href - const wmEvent = new Event("monetization"); - wmEvent.paymentPointer = paymentPointer; + const wmEvent = new Event('monetization') + wmEvent.paymentPointer = paymentPointer wmEvent.amountSent = { - currency: "USD", + currency: 'USD', value: (Math.random() * 0.00001).toFixed(9).toString(), - }; - (wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`), - wmTag.dispatchEvent(wmEvent); + } + ;((wmEvent.incomingPayment = `${paymentPointer}incoming-payments/${uuid()}`), + wmTag.dispatchEvent(wmEvent)) } function isWm() { - const pageUrl = new URL(window.location); - return pageUrl.searchParams.get("wm") === "true"; + const pageUrl = new URL(window.location) + return pageUrl.searchParams.get('wm') === 'true' } function createWmWidget() { - const div = document.createElement("div"); - div.style.position = "fixed"; - div.style.right = "0px"; - div.style.bottom = "0px"; - div.style.padding = "20px"; - - const pageUrl = new URL(window.location); - const isWm = pageUrl.searchParams.get("wm") === "true"; - - const buttonDiv = document.createElement("a"); - buttonDiv.style.display = "block"; - buttonDiv.style.cursor = "pointer"; - buttonDiv.style.fontFamily = "sans-serif"; - buttonDiv.style.borderRadius = "5px"; - buttonDiv.style.backgroundColor = "black"; - buttonDiv.style.color = "white"; - buttonDiv.style.lineHeight = "30px"; - buttonDiv.style.paddingTop = "3px"; - buttonDiv.style.paddingLeft = "10px"; - buttonDiv.style.paddingRight = "10px"; + const div = document.createElement('div') + div.style.position = 'fixed' + div.style.right = '0px' + div.style.bottom = '0px' + div.style.padding = '20px' + + const pageUrl = new URL(window.location) + const isWm = pageUrl.searchParams.get('wm') === 'true' + + const buttonDiv = document.createElement('a') + buttonDiv.style.display = 'block' + buttonDiv.style.cursor = 'pointer' + buttonDiv.style.fontFamily = 'sans-serif' + buttonDiv.style.borderRadius = '5px' + buttonDiv.style.backgroundColor = 'black' + buttonDiv.style.color = 'white' + buttonDiv.style.lineHeight = '30px' + buttonDiv.style.paddingTop = '3px' + buttonDiv.style.paddingLeft = '10px' + buttonDiv.style.paddingRight = '10px' buttonDiv.innerText = isWm - ? "View as non-web monetized visitor" - : "View as web monetized visitor"; + ? 'View as non-web monetized visitor' + : 'View as web monetized visitor' - div.appendChild(buttonDiv); - buttonDiv.addEventListener("click", () => { - pageUrl.searchParams.set("wm", isWm ? "false" : "true"); - window.location = pageUrl.href; - }); + div.appendChild(buttonDiv) + buttonDiv.addEventListener('click', () => { + pageUrl.searchParams.set('wm', isWm ? 'false' : 'true') + window.location = pageUrl.href + }) - return div; + return div } -const STOPPED_ICON_SRC = "/img/wm-icon.svg"; -const STARTED_ICON_SRC = "/img/wm-icon-animated.svg"; +const STOPPED_ICON_SRC = '/img/wm-icon.svg' +const STARTED_ICON_SRC = '/img/wm-icon-animated.svg' function createWmIcon() { - const img = document.createElement("img"); - img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC; - img.style.position = "fixed"; - img.style.right = "20px"; - img.style.bottom = "70px"; - img.style.width = "40px"; - img.style.height = "40px"; - img.id = "wm-icon"; - - return img; + const img = document.createElement('img') + img.src = isWm() ? STARTED_ICON_SRC : STOPPED_ICON_SRC + img.style.position = 'fixed' + img.style.right = '20px' + img.style.bottom = '70px' + img.style.width = '40px' + img.style.height = '40px' + img.id = 'wm-icon' + + return img } function start() { // This is just for embedded demos if (window === window.top) { - return; + return } - window.MonetizationEvent = {}; // define MonetizationEvent + window.MonetizationEvent = {} // define MonetizationEvent - const wmWidget = createWmWidget(); - const icon = createWmIcon(); + const wmWidget = createWmWidget() + const icon = createWmIcon() - window.addEventListener("load", (event) => { - document.body.appendChild(wmWidget); - document.body.appendChild(icon); - }); + window.addEventListener('load', (event) => { + document.body.appendChild(wmWidget) + document.body.appendChild(icon) + }) if (isWm()) { - window.addEventListener("load", (event) => { - emitWm(); - }); + window.addEventListener('load', (event) => { + emitWm() + }) } } -start(); +start() diff --git a/public/interactive-examples/wm2-probablistic-revenue-share/README.md b/public/interactive-examples/wm2-probablistic-revenue-share/README.md index 4a83f3eb..0ac661bc 100644 --- a/public/interactive-examples/wm2-probablistic-revenue-share/README.md +++ b/public/interactive-examples/wm2-probablistic-revenue-share/README.md @@ -1,12 +1,12 @@ # Set up probabilistic revenue sharing -Each monetization `` element only supports a single wallet address as the `href` value. +Each monetization `` element only supports a single wallet address as the `href` value. You can add multiple monetization links to your page, but there's no guarantee that your site visitor's Web Monetization extension can support paying to multiple addresses at once. As an alternative to adding multiple links, you can set up probablistic revenue sharing. -In this example, you'll enter the number of times that you want one of the wallet addresses to be chosen at random. The default is 10,000 which equals 10,000 page loads by web monetized visitors. The chance of an address being chosen is based on its assigned weight. +In this example, you'll enter the number of times that you want one of the wallet addresses to be chosen at random. The default is 10,000 which equals 10,000 page loads by web monetized visitors. The chance of an address being chosen is based on its assigned weight. Alice's address has a weight of 50 out of 100 (defined in the `script.js` file). This means her address has a 50% chance of being chosen. Alice's share of the page's total revenue will approach 50% as more web monetized visitors access the page. @@ -26,11 +26,11 @@ Only the web monetized site visitors can choose when and how much to pay. A page ## ← index.html -Unlike our other Web Monetization examples, this index file doesn't contain a monetization `` element. The wallet addresses are instead contained within the `script.js` file. +Unlike our other Web Monetization examples, this index file doesn't contain a monetization `` element. The wallet addresses are instead contained within the `script.js` file. ## ← script.js -Allocates weights to the four wallet addresses contained within the file. The `pickPointer` function chooses one at random, based on their respective weights (also defined in this file). +Allocates weights to the four wallet addresses contained within the file. The `pickPointer` function chooses one at random, based on their respective weights (also defined in this file). The `simulate` function outputs the result based on the number of attempts entered in the Simulate field on the web page. diff --git a/public/interactive-examples/wm2-probablistic-revenue-share/index.html b/public/interactive-examples/wm2-probablistic-revenue-share/index.html index 5dc74671..ec76e27f 100644 --- a/public/interactive-examples/wm2-probablistic-revenue-share/index.html +++ b/public/interactive-examples/wm2-probablistic-revenue-share/index.html @@ -1,4 +1,4 @@ - + Probabilistic Revenue Sharing Simulation @@ -9,18 +9,12 @@ - - Wallet addresses receiving a share of revenue - + Wallet addresses receiving a share of revenue

-    
-      Amount of revenue received
-    
+     Amount of revenue received 
     

     

Number of times to choose a random wallet address

- + diff --git a/public/interactive-examples/wm2-probablistic-revenue-share/script.js b/public/interactive-examples/wm2-probablistic-revenue-share/script.js index b8fa8700..27108c5f 100644 --- a/public/interactive-examples/wm2-probablistic-revenue-share/script.js +++ b/public/interactive-examples/wm2-probablistic-revenue-share/script.js @@ -4,13 +4,13 @@ const pointers = { 'https://wallet.example.com/alice': 50, 'https://wallet.example.com/bob': 40, 'https://wallet.example.com/connie': 9.5, - 'https://wallet.example.com/dave': 0.5 + 'https://wallet.example.com/dave': 0.5, } -function pickPointer () { +function pickPointer() { const sum = Object.values(pointers).reduce((sum, weight) => sum + weight, 0) let choice = Math.random() * sum - + for (const pointer in pointers) { const weight = pointers[pointer] if ((choice -= weight) <= 0) { @@ -19,24 +19,22 @@ function pickPointer () { } } -function simulate () { +function simulate() { const iterations = Number(document.getElementById('iterations').value) const results = {} - + for (let i = 0; i < iterations; ++i) { const pointer = pickPointer() - results[pointer] = results[pointer] - ? results[pointer] + 1 - : 1 + results[pointer] = results[pointer] ? results[pointer] + 1 : 1 } - + const resultsElement = document.getElementById('results') resultsElement.innerText = JSON.stringify(results, null, 2) } window.addEventListener('load', () => { simulate() - + const revshareElement = document.getElementById('revshare') revshareElement.innerText = JSON.stringify(pointers, null, 2) const monetizationTag = document.createElement('link') @@ -44,4 +42,4 @@ window.addEventListener('load', () => { monetizationTag.href = pickPointer() document.head.appendChild(monetizationTag) -}) \ No newline at end of file +}) diff --git a/src/content/docs/developers/about-receiving.mdx b/src/content/docs/developers/about-receiving.mdx index 9167a676..5f35fdf6 100644 --- a/src/content/docs/developers/about-receiving.mdx +++ b/src/content/docs/developers/about-receiving.mdx @@ -45,7 +45,7 @@ Web Monetization supports two types of payments: - Continuous payments are typically ongoing micropayments sent automatically as users engage with your web monetized content over time. - One-time payments are single payments made by users to express their gratitude or support. -::: + ::: In general, a micropayment is a very small payment. Each wallet provider is responsible for a few things: @@ -104,37 +104,17 @@ The examples below are simplified representations of the Open Payments API calls } ``` -4. The agent issues a request to your wallet provider's `authServer` URL. The request contains the access permissions the agent is requesting. + +4. The agent issues a request to your wallet provider's `authServer` URL. The request contains the access permissions the agent is requesting. - ```http - POST /auth/ HTTP/1.1 - Accept: application/json - Content-Type: application/json - Host: wallet.example - { - "access_token": { - "access": [ - { - "type": "incoming-payment", - "actions": ["create", "read"], - "identifier": "https://wallet.example/alice" - } - ] - }, - "client": "https://cloudninewallet.example/visitor" - } - ``` - :::note - The `client` in the request above is your visitor's wallet address. This URL is only used by the agent and the wallets, and isn't available to the website. - ::: - -5. The response to the agent contains an access token that the agent needs to make its next request. - - ```http wrap - { - "access_token": { - "value": "OS9M2PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0", - "manage": "https://wallet.example/auth/token/dd17a202-9982-4ed9-ae31-564947fb6379", + +```http +POST /auth/ HTTP/1.1 +Accept: application/json +Content-Type: application/json +Host: wallet.example +{ + "access_token": { "access": [ { "type": "incoming-payment", @@ -142,73 +122,97 @@ The examples below are simplified representations of the Open Payments API calls "identifier": "https://wallet.example/alice" } ] + }, + "client": "https://cloudninewallet.example/visitor" +} +``` + +:::note +The `client` in the request above is your visitor's wallet address. This URL is only used by the agent and the wallets, and isn't available to the website. +::: + + +5. The response to the agent contains an access token that the agent needs to make its next request. + +```http wrap +{ + "access_token": { + "value": "OS9M2PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0", + "manage": "https://wallet.example/auth/token/dd17a202-9982-4ed9-ae31-564947fb6379", + "access": [ + { + "type": "incoming-payment", + "actions": ["create", "read"], + "identifier": "https://wallet.example/alice" } + ] } - ``` - -6. The agent issues a request to your wallet provider's `resourceServer` URL. The purpose of this call is to request the information needed by your visitor's wallet provider so their provider correctly addresses the payment to you. +} +``` + +6. The agent issues a request to your wallet provider's `resourceServer` URL. The purpose of this call is to request the information needed by your visitor's wallet provider so their provider correctly addresses the payment to you. - ```http wrap - POST /alice/incoming-payments HTTP/1.1 Accept: application/json - Content-Type: application/json Authorization: OS9M2PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0 Host: wallet.example - ``` + ```http wrap POST /alice/incoming-payments HTTP/1.1 Accept: + application/json Content-Type: application/json Authorization: + OS9M2PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0 Host: wallet.example ``` -7. The response to the agent contains unique payment details that will be used to address the payment to your payment account. +7. The response to the agent contains unique payment details that will be used to address the payment to your payment account. - ```http wrap - { - "id": "https://wallet.example/alice/incoming-payments/08394f02-7b7b-45e2-b645-51d04e7c330c", - "walletAddress": "https://wallet.example/alice", - "receivedAmount": { - "value": "0", - "assetCode": "USD", - "assetScale": 2 - }, - "completed": false, - "createdAt": "2022-03-12T23:20:50.52Z" - } - ``` - -8. At this point, the agent has finished communicating with your wallet provider. Now, the agent issues a request to your visitor's wallet provider. The purpose of this call is to give your visitor's wallet provider what it needs to send the payment. - - ```http wrap - POST /visitor/outgoing-payment HTTP/1.1 - Accept: application/json - Content-Type: application/json - Authorization: {{ GNAP outgoingPaymentGrant.accessToken.value }} - Host: cloudninewallet.example - { +```http wrap +{ + "id": "https://wallet.example/alice/incoming-payments/08394f02-7b7b-45e2-b645-51d04e7c330c", "walletAddress": "https://wallet.example/alice", - "quoteId": "https://wallet.example/quotes/ab03296b-0c8b-4776-b94e-7ee27d868d4d", - } - ``` - + "receivedAmount": { + "value": "0", + "assetCode": "USD", + "assetScale": 2 + }, + "completed": false, + "createdAt": "2022-03-12T23:20:50.52Z" +} +``` + +8. At this point, the agent has finished communicating with your wallet provider. Now, the agent issues a request to your visitor's wallet provider. The purpose of this call is to give your visitor's wallet provider what it needs to send the payment. + +```http wrap +POST /visitor/outgoing-payment HTTP/1.1 +Accept: application/json +Content-Type: application/json +Authorization: {{ GNAP outgoingPaymentGrant.accessToken.value }} +Host: cloudninewallet.example +{ +"walletAddress": "https://wallet.example/alice", +"quoteId": "https://wallet.example/quotes/ab03296b-0c8b-4776-b94e-7ee27d868d4d", +} +``` + 9. The response from your visitor's wallet provider indicates whether the outgoing payment was created on their side. A payment could fail if the visitor has insufficient funds, for example. The following example indicates the outgoing payment was successfully created. - - ```http wrap - { - "id": "https://cloudninewallet.example/visitor/outgoing-payments/8c68d3cc-0a0f-4216-98b4-4fa44a6c88cf", - "walletAddress": "https://cloudninewallet.example/visitor/", - "receiver": "https://wallet.example/alice/incoming-payments/08394f02-7b7b-45e2-b645-51d04e7c330c", - "receiveAmount": { - "value": "2", - "assetCode": "USD", - "assetScale": 2 - }, - "debitAmount": { - "value": "2", - "assetCode": "USD", - "assetScale": 2 - }, - "sentAmount": { - "value": "0", - "assetCode": "USD", - "assetScale": 2 - }, - "createdAt": "2022-03-12T23:20:55.52Z", - "updatedAt": "2022-03-12T23:20:55.52Z" - } - ``` - - + + ```http wrap + { + "id": "https://cloudninewallet.example/visitor/outgoing-payments/8c68d3cc-0a0f-4216-98b4-4fa44a6c88cf", + "walletAddress": "https://cloudninewallet.example/visitor/", + "receiver": "https://wallet.example/alice/incoming-payments/08394f02-7b7b-45e2-b645-51d04e7c330c", + "receiveAmount": { + "value": "2", + "assetCode": "USD", + "assetScale": 2 + }, + "debitAmount": { + "value": "2", + "assetCode": "USD", + "assetScale": 2 + }, + "sentAmount": { + "value": "0", + "assetCode": "USD", + "assetScale": 2 + }, + "createdAt": "2022-03-12T23:20:55.52Z", + "updatedAt": "2022-03-12T23:20:55.52Z" + } + ``` + + + diff --git a/src/content/docs/developers/activity-streams.mdx b/src/content/docs/developers/activity-streams.mdx index 6294d327..0c8c569d 100644 --- a/src/content/docs/developers/activity-streams.mdx +++ b/src/content/docs/developers/activity-streams.mdx @@ -6,7 +6,7 @@ import { LinkOut } from '@interledger/docs-design-system' Social web community servers and apps can expose the wallet address of a user or post to a Web Monetization client, such as Interledger Foundation's [Web Monetization browser extension](/supporters/get-started#install-the-extension) or embedded SDK. -The `monetization` property from the Web Monetization namespace (`https://webmonetization.org/ns.jsonld`) applies to an Activity Streams 2.0 `Object`. +The `monetization` property from the Web Monetization namespace (`https://webmonetization.org/ns.jsonld`) applies to an Activity Streams 2.0 `Object`. A Web Monetization wallet address can be applied to either an `Actor` performing an action of creation or an Object Type created by the `Actor`. @@ -42,11 +42,13 @@ A `monetization` property must only be applied to an Object Type when its desire "endpoints": { "sharedInbox": "https://alpaca.gold/inbox", }, - "tag": [{ - "type": "Hashtag", - "href": "https://alpaca.gold/tags/WebMonetizationRocks", - "name": "#WebMonetizationRocks", - }], + "tag": [ + { + "type": "Hashtag", + "href": "https://alpaca.gold/tags/WebMonetizationRocks", + "name": "#WebMonetizationRocks", + }, + ], // Wallet address when viewing this user’s profile and posts "monetization": "https://fynbos.me/jeremiah", @@ -57,43 +59,45 @@ A `monetization` property must only be applied to an Object Type when its desire ```jsonc wrap { - "@context": [ - "https://www.w3.org/ns/activitystreams", - "https://webmonetization.org/ns.jsonld", - - // Add the Web Monetization context - "https://webmonetization.org/ns.jsonld", - - { - "ostatus": "http://ostatus.org#", - "atomUri": "ostatus:atomUri", - "conversation": "ostatus:conversation" - } - ], - "id": "https://demo.interledger.social/users/WebMonetizationTest/statuses/113917664614618248", - "type": "Note", - "published": "2025-01-30T14:00:14Z", - "url": "https://demo.interledger.social/@WebMonetizationTest/113917664614618248", - "attributedTo": "https://demo.interledger.social/users/WebMonetizationTest", - "to": ["https://www.w3.org/ns/activitystreams#Public"], - "cc": [ - "https://demo.interledger.social/users/WebMonetizationTest/followers", - "https://alpaca.gold/users/Jeremiah" - ], - "atomUri": "https://demo.interledger.social/users/WebMonetizationTest/statuses/113917664614618248", - "conversation": "tag:demo.interledger.social,2025-01-30:objectId=26:objectType=Conversation", - "content": "

“When you go viral, you should get paid.” —@Jeremiah

", - "contentMap": { - "en": "

“When you go viral, you should get paid.” —@Jeremiah

" - }, - "tag": [{ - "type": "Mention", - "href": "https://alpaca.gold/users/Jeremiah", - "name": "@Jeremiah@alpaca.gold" - }], - - // Wallet address distinct from the Note’s author - "monetization": "https://fynbos.me/jeremiah" + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://webmonetization.org/ns.jsonld", + + // Add the Web Monetization context + "https://webmonetization.org/ns.jsonld", + + { + "ostatus": "http://ostatus.org#", + "atomUri": "ostatus:atomUri", + "conversation": "ostatus:conversation", + }, + ], + "id": "https://demo.interledger.social/users/WebMonetizationTest/statuses/113917664614618248", + "type": "Note", + "published": "2025-01-30T14:00:14Z", + "url": "https://demo.interledger.social/@WebMonetizationTest/113917664614618248", + "attributedTo": "https://demo.interledger.social/users/WebMonetizationTest", + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "cc": [ + "https://demo.interledger.social/users/WebMonetizationTest/followers", + "https://alpaca.gold/users/Jeremiah", + ], + "atomUri": "https://demo.interledger.social/users/WebMonetizationTest/statuses/113917664614618248", + "conversation": "tag:demo.interledger.social,2025-01-30:objectId=26:objectType=Conversation", + "content": "

“When you go viral, you should get paid.” —@Jeremiah

", + "contentMap": { + "en": "

“When you go viral, you should get paid.” —@Jeremiah

", + }, + "tag": [ + { + "type": "Mention", + "href": "https://alpaca.gold/users/Jeremiah", + "name": "@Jeremiah@alpaca.gold", + }, + ], + + // Wallet address distinct from the Note’s author + "monetization": "https://fynbos.me/jeremiah", } ``` @@ -101,40 +105,40 @@ A `monetization` property must only be applied to an Object Type when its desire ```jsonc wrap { - "@context": [ - "https://www.w3.org/ns/activitystreams", - - // Add the Web Monetization context - "https://webmonetization.org/ns.jsonld", - - { - "ostatus": "http://ostatus.org#", - "atomUri": "ostatus:atomUri", - "conversation": "ostatus:conversation", - "Hashtag": "as:Hashtag" - } - ], - "id": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311", - "type": "Note", - "published": "2025-03-03T02:03:03Z", - "url": "https://alpaca.gold/@Jeremiah/816659822732776311", - "attributedTo": "https://alpaca.gold/users/Jeremiah", - "to": ["https://www.w3.org/ns/activitystreams#Public"], - "cc": ["https://alpaca.gold/users/Jeremiah/followers"], - "atomUri": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311", - "conversation": "tag:alpaca.gold,2025-03-03:objectId=4838002:objectType=Conversation", - "content": "

I can’t take full credit for the awesomeness of this post.

", - "replies": { - "id": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311/replies", - "type": "Collection", - "first": { - "type": "CollectionPage", - "next": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311/replies?only_other_accounts=true&page=true", - "partOf": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311/replies" - } - }, - - // Wallet address when viewing this Note - "monetization": ["https://fynbos.me/jeremiah", "https://fynbos.me/adam"] + "@context": [ + "https://www.w3.org/ns/activitystreams", + + // Add the Web Monetization context + "https://webmonetization.org/ns.jsonld", + + { + "ostatus": "http://ostatus.org#", + "atomUri": "ostatus:atomUri", + "conversation": "ostatus:conversation", + "Hashtag": "as:Hashtag", + }, + ], + "id": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311", + "type": "Note", + "published": "2025-03-03T02:03:03Z", + "url": "https://alpaca.gold/@Jeremiah/816659822732776311", + "attributedTo": "https://alpaca.gold/users/Jeremiah", + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "cc": ["https://alpaca.gold/users/Jeremiah/followers"], + "atomUri": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311", + "conversation": "tag:alpaca.gold,2025-03-03:objectId=4838002:objectType=Conversation", + "content": "

I can’t take full credit for the awesomeness of this post.

", + "replies": { + "id": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311/replies?only_other_accounts=true&page=true", + "partOf": "https://alpaca.gold/users/Jeremiah/statuses/816659822732776311/replies", + }, + }, + + // Wallet address when viewing this Note + "monetization": ["https://fynbos.me/jeremiah", "https://fynbos.me/adam"], } -``` \ No newline at end of file +``` diff --git a/src/content/docs/developers/get-started.mdx b/src/content/docs/developers/get-started.mdx index 22d12c39..6b60d716 100644 --- a/src/content/docs/developers/get-started.mdx +++ b/src/content/docs/developers/get-started.mdx @@ -12,11 +12,12 @@ import Wallet from '/src/partials/wallet-prereq.mdx' ## Step 1 - Get your wallet address -Get your wallet address from your wallet provider. +Get your wallet address from your wallet provider. ```http title="Example" https://wallet.example.com/alice ``` + Some wallet providers refer to their wallet addresses as _payment pointers_. Payment pointers begin with `$` instead of `https://`. ```http title="Example" @@ -42,7 +43,7 @@ If you have a payment pointer, visit ``` - + + ```` Congratulations! Your page is now web monetized. Add the `` to any page of your site you want to monetize. -For more information, visit the [Monetization link element](/developers/link-element) page. \ No newline at end of file +For more information, visit the [Monetization link element](/developers/link-element) page. diff --git a/src/content/docs/developers/interfaces.mdx b/src/content/docs/developers/interfaces.mdx index 0736b528..d44bbfe4 100644 --- a/src/content/docs/developers/interfaces.mdx +++ b/src/content/docs/developers/interfaces.mdx @@ -37,11 +37,11 @@ The `MonetizationEvent` interface describes the [`monetization`](/developers/eve By listening for `monetization` events, you can use the information returned in the following properties to verify payments. -| Property | Description | -| - | - | -| [amountSent](/developers/events#amountsent) | The currency amount and code of the sent payment. Contains two variables, `value` and `currency`, constructed by the [`MonetizationCurrencyAmount`](#monetizationcurrencyamount) interface. | -| [incomingPayment](/developers/events#incomingpayment) | A URL you can use to determine if a payment was received and, if so, the amount received. | -| [paymentPointer](/developers/events#paymentpointer) | The URL of the wallet address or payment pointer that the incoming payment request was sent to. | +| Property | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [amountSent](/developers/events#amountsent) | The currency amount and code of the sent payment. Contains two variables, `value` and `currency`, constructed by the [`MonetizationCurrencyAmount`](#monetizationcurrencyamount) interface. | +| [incomingPayment](/developers/events#incomingpayment) | A URL you can use to determine if a payment was received and, if so, the amount received. | +| [paymentPointer](/developers/events#paymentpointer) | The URL of the wallet address or payment pointer that the incoming payment request was sent to. | Visit the [Monetization events](/developers/events) page for more information. diff --git a/src/content/docs/developers/link-element-webpage.mdx b/src/content/docs/developers/link-element-webpage.mdx index 8803084d..e322c4c0 100644 --- a/src/content/docs/developers/link-element-webpage.mdx +++ b/src/content/docs/developers/link-element-webpage.mdx @@ -1,18 +1,19 @@ --- title: Webpage (HTML) --- + import { Badge } from '@astrojs/starlight/components' -import Overview from "/src/partials/link-element-overview.mdx"; -import Prereqs from "/src/partials/link-element-prereqs.mdx"; -import Syntax from "/src/partials/link-element-syntax.mdx"; -import Placement from "/src/partials/link-element-placement.mdx"; -import MultiLink from "/src/partials/link-element-multilink.mdx"; -import Iframes from "/src/partials/link-element-iframes.mdx"; -import Media from "/src/partials/link-element-media.mdx"; -import HowHtml from "/src/partials/link-element-how-html.mdx"; -import HowRel from "/src/partials/link-element-how-rel.mdx"; -import HowAgent from "/src/partials/link-element-how-agent.mdx"; -import ContPayments from "/src/partials/link-element-cont-payments.mdx"; +import Overview from '/src/partials/link-element-overview.mdx' +import Prereqs from '/src/partials/link-element-prereqs.mdx' +import Syntax from '/src/partials/link-element-syntax.mdx' +import Placement from '/src/partials/link-element-placement.mdx' +import MultiLink from '/src/partials/link-element-multilink.mdx' +import Iframes from '/src/partials/link-element-iframes.mdx' +import Media from '/src/partials/link-element-media.mdx' +import HowHtml from '/src/partials/link-element-how-html.mdx' +import HowRel from '/src/partials/link-element-how-rel.mdx' +import HowAgent from '/src/partials/link-element-how-agent.mdx' +import ContPayments from '/src/partials/link-element-cont-payments.mdx' import Specification from '/src/components/docs/Specification.astro' @@ -48,12 +49,15 @@ import Specification from '/src/components/docs/Specification.astro' ## How it works ### HTMLLinkElement + ### rel="monetization" link type + ### Web Monetization agent + ### Continuous payments @@ -62,4 +66,4 @@ import Specification from '/src/components/docs/Specification.astro' ## Specification - \ No newline at end of file + diff --git a/src/content/docs/developers/link-element.mdx b/src/content/docs/developers/link-element.mdx index 1644748e..dbb5d512 100644 --- a/src/content/docs/developers/link-element.mdx +++ b/src/content/docs/developers/link-element.mdx @@ -3,17 +3,17 @@ title: Monetization element --- import { Badge } from '@astrojs/starlight/components' -import Overview from "/src/partials/link-element-overview.mdx"; -import Prereqs from "/src/partials/link-element-prereqs.mdx"; -import Syntax from "/src/partials/link-element-syntax.mdx"; -import Placement from "/src/partials/link-element-placement.mdx"; -import MultiLink from "/src/partials/link-element-multilink.mdx"; -import Iframes from "/src/partials/link-element-iframes.mdx"; -import Media from "/src/partials/link-element-media.mdx"; -import HowHtml from "/src/partials/link-element-how-html.mdx"; -import HowRel from "/src/partials/link-element-how-rel.mdx"; -import HowAgent from "/src/partials/link-element-how-agent.mdx"; -import ContPayments from "/src/partials/link-element-cont-payments.mdx"; +import Overview from '/src/partials/link-element-overview.mdx' +import Prereqs from '/src/partials/link-element-prereqs.mdx' +import Syntax from '/src/partials/link-element-syntax.mdx' +import Placement from '/src/partials/link-element-placement.mdx' +import MultiLink from '/src/partials/link-element-multilink.mdx' +import Iframes from '/src/partials/link-element-iframes.mdx' +import Media from '/src/partials/link-element-media.mdx' +import HowHtml from '/src/partials/link-element-how-html.mdx' +import HowRel from '/src/partials/link-element-how-rel.mdx' +import HowAgent from '/src/partials/link-element-how-agent.mdx' +import ContPayments from '/src/partials/link-element-cont-payments.mdx' import Specification from '/src/components/docs/Specification.astro' @@ -49,12 +49,15 @@ import Specification from '/src/components/docs/Specification.astro' ## How it works ### HTMLLinkElement + ### rel="monetization" link type + ### Web Monetization agent + ### Continuous payments @@ -63,4 +66,4 @@ import Specification from '/src/components/docs/Specification.astro' ## Specification - \ No newline at end of file + diff --git a/src/content/docs/developers/overview.mdx b/src/content/docs/developers/overview.mdx index fe2e3910..a5c8a073 100644 --- a/src/content/docs/developers/overview.mdx +++ b/src/content/docs/developers/overview.mdx @@ -11,28 +11,96 @@ Web Monetization is a light-weight and non-intrusive way for you to monetize you ## Benefits -- Other solutions can require both you and your supporters to use the same application, platform, or service provider. Web Monetization doesn't have this limitation. As long as both you and your supporters' chosen wallet providers are compatible with Web Monetization, they can send you a payment. +- + Other solutions can require both you and your supporters to use the same + application, platform, or service provider. Web Monetization doesn't have this + limitation. As long as both you and your supporters' chosen wallet providers + are compatible with Web Monetization, they can send you a payment. -- - - **Reach a wider paying audience.** Some offerings, such as subscriptions, can result in missed revenue opportunities due to concerns about price, renewal frequencies, accepted currencies, and fees. Plus, some supporters simply don't want to create and keep track of another account. Web Monetization can supplement your current offerings by allowing your supporters to pay how, when, and what they want without creating site-by-site accounts. - - **Regain lost ad revenue.** If your site is sustained by ad revenue, then every impression counts. Many ad networks pay per thousand impressions, pay different amounts based on the country your supporter is in, and could require you to earn a minimum amount before you can access your revenue. While ad blockers can improve user experience, they also make earning ad revenue more difficult. Web Monetization can help make up the difference. +- - **Reach a wider + paying audience.** Some offerings, such as subscriptions, can result in missed + revenue opportunities due to concerns about price, renewal frequencies, + accepted currencies, and fees. Plus, some supporters simply don't want to + create and keep track of another account. Web Monetization can supplement your + current offerings by allowing your supporters to pay how, when, and what they + want without creating site-by-site accounts. - **Regain lost ad revenue.** If + your site is sustained by ad revenue, then every impression counts. Many ad + networks pay per thousand impressions, pay different amounts based on the + country your supporter is in, and could require you to earn a minimum amount + before you can access your revenue. While ad blockers can improve user + experience, they also make earning ad revenue more difficult. Web Monetization + can help make up the difference. -- Certain recurring revenue models, like subscriptions, can have overhead costs beyond the time, effort, and money required for set up. These include: providing customer support, managing chargebacks, and administering records through various Content Management System (CMS) tools. With Web Monetization, payments are anonymous. There are no customer records to maintain. You aren't liable for chargebacks or refunds because your supporters are in control of if, when, and how much they pay. +- + Certain recurring revenue models, like subscriptions, can have overhead costs + beyond the time, effort, and money required for set up. These include: + providing customer support, managing chargebacks, and administering records + through various Content Management System (CMS) tools. With Web Monetization, + payments are anonymous. There are no customer records to maintain. You aren't + liable for chargebacks or refunds because your supporters are in control of + if, when, and how much they pay. -- Some services require you to wait until a given day of the month or until you reach a minimum balance before paying out. Should a platform temporarily or permanently ban you, the platform could choose to keep your balance permanently. Web Monetization removes this issue. When a supporter sends you a payment, the payment is sent directly from their wallet to your wallet. Note that your wallet provider could require you reach a specific balance before you can transfer out your funds. Be sure to check with your wallet provider. +- + Some services require you to wait until a given day of the month or until you + reach a minimum balance before paying out. Should a platform temporarily or + permanently ban you, the platform could choose to keep your balance + permanently. Web Monetization removes this issue. When a supporter sends you a + payment, the payment is sent directly from their wallet to your wallet. Note + that your wallet provider could require you reach a specific balance before + you can transfer out your funds. Be sure to check with your wallet provider. -- Some solutions require both you and your supporters to use the same currency. Web Monetization allows you to receive payments in a currency of your choosing, while your supporters can send payments in their preferred currency. +- + Some solutions require both you and your supporters to use the same currency. + Web Monetization allows you to receive payments in a currency of your + choosing, while your supporters can send payments in their preferred currency. -- Web Monetization allows a supporter to send a payment to a web monetized page. How you want your page to respond is up to you. By listening for the [`monetization`](/developers/events) event, you can verify the amount and currency of a payment, then programmatically show or hide content or have your page respond in some other way. +- + Web Monetization allows a supporter to send a payment to a web monetized page. + How you want your page to respond is up to you. By listening for the + [`monetization`](/developers/events) event, you can verify the amount and + currency of a payment, then programmatically show or hide content or have your + page respond in some other way. ## Constraints -- Sending and receiving payments via Web Monetization requires the sender and the recipient to have an account with a Web Monetization-enabled wallet provider.

In general, wallet providers are regulated entities within the countries they operate. Obtaining the proper licensing and registration to become a wallet provider can be an expensive, complex, and time consuming process. Also, there are technical integrations required to support Web Monetization. This all means a compatible wallet provider may not yet be available in your area.

+- + Sending and receiving payments via Web Monetization requires the sender and + the recipient to have an account with a Web Monetization-enabled wallet + provider. +

+ In general, wallet providers are regulated entities within the countries + they operate. Obtaining the proper licensing and registration to become a + wallet provider can be an expensive, complex, and time consuming process. + Also, there are technical integrations required to support Web Monetization. + This all means a compatible wallet provider may not yet be available in your + area. +

-- Web Monetization is designed to preserve the privacy of your supporters. While you can use [`monetization`](/developers/events) events to determine payment amounts, Web Monetization doesn't track your supporters' names, wallet addresses, IP addresses, or other information that could enable you to correlate a payment with a specific individual or determine their browsing behavior. +- + Web Monetization is designed to preserve the privacy of your supporters. While + you can use [`monetization`](/developers/events) events to determine payment + amounts, Web Monetization doesn't track your supporters' names, wallet + addresses, IP addresses, or other information that could enable you to + correlate a payment with a specific individual or determine their browsing + behavior. -- One key differentiator of Web Monetization is that your supporters are in control of if, when, and how much they pay. Web Monetization doesn't allow you to pull a payment on behalf of your supporters. When you web monetize a page, you are embedding your wallet address so that your supporters' extension knows you're able to accept Web Monetization payments. It's up to your supporters to decide whether to pay. +- + One key differentiator of Web Monetization is that your supporters are in + control of if, when, and how much they pay. Web Monetization doesn't allow you + to pull a payment on behalf of your supporters. When you web monetize a page, + you are embedding your wallet address so that your supporters' extension knows + you're able to accept Web Monetization payments. It's up to your supporters to + decide whether to pay. -- Web Monetization is designed to allow supporters to control when to pay, how much to pay, and how often to pay. If you want to, for example, unlock exclusive content after receiving a specific amount, you'll need to add your own code to make that happen. +- + Web Monetization is designed to allow supporters to control when to pay, how + much to pay, and how often to pay. If you want to, for example, unlock + exclusive content after receiving a specific amount, you'll need to add your + own code to make that happen. -- Web Monetization doesn't charge or collect fees, but your digital wallet provider could. For example, you could incur a currency conversion fee if you receive a payment in dollars, but transact in pounds. Be sure to consider supported currencies and fees when choosing a wallet provider that's best for you. +- + Web Monetization doesn't charge or collect fees, but your digital wallet + provider could. For example, you could incur a currency conversion fee if you + receive a payment in dollars, but transact in pounds. Be sure to consider + supported currencies and fees when choosing a wallet provider that's best for + you. diff --git a/src/content/docs/developers/rss-atom-jsonfeed.mdx b/src/content/docs/developers/rss-atom-jsonfeed.mdx index de66d766..0269cf9e 100644 --- a/src/content/docs/developers/rss-atom-jsonfeed.mdx +++ b/src/content/docs/developers/rss-atom-jsonfeed.mdx @@ -144,7 +144,7 @@ Per the JSON Feed 1.1 specification, extensions must have a property name that b | Property | Required | Data type | Description | | -------- | -------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------- | | `about` | No | string | A link to the page explaining the extension object's purpose. It should appear in the first use of the extension object only. | -| `links` | Yes | Array of strings | Specifies one or more Open Payments-enabled wallet addresses. | +| `links` | Yes | Array of strings | Specifies one or more Open Payments-enabled wallet addresses. | The `_monetization` extension may be added to the top-level document and to individual items in the `items` array. diff --git a/src/content/docs/developers/tools.mdx b/src/content/docs/developers/tools.mdx index 4e5c1140..ff9ca449 100644 --- a/src/content/docs/developers/tools.mdx +++ b/src/content/docs/developers/tools.mdx @@ -1,32 +1,39 @@ --- title: Publisher tools banner: - content: | - More tools coming soon! + content: | + More tools coming soon! next: link: /wallets label: Compatible digital wallets --- -import { LinkButton } from '@astrojs/starlight/components'; -import { LinkOut } from "@interledger/docs-design-system"; +import { LinkButton } from '@astrojs/starlight/components' +import { LinkOut } from '@interledger/docs-design-system' The publisher tools page provides a collection of easy-to-customize components that you can use to promote Web Monetization and encourage your visitors to support you. ## Banner -Create a banner that appears when your visitors don't have the Web Monetization extension or have the extension turned off. The banner automatically includes a link for your visitor to download the extension from their browser's store. Customize the settings, then generate a script to place on your site. The script will automatically web monetize your site. +Create a banner that appears when your visitors don't have the Web Monetization extension or have the extension turned off. The banner automatically includes a link for your visitor to download the extension from their browser's store. Customize the settings, then generate a script to place on your site. The script will automatically web monetize your site. ```js wrap title="Example" - + ``` Generating the script saves your configuration to our server. Load your existing banner configuration by clicking **Import** and entering your wallet address. Any changes you make are saved and will appear on your site. -Banner tool + + Banner tool + ## Link tag generator @@ -34,11 +41,17 @@ Use our link tag generator to create your Web Monetization link tag. Enter your The generator will check for syntax, but not whether you've entered your information correctly. -Link tag generator + + Link tag generator + ## Probabilistic revshare generator -Probabilistic revenue sharing (revshare) is a way to share a portion of a web monetized page's earnings between multiple recipients. Each time the page loads, a recipient is chosen at random from a list of predefined wallet addresses. The probability of one recipient being chosen over the others is based on a weight you assign to each recipient. +Probabilistic revenue sharing (revshare) is a way to share a portion of a web monetized page's earnings between multiple recipients. Each time the page loads, a recipient is chosen at random from a list of predefined wallet addresses. The probability of one recipient being chosen over the others is based on a weight you assign to each recipient. The revshare generator allows you to enter each recipient's wallet address and assign it a weight. The percentage of a page's total revenue a recipient should receive, over time, calculates automatically. When you're finished, copy the link tag to your HTML page. @@ -46,4 +59,10 @@ The revshare generator allows you to enter each recipient's wallet address and a We host your link tag on webmonetization.org. If you'd rather host your own script, check out the [revshare tutorial](/tutorials/revenue-sharing). ::: -Revshare generator \ No newline at end of file + + Revshare generator + diff --git a/src/content/docs/docs.mdx b/src/content/docs/docs.mdx index 872b1c88..6383717e 100644 --- a/src/content/docs/docs.mdx +++ b/src/content/docs/docs.mdx @@ -4,17 +4,33 @@ tableOfContents: false next: Content consumer overview --- -import { LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { LinkCard, CardGrid } from '@astrojs/starlight/components' -Web Monetization is a technology that enables websites to receive payments from visitors as they interact with the content. +Web Monetization is a technology that enables websites to receive payments from visitors as they interact with the content. -Website owners, content owners, and publishers can use Web Monetization to replace or complement existing revenue models. +Website owners, content owners, and publishers can use Web Monetization to replace or complement existing revenue models. -Site visitors can make a one-time contribution or send continuous payments as they spend time on web monetized content. The amount and frequency of payments is chosen by the visitor, not the website. +Site visitors can make a one-time contribution or send continuous payments as they spend time on web monetized content. The amount and frequency of payments is chosen by the visitor, not the website. - - - - - - \ No newline at end of file + + + + + + diff --git a/src/content/docs/guides/receive-test-payments.mdx b/src/content/docs/guides/receive-test-payments.mdx index b12aaf99..2354951c 100644 --- a/src/content/docs/guides/receive-test-payments.mdx +++ b/src/content/docs/guides/receive-test-payments.mdx @@ -24,26 +24,68 @@ If your browser extension is connected to a wallet that uses real money and you ## Receive continuous payments - 1. Enable continuous payments within the extension if they aren't already. Check your settings by selecting the cog icon, then the **Rate** tab. - 2. Go to the Web Monetization Playground. - 3. Enter your wallet account's payment pointer into the field and select **Add monetization link**. - :::note[Forgot your payment pointer?] - Open the extension and select the cog icon. Then, select the **Wallet** tab and copy your payment pointer from the **Connected wallet address** field. - ::: - 4. Remain on the Playground page, with the window active, long enough for a few events to appear on the page. The time it takes for events to appear depends on the rate you have set up in the extension.If your rate is €0.60 EUR an hour, then it will take 5-6 minutes for three events to appear. - 5. Select **Disable** to stop the payments. - 6. Sign in to your Interledger test wallet and select **Transactions** from the left menu. A completed outgoing payment appears for each event, as well as a single pending incoming payment with a zero amount.To mimic how a real wallet provider could act, the Interledger test network deducts a 0.01 fee from each outgoing payment. If your rate is €0.60 EUR an hour, each Playground event will show €0.01 EUR while each outgoing payment in your transaction list will show a debit of €0.02. - 7. Wait 10 minutes, then refresh the page. The pending incoming transaction will show as completed and reflect the amount deposited into your wallet.If your rate is €0.60 EUR an hour and you waited for three Playground events, your incoming payment will be approximately €0.03. + 1. Enable continuous payments within the extension if they aren't already. + Check your settings by selecting the cog icon, then the **Rate** tab. 2. Go to + the{' '} + + Web Monetization Playground + + . 3. Enter your wallet account's payment pointer into the field and select + **Add monetization link**. :::note[Forgot your payment pointer?] Open the + extension and select the cog icon. Then, select the **Wallet** tab and copy + your payment pointer from the **Connected wallet address** field. ::: 4. + Remain on the Playground page, with the window active, long enough for a few + events to appear on the page. The time it takes for events to appear depends + on the rate you have set up in the extension. + + If your rate is €0.60 EUR an hour, then it will + take 5-6 minutes for three events to appear. + + 5. Select **Disable** to stop the payments. 6. Sign in to your{' '} + + Interledger test wallet + {' '} + and select **Transactions** from the left menu. A completed outgoing payment + appears for each event, as well as a single pending incoming payment with a + zero amount. + + To mimic how a real wallet provider could act, the Interledger test network + deducts a 0.01 fee from each outgoing payment. If your rate is €0.60{' '} + EUR an hour, each Playground event will show + €0.01 EUR while each outgoing payment in your transaction list will show a + debit of €0.02. + + 7. Wait 10 minutes, then refresh the page. The pending incoming transaction + will show as completed and reflect the amount deposited into your wallet. + + If your rate is €0.60 EUR an hour and you waited + for three Playground events, your incoming payment will be approximately + €0.03. + ## Receive a one-time payment - 1. Go to the Web Monetization Playground. - 2. Enter your wallet account's payment pointer into the field and select **Add monetization link**. - :::note[Forgot your payment pointer?] - Open the extension and select the cog icon. Then, select the **Wallet** tab and copy your payment pointer from the **Connected wallet address** field. - ::: - 3. Open the extension, enter a one-time payment amount, then click **Send now**. A new event will appear in the Playground almost immediately. - 4. Sign in to your Interledger test wallet and select **Transactions** from the left menu. A completed outgoing and incoming payment will appear.To mimic how a real wallet provider could act, the Interledger test network might show a 0.01 fee deducted from each outgoing payment. If you made a one-time payment of €1.00 EUR, for example, the completed incoming payment might be for €0.99. + 1. Go to the{' '} + + Web Monetization Playground + + . 2. Enter your wallet account's payment pointer into the field and select + **Add monetization link**. :::note[Forgot your payment pointer?] Open the + extension and select the cog icon. Then, select the **Wallet** tab and copy + your payment pointer from the **Connected wallet address** field. ::: 3. Open + the extension, enter a one-time payment amount, then click **Send now**. A new + event will appear in the Playground almost immediately. 4. Sign in to your{' '} + + Interledger test wallet + {' '} + and select **Transactions** from the left menu. A completed outgoing and + incoming payment will appear. + + To mimic how a real wallet provider could act, the Interledger test network + might show a 0.01 fee deducted from each outgoing payment. If you made a + one-time payment of €1.00 EUR, for example, the + completed incoming payment might be for €0.99. + diff --git a/src/content/docs/guides/send-test-payments.mdx b/src/content/docs/guides/send-test-payments.mdx index 4e4feeb4..c809a704 100644 --- a/src/content/docs/guides/send-test-payments.mdx +++ b/src/content/docs/guides/send-test-payments.mdx @@ -5,21 +5,31 @@ title: Send test payments import { Steps, Icon } from '@astrojs/starlight/components' import { LinkOut, StylishHeader } from '@interledger/docs-design-system' -Use Interledger Foundation's Web Monetization browser extension to send payments to a web monetized site without using real money. +Use Interledger Foundation's Web Monetization browser extension to send payments to a web monetized site without using real money. :::tip[Before you begin] You must have a [funded test wallet account](/guides/test-wallet-sign-up) on Interledger Foundation's test network. ::: ## Install the extension - + - 1. Sign in to your wallet account. - 2. Download and install Interledger Foundation's [Web Monetization browser extension](/supporters/get-started#install-the-extension). - 3. Enter the payment pointer associated with your test wallet. For example, `$ilp.interledger-test.dev/mytestwallet`. Then, enter a budget amount and click **Connect**.
Extension setup screen with wallet address and amount fields, renew monthly toggle, and connect button - 4. Click **Agree** to allow the extension to connect to your wallet. - 5. Click **Accept** on the Interledger request screen. + 1. Sign in to your{' '} + wallet account. + 2. Download and install Interledger Foundation's [Web Monetization browser + extension](/supporters/get-started#install-the-extension). 3. Enter the + payment pointer associated with your test wallet. For example, + `$ilp.interledger-test.dev/mytestwallet`. Then, enter a budget amount and + click **Connect**. +
+ Extension setup screen with wallet address and amount fields, renew monthly toggle, and connect button + 4. Click **Agree** to allow the extension to connect to your wallet. 5. Click + **Accept** on the Interledger request screen.
## Configure continuous payments (optional) @@ -27,34 +37,70 @@ You must have a [funded test wallet account](/guides/test-wallet-sign-up) on Int By default, the extension sends continuous payments at a rate of $0.60 USD an hour ($0.01 a minute), or the equivalent in your chosen currency based on the exchange rate. To change the rate of pay: + - 1. Click the **Settings** icon in the upper-right of the extension. - 2. Select the *Rate* tab, then enter the amount to send, per hour, to web monetized sites. Your changes are automatically saved.
Rate tab with rate of pay per hour field and continuous payment toggle + 1. Click the **Settings** icon in the upper-right of the extension. 2. Select + the *Rate* tab, then enter the amount to send, per hour, to web monetized + sites. Your changes are automatically saved. +
+ Rate tab with rate of pay per hour field and continuous payment toggle
## Send continuous payments -Visit https://sidvishnoi.com/test/wm/. +Visit https://sidvishnoi.com/test/wm/. -This page's test wallet receives all payments in Mexican pesos (MX$) regardless of the currency you chose to use for your own test wallet. +This page's test wallet receives all payments in Mexican pesos (MX$) regardless of the currency you chose to use for your own test wallet. Check the status of the extension. -| Icon | Status | -| ---- | ------ | -| ![Active extension with green circle](/img/docs/extension/enabled-monetized.png) | The extension is sending continuous payments. | +| Icon | Status | +| -------------------------------------------------------------------------------- | ------------------------------------------------------------------- | +| ![Active extension with green circle](/img/docs/extension/enabled-monetized.png) | The extension is sending continuous payments. | | ![Active extension with red circle](/img/docs/extension/enabled-unmonetized.png) | The extension is not sending continuous payments. Refresh the page. | -Each payment appears within the *Monetization events* section on the test site.
Monetization events section showing two payments of MXN 0.21 +Each payment appears within the _Monetization events_ section on the test site.
Monetization events section showing two payments of MXN 0.21 If your extension is using USD with the default rate of $0.60 an hour, a new event appears on the site about every two minutes as long as the window is active. Continuous payments stop when the window is inactive. Keep the window active until a few payment events appear. Then, sign in to your wallet account and select **Transactions** to see the payments you've sent. ## Send a one-time payment - 1. Visit https://sidvishnoi.com/test/wm/. - 2. Check that the extension shows a green circle. If not, try refreshing the page.
- 3. Open the extension and enter an amount to send.
Extension showing an available balance of five dollars, with one dollar in the amount field and send now button active - 4. Click **Send now**. Your payment will appear immediately on the test site, within the *Monetization events* section.
Monetization events section showing two payments of MXN 0.21 and a one-time payment of 19.92 - 5. Sign in to your wallet account and select **Transactions** to see the payment you just sent. -
\ No newline at end of file + 1. Visit{' '} + + https://sidvishnoi.com/test/wm/ + + . 2. Check that the extension shows a green circle. If not, try refreshing the + page. +
+ + + 3. Open the extension and enter an amount to send. +
+ Extension showing an available balance of five dollars, with one dollar in the amount field and send now button active + 4. Click **Send now**. Your payment will appear immediately on the test site, + within the *Monetization events* section. +
+ Monetization events section showing two payments of MXN 0.21 and a one-time payment of 19.92 + 5. Sign in to your{' '} + wallet account{' '} + and select **Transactions** to see the payment you just sent. + diff --git a/src/content/docs/guides/test-wallet-sign-up.mdx b/src/content/docs/guides/test-wallet-sign-up.mdx index 66549dfa..de752b0f 100644 --- a/src/content/docs/guides/test-wallet-sign-up.mdx +++ b/src/content/docs/guides/test-wallet-sign-up.mdx @@ -6,18 +6,22 @@ import { Steps, Icon } from '@astrojs/starlight/components' import { LinkOut, StylishHeader } from '@interledger/docs-design-system' Sign up for a test wallet with Interledger Foundation to experiment with sending and receiving Web Monetization payments without using real money. - + ## Step 1 - Create an account - + - 1. Go to wallet.interledger-test.dev and click **Create account**. - 2. Enter your email address and a password, then click the arrowhead. A verification email will be sent to you. - 3. Click **Confirm my email address** in the verification email. - 4. Log in to your newly created account and complete the Know Your Customer (KYC) steps. + 1. Go to{' '} + + wallet.interledger-test.dev + {' '} + and click **Create account**. 2. Enter your email address and a password, then + click the arrowhead. A verification email will be sent to you. 3. Click + **Confirm my email address** in the verification email. 4. Log in to your + newly created account and complete the Know Your Customer (KYC) steps. ## Step 2 - Complete KYC - + As you go through the Know Your Customer (KYC) check, the only real information you must share is your email address. All other information can be fake because you're signing up for a test environment. :::note[Reason for checks] @@ -27,18 +31,69 @@ Interledger Foundation's test wallet runs on a GateHub pre-production environmen ## Step 3 - Add a payment pointer - 1. Select **New Account** on the Test Wallet dashboard.
Test wallet dashboard with new account button - 2. Enter any account name, select any asset (currency), then click **Create account**.
Create new account screen with name field and asset drop-down menu - 3. Click **Close**, then select your new account from the dashboard. - 4. Select **Add payment pointer**, then enter a payment pointer name and public name of your choosing.
Newly created account showing zero balance and buttons for add payment pointer and depositCreate payment pointer screen with account, payment pointer name, and public name fields - 5. Click **Create**. Your payment pointer should show in the _Payment Pointers_ section.
Account showing no balance and newly created payment pointer + 1. Select **New Account** on the Test Wallet dashboard. +
+ Test wallet dashboard with new account button + 2. Enter any account name, select any asset (currency), then click **Create + account**. +
+ Create new account screen with name field and asset drop-down menu + 3. Click **Close**, then select your new account from the dashboard. 4. Select + **Add payment pointer**, then enter a payment pointer name and public name of + your choosing. +
+ Newly created account showing zero balance and buttons for add payment pointer and deposit + Create payment pointer screen with account, payment pointer name, and public name fields + 5. Click **Create**. Your payment pointer should show in the _Payment + Pointers_ section. +
+ Account showing no balance and newly created payment pointer
## Step 4 - Fund your wallet - + - 1. Click **Deposit**.
Account showing no balance and newly created payment pointer - 2. Enter an amount, then click **Deposit**.
Deposit to account screen with amount field + 1. Click **Deposit**. +
+ Account showing no balance and newly created payment pointer + 2. Enter an amount, then click **Deposit**. +
+ Deposit to account screen with amount field
-You're ready to start testing Web Monetization after your deposit appears in your account.
Account showing balance amount and payment pointer \ No newline at end of file +You're ready to start testing Web Monetization after your deposit appears in your account.
Account showing balance amount and payment pointer diff --git a/src/content/docs/resources/get-involved.mdx b/src/content/docs/resources/get-involved.mdx index f4119ae5..90a03d8a 100644 --- a/src/content/docs/resources/get-involved.mdx +++ b/src/content/docs/resources/get-involved.mdx @@ -78,4 +78,4 @@ Stuck on something? We're here to help: Review our contribution guide for details. -Remember, every contribution matters - whether it's a small documentation fix, a bug report, or a major feature implementation. We're excited to have you as part of the Web Monetization community! \ No newline at end of file +Remember, every contribution matters - whether it's a small documentation fix, a bug report, or a major feature implementation. We're excited to have you as part of the Web Monetization community! diff --git a/src/content/docs/resources/glossary.mdx b/src/content/docs/resources/glossary.mdx index 2bba1a6c..2e4431be 100644 --- a/src/content/docs/resources/glossary.mdx +++ b/src/content/docs/resources/glossary.mdx @@ -35,7 +35,7 @@ Wallet providers who support Open Payments issues each of their customers' accou ### Payment pointer -A payment pointer is similar to a [wallet address](#wallet-address). Where a wallet address begins with `https://`, a payment pointer begins with `$`. For example, `$wallet.example.com/alice`. +A payment pointer is similar to a [wallet address](#wallet-address). Where a wallet address begins with `https://`, a payment pointer begins with `$`. For example, `$wallet.example.com/alice`. Most payment pointers can be converted to wallet addresses by simply replacing the `$` with `https://`. For example, `https://wallet.example.com/alice`. @@ -43,7 +43,7 @@ Most payment pointers can be converted to wallet addresses by simply replacing t Whether a wallet provider chooses to call their payment addresses _payment pointers_ or _wallet addresses_ is up to the provider. In places where the documentation only refers to wallet address, it's likely that the same information applies to payment pointers. ::: -If you're setting up Interledger Foundation's Web Monetization extension, you can enter either a wallet address (`https://`) or a payment pointer (`$`). +If you're setting up Interledger Foundation's Web Monetization extension, you can enter either a wallet address (`https://`) or a payment pointer (`$`). If you have a payment pointer and are monetizing your own content, the monetization `` element doesn't support the `$` in the `href` value. You must change the `$` to `https://`. diff --git a/src/content/docs/supporters/get-started.mdx b/src/content/docs/supporters/get-started.mdx index c47b93a5..f228e133 100644 --- a/src/content/docs/supporters/get-started.mdx +++ b/src/content/docs/supporters/get-started.mdx @@ -4,7 +4,7 @@ title: Get started with the extension import { Steps, Tabs, TabItem } from '@astrojs/starlight/components' import { LinkOut, StylishHeader } from '@interledger/docs-design-system' -import ExtensionLinks from "/src/components/ExtensionLinks.astro" +import ExtensionLinks from '/src/components/ExtensionLinks.astro' Interledger Foundation's Web Monetization browser extension lets you support your favorite web monetized sites directly from your web browser in a quick, non-intrusive, and privacy-preserving way. @@ -13,6 +13,7 @@ Interledger Foundation's Web Monetization browser extension lets you support you You can only use the extension to send payments to web monetized sites. Interledger Foundation encourages content owners and publishers to tell their audience they're web monetized via a banner or some other method. If you're interested in web monetizing your own content, the [get started](/developers/get-started) page for developers is a good place to start. +
@@ -22,11 +23,15 @@ To make Web Monetization payments, you only need a digital wallet account from a A web monetized site can't pull payments from your wallet. When you link the browser extension to your wallet, you're giving the extension permission to send payments on your behalf. These payments are automatically and continuously sent to each web monetized site you visit. You can also globally [disable continuous payments](#set-up-continuous-payments). The sites you pay aren't provided with any of your personally identifiable information, such as your name, email address, or IP address. +
## Install the extension - + :::note[Permissions] The extension asks for permission to access your browser tabs and your data for all websites. The extension requires these permissions to check each page you visit for Web Monetization. @@ -37,35 +42,86 @@ The extension asks for permission to access your browser tabs and your data for After you install the extension, a page appears to guide you through the configuration steps. - 1. Get a Web Monetization-compatible [wallet](/wallets).
An image of the onboarding screen showing the four steps to configure the extension - :::note - You may experience a delay before you can fund your wallet while your provider performs necessary regulatory checks. - ::: - 2. Find and copy your wallet address (Interledger) or payment pointer (GateHub). You'll need it for Step 4.
Interledger Wallet dashboard displaying a wallet address - - - ``` - https://wallet.example.com/alice - ``` - - - ``` - $wallet.example.com/alice - ``` - - - 3. Pin the extension to your toolbar (optional).
An example of where to find the pin to toolbar option for the extension - 4. Enter the wallet address or payment pointer you found in Step 2.
Set up screen with fields for wallet address/payment pointer and amount and a renew monthly toggle (default is off). - 5. Enter the amount the extension will have permission to send and select whether the amount should renew monthly. You can always [change these settings](#adjust-your-budget) later. - :::note - The amount and renewal frequency is specific to the extension you're setting up. If you install the extension on a different browser and connect to the same wallet, that extension will have a separate budget. Payments made from one budget don't affect the balance of the other. - ::: - 6. Click **Connect**, then click **Agree** to allow the extension to connect to your wallet account.
Consent screen for allowing the extension to connect to your wallet with agree and decline buttons - :::note - If your wallet provider's website opens in your browser, proceed to the next step. If you receive a connection error, review the instructions for [resolving the error](#resolve-a-key-addition-failure). - ::: - 7. Sign in to your wallet account if you haven't already, then confirm the connection and budget amount. For example:
Example budget confirmation screen with accept and decline buttons - 8. A success screen appears when the connection is successful. You can close the tab.
Web page displaying a connection successful screenYou're now ready to set up continuous payments. + 1. Get a Web Monetization-compatible [wallet](/wallets). +
+ An image of the onboarding screen showing the four steps to configure the extension + :::note You may experience a delay before you can fund your wallet while your + provider performs necessary regulatory checks. ::: 2. Find and copy your + wallet address (Interledger) or payment pointer (GateHub). You'll need it for + Step 4. +
+ Interledger Wallet dashboard displaying a wallet address + + + ``` https://wallet.example.com/alice ``` + + + ``` $wallet.example.com/alice ``` + + + 3. Pin the extension to your toolbar (optional). +
+ An example of where to find the pin to toolbar option for the extension + 4. Enter the wallet address or payment pointer you found in Step 2. +
+ Set up screen with fields for wallet address/payment pointer and amount and a renew monthly toggle (default is off). + 5. Enter the amount the extension will have permission to send and select + whether the amount should renew monthly. You can always [change these + settings](#adjust-your-budget) later. :::note The amount and renewal frequency + is specific to the extension you're setting up. If you install the extension + on a different browser and connect to the same wallet, that extension will + have a separate budget. Payments made from one budget don't affect the balance + of the other. ::: 6. Click **Connect**, then click **Agree** to allow the + extension to connect to your wallet account. +
+ Consent screen for allowing the extension to connect to your wallet with agree and decline buttons + :::note If your wallet provider's website opens in your browser, proceed to + the next step. If you receive a connection error, review the instructions for + [resolving the error](#resolve-a-key-addition-failure). ::: 7. Sign in to your + wallet account if you haven't already, then confirm the connection and budget + amount. For example: +
+ Example budget confirmation screen with accept and decline buttons + 8. A success screen appears when the connection is successful. You can close + the tab. +
+ Web page displaying a connection successful screen + You're now ready to set up continuous payments.
## Set up continuous payments @@ -75,20 +131,36 @@ After you install the extension, a page appears to guide you through the configu By default, the extension is set to send continuous payments at a rate of $0.60 USD an hour ($0.01 a minute). If you transact in a currency other than USD, then the extension will default to your currency's equivalent based on the exchange rate. For example, if you transact in Mexican pesos, $0.60 USD is equivalent to around MX $11.70. The extension will default to MX $11.70 an hour. Payments continue for as long as a web monetized page is active and in view. Continuous payments stop if you: -* Disable the extension -* Disable continuous payments within the extension's settings -* Minimize your browser -* Change the focus away from the tab/switch to a different tab -* Close the tab or browser -* Spend all of your budget + +- Disable the extension +- Disable continuous payments within the extension's settings +- Minimize your browser +- Change the focus away from the tab/switch to a different tab +- Close the tab or browser +- Spend all of your budget ### Change your continuous payment settings - 1. Click the **Settings** icon in the upper-right of the extension.
Extension showing a cog icon in the upper-right - 2. Select the *Rate* tab.
Rate tab with rate of pay per hour field and continuous payment toggle - 3. Enter the amount the extension will send, per hour, to web monetized sites. Alternatively, select the **Continuous payment** toggle to enable/disable continuous payments for all web monetized pages. + 1. Click the **Settings** icon in the upper-right of the extension. +
+ Extension showing a cog icon in the upper-right + 2. Select the *Rate* tab. +
+ Rate tab with rate of pay per hour field and continuous payment toggle + 3. Enter the amount the extension will send, per hour, to web monetized sites. + Alternatively, select the **Continuous payment** toggle to enable/disable + continuous payments for all web monetized pages.
## Make a one-time payment @@ -96,34 +168,62 @@ Payments continue for as long as a web monetized page is active and in view. Con You can make a one-time payment to a page instead of -- or in addition to -- continuous payments. The amount of the one-time payment is deducted from your budget. - 1. Ensure the address shown above the amount field is the page you intend to pay.
Extension showing an available balance of five dollars, with one dollar in the amount field and send now button active - 2. Enter an amount. Be sure your balance can cover the amount, otherwise the payment will fail. Click **Send now**.
Extension showing an available balance of four dollars, with a success message indicating one dollar was sent + 1. Ensure the address shown above the amount field is the page you intend to + pay. +
+ Extension showing an available balance of five dollars, with one dollar in the amount field and send now button active + 2. Enter an amount. Be sure your balance can cover the amount, otherwise the + payment will fail. Click **Send now**. +
+ Extension showing an available balance of four dollars, with a success message indicating one dollar was sent
## Adjust your budget ### About your budget -Your budget is the amount you've given the extension permission to spend from your wallet. If you spend your budgeted amount, the extension will display an orange circle in the toolbar and show an "out of funds" message. You can manually add more funds using the steps below. +Your budget is the amount you've given the extension permission to spend from your wallet. If you spend your budgeted amount, the extension will display an orange circle in the toolbar and show an "out of funds" message. You can manually add more funds using the steps below. If your budget is set to renew monthly and you are out of funds, you can: -* Wait for your budget to renew (your renewal date is shown in the extension) or -* Manually add funds +- Wait for your budget to renew (your renewal date is shown in the extension) or +- Manually add funds If you choose to add more funds, the amount you enter will become your new renewal amount and your renewal date will change. ### Change your budget settings - 1. Click the **Settings** icon in the upper-right of the extension.
Extension showing a cog icon in the upper-right - 2. Select the *Budget* tab.
Budget tab showing your remaining balance and options to change budget amount and renewal - 3. Enter the new amount in the **Budget amount** field. - 4. Select the **Monthly** toggle to enable/disable monthly renewals of your budget. - 5. Click **Submit changes**. A new tab opens to your wallet provider. - 6. Sign in to your wallet account if needed, then confirm the new budget. + 1. Click the **Settings** icon in the upper-right of the extension. +
+ Extension showing a cog icon in the upper-right + 2. Select the *Budget* tab. +
+ Budget tab showing your remaining balance and options to change budget amount and renewal + 3. Enter the new amount in the **Budget amount** field. 4. Select the + **Monthly** toggle to enable/disable monthly renewals of your budget. 5. Click + **Submit changes**. A new tab opens to your wallet provider. 6. Sign in to + your wallet account if needed, then confirm the new budget.
## Disconnect the extension from your wallet @@ -137,9 +237,30 @@ When you disconnect the extension, your remaining balance, if any, remains in yo The extension only supports one wallet connection at a time. For example, if you have two wallet accounts from which to make payments, you must disconnect from the first wallet before you can connect the extension to your second wallet. - 1. Click the **Settings** icon in the upper-right of the extension.
Extension showing a cog icon in the upper-right - 2. Click **Disconnect**.
Extension's wallet tab showing the disconnect buttonThe extension's setup screen appears with your previously used wallet address and budget settings prefilled.Extension's setup screen with previously used wallet address, budget amount, and recurrence setting saved + 1. Click the **Settings** icon in the upper-right of the extension. +
+ Extension showing a cog icon in the upper-right + 2. Click **Disconnect**. +
+ Extension's wallet tab showing the disconnect button + The extension's setup screen appears with your previously used wallet address + and budget settings prefilled. + Extension's setup screen with previously used wallet address, budget amount, and recurrence setting saved
## Resolve a key addition failure @@ -147,6 +268,7 @@ The extension only supports one wallet connection at a time. For example, if you When you try to connect the extension to your wallet, the extension attempts to automatically connect with your wallet provider to add a key to your wallet account. You'll receive an error if the extension is unable to add the key. For example: + Extension showing an automatic connection error, the key you must copy, and a copy button for the keyInterledger Wallet
. - 1. Sign in to your Interledger Wallet. - 2. Select **Settings** from the left menu. - 3. Select **Keys**. - 4. Click **Add a public key**. - 5. Enter a nickname for the key, then paste the key into the public key field. - 6. Click **Save**. + 1. Sign in to your Interledger Wallet. 2. Select **Settings** from the left + menu. 3. Select **Keys**. 4. Click **Add a public key**. 5. Enter a nickname + for the key, then paste the key into the public key field. 6. Click **Save**. 7. Go back to your extension and try connecting again. @@ -178,11 +297,11 @@ When the **Continuous payment** toggle is on, the extension icon appears in colo #### Continuous payment toggled on -| Icon | State | -| :--: | ----- | -|
![Continuous payments turned on in extension, extension is paying](/img/docs/extension/enabled-monetized.png 'Active icon state with green circle and checkmark')
| Page is web monetized and the extension is continuously paying | +| Icon | State | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------ | +|
![Continuous payments turned on in extension, extension is paying](/img/docs/extension/enabled-monetized.png 'Active icon state with green circle and checkmark')
| Page is web monetized and the extension is continuously paying | |
![Continuous payments turned on in extension, extension is not paying and needs user attention](/img/docs/extension/enabled-attention.png 'Active icon state with orange circle and exclamation mark')
| Page is web monetized, but the extension needs user attention and is **not** continuously paying | -|
![Continuous payments turned on in extension, page is not web monetized](/img/docs/extension/enabled-unmonetized.png 'Active icon state with red circle and x')
| Page is **not** web monetized, the extension is **not** continuously paying | +|
![Continuous payments turned on in extension, page is not web monetized](/img/docs/extension/enabled-unmonetized.png 'Active icon state with red circle and x')
| Page is **not** web monetized, the extension is **not** continuously paying | #### Continuous payment toggled off @@ -190,7 +309,7 @@ When the **Continuous payment** toggle is on, the extension icon appears in colo | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------ | |
![Continuous payments turned off in extension](/img/docs/extension/disabled-monetized.png 'Inactive icon state with green circle and checkmark')
| Page is web monetized, but the extension is **not** continuously paying | |
![Continuous payments turned off in extension, needs user attention](/img/docs/extension/disabled-attention.png 'Inactive icon state with orange circle and exclamation mark')
| Page is web monetized, but the extension needs user attention and is **not** continuously paying | -|
![Continuous payments turned off in extension, page isn't web monetized](/img/docs/extension/disabled-unmonetized.png 'Inactive icon state with red circle and x')
| Page is **not** web monetized and the extension is **not** continuously paying | +|
![Continuous payments turned off in extension, page isn't web monetized](/img/docs/extension/disabled-unmonetized.png 'Inactive icon state with red circle and x')
| Page is **not** web monetized and the extension is **not** continuously paying | ## FAQ @@ -198,8 +317,9 @@ When the **Continuous payment** toggle is on, the extension icon appears in colo I get an error from my wallet provider when linking the extension to my wallet. Why? It's hard to say without a specific error message. Two likely scenarios are: -* You waited too long to accept the connection. Your wallet provider might only give you a short window to accept the connection to keep your account safe. -* You accepted the connection too quickly--within a few seconds. Your wallet provider may do this as a security measure against bots or to ensure you've read the contents of the screen. Interledger Wallet, for example, enforces a minimum five second wait. + +- You waited too long to accept the connection. Your wallet provider might only give you a short window to accept the connection to keep your account safe. +- You accepted the connection too quickly--within a few seconds. Your wallet provider may do this as a security measure against bots or to ensure you've read the contents of the screen. Interledger Wallet, for example, enforces a minimum five second wait. Click **Connect** and try linking your extension again. @@ -224,9 +344,9 @@ After the extension shows a message that a payment succeeded, the extension's ba
How is the balance shown in my wallet related to the balance shown in my extension? -* Wallet balance - Your available balance; the amount you have to spend on Web Monetization or anything else you can use your wallet balance on. -* Extension balance - The amount you've given the extension permission to spend. +- Wallet balance - Your available balance; the amount you have to spend on Web Monetization or anything else you can use your wallet balance on. +- Extension balance - The amount you've given the extension permission to spend. -It's possible for your extension to show a higher balance than your wallet. In this case, any Web Monetization payment that exceeds your wallet's balance will fail due to insufficient funds. +It's possible for your extension to show a higher balance than your wallet. In this case, any Web Monetization payment that exceeds your wallet's balance will fail due to insufficient funds.
diff --git a/src/content/docs/supporters/overview.mdx b/src/content/docs/supporters/overview.mdx index 33b7fc1e..893fbb1b 100644 --- a/src/content/docs/supporters/overview.mdx +++ b/src/content/docs/supporters/overview.mdx @@ -7,26 +7,61 @@ tableOfContents: import { LinkOut } from '@interledger/docs-design-system' import EmphasisText from '/src/components/docs/EmphasisText.astro' -Web Monetization is an immediate and secure way for you to support websites, content owners, and publishers. +Web Monetization is an immediate and secure way for you to support websites, content owners, and publishers. With Web Monetization, you can express your gratitude by making a one-time contribution or by sending continuous payments as you spend time on their content. Visit the [Get started](/supporters/get-started) page for instructions. ## Benefits -- All payments to web monetized sites must be explicitly authorized or pre-authorized by you. Sites can't pull payments from your payment account under any circumstance. +- + All payments to web monetized sites must be explicitly authorized or + pre-authorized by you. Sites can't pull payments from your payment account + under any circumstance. -- Web Monetization doesn't provide the recipient with personally identifiable information such as your name, wallet address, IP address, or anything else the recipient could use to correlate a payment with you. +- + Web Monetization doesn't provide the recipient with personally identifiable + information such as your name, wallet address, IP address, or anything else + the recipient could use to correlate a payment with you. -- Some solutions require you to sign up for a particular application, platform, or service provider to support your favorite content. As long as your chosen wallet provider is compatible with Web Monetization, you can send payments to any web monetized sites. +- + Some solutions require you to sign up for a particular application, platform, + or service provider to support your favorite content. As long as your chosen + wallet provider is compatible with Web Monetization, you can send payments to + any web monetized sites. -- Part of setting up the Web Monetization extension involves linking the extension to your wallet. This link allows the extension to communicate with your wallet without storing sensitive payment details in the extension or in the browser itself. +- + Part of setting up the Web Monetization extension involves linking the + extension to your wallet. This link allows the extension to communicate with + your wallet without storing sensitive payment details in the extension or in + the browser itself. -- Part of choosing a compatible digital wallet is selecting one that allows you to pay in your preferred currency. When you send a payment, the recipient will receive it in the currency they selected when signing up with their compatible wallet provider. +- + Part of choosing a compatible digital wallet is selecting one that allows you + to pay in your preferred currency. When you send a payment, the recipient will + receive it in the currency they selected when signing up with their compatible + wallet provider. -- The only account you need is the one you create with your wallet provider. You don't have to create separate accounts for each website you want to pay. +- + The only account you need is the one you create with your wallet provider. You + don't have to create separate accounts for each website you want to pay. ## Constraints -- Sending a payment to a web monetized site doesn't guarantee an ad-free experience. Web Monetization provides publishers an alternative revenue model to ads, but the decision whether to load ads in response to a payment is entirely theirs. +- + Sending a payment to a web monetized site doesn't guarantee an ad-free + experience. Web Monetization provides publishers an alternative revenue model + to ads, but the decision whether to load ads in response to a payment is + entirely theirs. -- Sending and receiving payments via Web Monetization requires the sender and the recipient to have an account with a Web Monetization-enabled wallet provider.

In general, wallet providers are regulated entities within the countries they operate. Obtaining the proper licensing and registration to become a wallet provider can be an expensive, complex, and time consuming process. There are also technical integrations required to support Web Monetization. This all means a compatible wallet provider may not yet be available in your area.

+- + Sending and receiving payments via Web Monetization requires the sender and + the recipient to have an account with a Web Monetization-enabled wallet + provider. +

+ In general, wallet providers are regulated entities within the countries + they operate. Obtaining the proper licensing and registration to become a + wallet provider can be an expensive, complex, and time consuming process. + There are also technical integrations required to support Web Monetization. + This all means a compatible wallet provider may not yet be available in your + area. +

diff --git a/src/content/docs/tutorials/contribution-counter.mdx b/src/content/docs/tutorials/contribution-counter.mdx index 568da841..5a69c33d 100644 --- a/src/content/docs/tutorials/contribution-counter.mdx +++ b/src/content/docs/tutorials/contribution-counter.mdx @@ -33,25 +33,25 @@ Use the `monetization` event to show a web monetized visitor how much they've se @@ -94,7 +94,7 @@ Lastly, we tell the text on your page to update with the new total. The total sh contribution.innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency, -}).format(total); +}).format(total) ``` The formatted version of the amount gets written to the `contribution` span on the page. diff --git a/src/content/docs/tutorials/revenue-sharing.mdx b/src/content/docs/tutorials/revenue-sharing.mdx index 698a8255..19c2c502 100644 --- a/src/content/docs/tutorials/revenue-sharing.mdx +++ b/src/content/docs/tutorials/revenue-sharing.mdx @@ -8,7 +8,7 @@ import Disclaimer from '/src/partials/glitch.mdx' Probabilistic revenue sharing is a way to share a portion of a web monetized page’s earnings between multiple recipients. In Web Monetization, this works by having a random wallet address inserted into your page each time a web monetized visitor loads the page. You have several possible recipients, with their chance of being chosen based on their assigned weight. The visitor pays to the chosen recipient until the page is reloaded or closed. -In this tutorial, you'll define a list of recipients and their weights and create a script that chooses a recipient to pay, based on their weight, each time a web monetized visitor loads your page. +In this tutorial, you'll define a list of recipients and their weights and create a script that chooses a recipient to pay, based on their weight, each time a web monetized visitor loads your page. ### Before you begin @@ -84,4 +84,4 @@ The example doesn’t require you to have Web Monetization enabled in your brows src='/interactive-examples/wm2-probablistic-revenue-share/index.html' title='wm2-probablistic-revenue-share' style='height:100%;width:100%;border:0;min-height:420px' -> \ No newline at end of file +> diff --git a/src/content/docs/tutorials/show-content.mdx b/src/content/docs/tutorials/show-content.mdx index d9dd97d1..fecdda37 100644 --- a/src/content/docs/tutorials/show-content.mdx +++ b/src/content/docs/tutorials/show-content.mdx @@ -92,7 +92,7 @@ This example simulates showing and hiding exclusive content based on a visitor ## Create your script: show an indicator and exclusive content -Show web monetized visitors an indicator while they wait for Web Monetization to initialize, then show exclusive content. +Show web monetized visitors an indicator while they wait for Web Monetization to initialize, then show exclusive content. Non-web monetized visitors will be shown a message stating there's exclusive content they’re missing out on. diff --git a/src/content/docs/wallets.mdx b/src/content/docs/wallets.mdx index c4bbfe48..fdba718e 100644 --- a/src/content/docs/wallets.mdx +++ b/src/content/docs/wallets.mdx @@ -2,8 +2,8 @@ title: Web Monetization-compatible wallets lastUpdated: 2025-10-27 banner: - content: | - More wallet providers coming soon! + content: | + More wallet providers coming soon! --- import { Steps, Tabs, TabItem } from '@astrojs/starlight/components' @@ -15,11 +15,11 @@ Be sure to select a wallet that's available in your **region** and supports your ## Wallet providers -| Provider | Available in | Supported currencies | -| -------- | ------------ | -------------------- | -| Interledger Wallet | USA, Canada, EU, South Africa | $ USD, $ CAD, € EUR, R ZAR | -| GateHub* | USA, EU | $ USD, € EUR | -| Chimoney App | Global (100+ countries) | $ USD | +| Provider | Available in | Supported currencies | +| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Interledger Wallet | USA, Canada, EU, South Africa | $ USD, $ CAD, € EUR, R ZAR | +| GateHub\* | USA, EU | $ USD, € EUR | +| Chimoney App | Global (100+ countries) | $ USD | * Select *Hosted* wallet during setup @@ -31,19 +31,15 @@ When choosing a wallet provider for Web Monetization, be sure to select one that ### Wallet addresses and payment pointers -Some wallet providers will use the term *wallet address* while others use the term *payment pointer*. Wallet addresses contain `https://` while payment pointers contain `$`. +Some wallet providers will use the term _wallet address_ while others use the term _payment pointer_. Wallet addresses contain `https://` while payment pointers contain `$`. - - ``` - https://wallet.example.com/alice - ``` - - - ``` - $wallet.example.com/alice - ``` - + + ``` https://wallet.example.com/alice ``` + + + ``` $wallet.example.com/alice ``` + ## Limitations @@ -52,7 +48,7 @@ Some wallet providers will use the term *wallet address* while others use the te For now, users of the Interledger Wallet can only send and receive from other Interledger Wallet users who are in the same region and using the same currency. -### GateHub +### GateHub For now, users of the GateHub wallet can only send and receive from other GateHub wallet users. @@ -69,36 +65,80 @@ The Interledger test wallet provides a great way to test Web Monetization withou ## Where is my wallet address or payment pointer?
-Interledger Wallet - Users of the Interledger Wallet will have a _wallet address_. It appears on the _Home_ screen after signing in. Although `https://` isn't shown in the field, it is added to your address when you click the copy button. - User's wallet address highlighted on the Interledger Wallet home screen + Interledger Wallet + Users of the Interledger Wallet will have a _wallet address_. It appears on + the _Home_ screen after signing in. Although `https://` isn't shown in the + field, it is added to your address when you click the copy button. + User's wallet address highlighted on the Interledger Wallet home screen
-GateHub - Users of GateHub will have a _payment pointer_. Note that in GateHub your payment pointer is not the same thing as your wallet name. To locate your payment pointer: - - 1. Select your wallet, then click **Advanced**.
- 2. Scroll down to **Interledger Settings**. - 3. Click the **Payment pointer** button.
- 4. Copy your payment pointer.
- :::note - If you're setting up the extension, you can enter your payment pointer as it's shown. If you're adding Web Monetization to your website, you must change `$` to `https://`. For example, `https://ilp.gatehub.net/150012576/USD`. - ::: -
+ GateHub + Users of GateHub will have a _payment pointer_. Note that in GateHub your + payment pointer is not the same thing as your wallet name. To locate your + payment pointer: + + 1. Select your wallet, then click **Advanced**. +
+ + 2. Scroll down to **Interledger Settings**. 3. Click the **Payment pointer** + button. +
+ + 4. Copy your payment pointer. +
+ + :::note If you're setting up the extension, you can enter your payment + pointer as it's shown. If you're adding Web Monetization to your website, + you must change `$` to `https://`. For example, + `https://ilp.gatehub.net/150012576/USD`. ::: +
-Chimoney App - Users of the Chimoney App will have a _wallet address_. After completing your KYC verification on the Chimoney App, your account is automatically issued an Interledger Wallet Address. To locate your wallet address: - - 1. Open the Chimoney App and navigate to the **Account** tab. - 2. Click on **Interledger Wallet Address**.
Chimoney App Account tab showing the Interledger Wallet Address option - 3. Copy your wallet address. It will look like `https://ilp.chimoney.com/username` or `https://ilp.chimoney.com/123456`. - :::note - You can use this wallet address in both the Web Monetization extension and on your website. The `https://` prefix is already included. - ::: -
- - For detailed setup instructions, visit the Chimoney Web Monetization Guide. -
\ No newline at end of file + Chimoney App + Users of the Chimoney App will have a _wallet address_. After completing your + KYC verification on the Chimoney App, your account is automatically issued an + Interledger Wallet Address. To locate your wallet address: + + 1. Open the Chimoney App and navigate to the **Account** tab. 2. Click on + **Interledger Wallet Address**. +
+ Chimoney App Account tab showing the Interledger Wallet Address option + 3. Copy your wallet address. It will look like + `https://ilp.chimoney.com/username` or `https://ilp.chimoney.com/123456`. + :::note You can use this wallet address in both the Web Monetization + extension and on your website. The `https://` prefix is already included. + ::: +
+ For detailed setup instructions, visit the{' '} + + Chimoney Web Monetization Guide + + . + diff --git a/src/data/developers.ts b/src/data/developers.ts index 951c141d..012a5597 100644 --- a/src/data/developers.ts +++ b/src/data/developers.ts @@ -1,218 +1,196 @@ -import type { HeroContent, Pills, UpdateContent, ContentSection } from '../types/shared' -import blogThumbnail from "@assets/tech-blog-thumbnail.svg"; -import heroPoster from "@assets/hero-developer-poster.png"; -import developerPlayground from "@assets/developer-playground.svg"; -import astroPlugin from "@assets/logo-plugin-astro.svg"; -import reactPlugin from "@assets/logo-plugin-react.svg"; -import evelentyPlugin from "@assets/logo-plugin-11ty.png"; -import heroVideo from "@assets/animations/hero-developer.mp4"; +import type { + HeroContent, + Pills, + UpdateContent, + ContentSection, +} from '../types/shared' +import blogThumbnail from '@assets/tech-blog-thumbnail.svg' +import heroPoster from '@assets/hero-developer-poster.png' +import developerPlayground from '@assets/developer-playground.svg' +import astroPlugin from '@assets/logo-plugin-astro.svg' +import reactPlugin from '@assets/logo-plugin-react.svg' +import evelentyPlugin from '@assets/logo-plugin-11ty.png' +import heroVideo from '@assets/animations/hero-developer.mp4' export interface Plugin { - name: string, - image?: ImageMetadata, - cta: { - href: string - event?: string - text?: string - }, - desc: string, - version: string[] + name: string + image?: ImageMetadata + cta: { + href: string + event?: string + text?: string + } + desc: string + version: string[] } export const heroContent: HeroContent = { - heroTitle: "Pay the web forward", - posterImage: heroPoster, - videoSrc: heroVideo, - primaryCta: { - href: "/developers/interfaces/", - text: "Read more of the technical documentation", - event: "Developers page link - WM API" - } + heroTitle: 'Pay the web forward', + posterImage: heroPoster, + videoSrc: heroVideo, + primaryCta: { + href: '/developers/interfaces/', + text: 'Read more of the technical documentation', + event: 'Developers page link - WM API', + }, } export const playgroundContent: ContentSection = { - image: developerPlayground, - imgMetaData: { - position: "left" - }, - title: "Developer's Playground", - primaryCta: { - text: "Try the Playground", - href: "/play/", - event: "Developers page - Playground" - } + image: developerPlayground, + imgMetaData: { + position: 'left', + }, + title: "Developer's Playground", + primaryCta: { + text: 'Try the Playground', + href: '/play/', + event: 'Developers page - Playground', + }, } export const blog: UpdateContent = { - image: blogThumbnail, - title: "End-to-end testing the Web Monetization browser extension", - titleLink: "https://interledger.org/developers/blog/e2e-testing-wm-browser-extension/", - titleEvent: "Developers page - WM ext e2e testing blog", - paragraphs: [ - "End-to-end testing a browser extension can be tricky, but Playwright helps us get it right. In this post, we share how we test the Web Monetization extension—from wallet connections to micro-payments—ensuring a smooth, reliable experience for users." - ], - cta: { - text: "Read the blog", - href: "https://interledger.org/developers/blog/", - event: "Developers page link - Tech blog" - } + image: blogThumbnail, + title: 'End-to-end testing the Web Monetization browser extension', + titleLink: + 'https://interledger.org/developers/blog/e2e-testing-wm-browser-extension/', + titleEvent: 'Developers page - WM ext e2e testing blog', + paragraphs: [ + 'End-to-end testing a browser extension can be tricky, but Playwright helps us get it right. In this post, we share how we test the Web Monetization extension—from wallet connections to micro-payments—ensuring a smooth, reliable experience for users.', + ], + cta: { + text: 'Read the blog', + href: 'https://interledger.org/developers/blog/', + event: 'Developers page link - Tech blog', + }, } export const developerTags: Pills = [ - { - text: "Advance open standards." - }, - { - text: "Collaborate with the community." - }, - { - text: "Improve extensions and plugins." - }, - { - text: "Build tools that empower publishers." - } + { + text: 'Advance open standards.', + }, + { + text: 'Collaborate with the community.', + }, + { + text: 'Improve extensions and plugins.', + }, + { + text: 'Build tools that empower publishers.', + }, ] export const plugins: Plugin[] = [ - { - name: "Astro Monetization", - image: astroPlugin, - cta: { - href: "https://github.com/devcer/astro-monetization", - text: "Find out more", - event: "Developers page - Astro Monetization plugin", - }, - desc: "This Astro component simplifies the process of adding monetization links to your Astro sites.", - version: [ - "2.0" - ] - }, - { - name: "react-monetize", - image: reactPlugin, - cta: { - href: "https://github.com/guidovizoso/react-monetize", - text: "Find out more", - event: "Developers page - react-monetize plugin", - }, - desc: "Helpers and hooks to speed up your integration with Web Monetization API", - version: [ - "1.0", - "2.0" - ] - }, - { - name: "Monetize 11ty", - image: evelentyPlugin, - cta: { - href: "https://github.com/devcer/eleventy-plugin-monetization", - text: "Find out more", - event: "Developers page - Monetize 11ty plugin", - }, - desc: "An Eleventy plugin to monetize posts and site content by creating exclusive content areas", - version: [ - "1.0", - "2.0" - ] + { + name: 'Astro Monetization', + image: astroPlugin, + cta: { + href: 'https://github.com/devcer/astro-monetization', + text: 'Find out more', + event: 'Developers page - Astro Monetization plugin', + }, + desc: 'This Astro component simplifies the process of adding monetization links to your Astro sites.', + version: ['2.0'], + }, + { + name: 'react-monetize', + image: reactPlugin, + cta: { + href: 'https://github.com/guidovizoso/react-monetize', + text: 'Find out more', + event: 'Developers page - react-monetize plugin', + }, + desc: 'Helpers and hooks to speed up your integration with Web Monetization API', + version: ['1.0', '2.0'], + }, + { + name: 'Monetize 11ty', + image: evelentyPlugin, + cta: { + href: 'https://github.com/devcer/eleventy-plugin-monetization', + text: 'Find out more', + event: 'Developers page - Monetize 11ty plugin', + }, + desc: 'An Eleventy plugin to monetize posts and site content by creating exclusive content areas', + version: ['1.0', '2.0'], + }, + { + name: 'Hugo Web Monetization Component', + cta: { + href: 'https://github.com/sabinebertram/hugo-webmonetization-component', }, - { - name: "Hugo Web Monetization Component", - cta: { - href: "https://github.com/sabinebertram/hugo-webmonetization-component" - }, - desc: "Theme component that enables Web Monetization on your entire Hugo website", - version: [ - "1.0" - ] + desc: 'Theme component that enables Web Monetization on your entire Hugo website', + version: ['1.0'], + }, + { + name: 'gridsome-plugin-monetization', + cta: { + href: 'https://github.com/Sergix/gridsome-plugin-monetization', }, - { - name: "gridsome-plugin-monetization", - cta: { - href: "https://github.com/Sergix/gridsome-plugin-monetization" - }, - desc: "Web Monetization plugin for Gridsome", - version: [ - "1.0" - ] + desc: 'Web Monetization plugin for Gridsome', + version: ['1.0'], + }, + { + name: 'gatsby-plugin-monetization', + cta: { + href: 'https://github.com/mrmuhammadali/gatsby-plugin-monetization', }, - { - name: "gatsby-plugin-monetization", - cta: { - href: "https://github.com/mrmuhammadali/gatsby-plugin-monetization" - }, - desc: "A Gatsby plugin for react-monetize to speed up your integration with Web Monetization", - version: [ - "1.0" - ] + desc: 'A Gatsby plugin for react-monetize to speed up your integration with Web Monetization', + version: ['1.0'], + }, + { + name: 'ngx-monetization', + cta: { + href: 'https://github.com/CDDelta/ngx-monetization', }, - { - name: "ngx-monetization", - cta: { - href: "https://github.com/CDDelta/ngx-monetization" - }, - desc: "Web Monetization API for Angular", - version: [ - "1.0" - ] + desc: 'Web Monetization API for Angular', + version: ['1.0'], + }, + { + name: 'Vuepress Plugin Web-Monetization', + cta: { + href: 'https://github.com/spekulatius/vuepress-plugin-web-monetization', }, - { - name: "Vuepress Plugin Web-Monetization", - cta: { - href: "https://github.com/spekulatius/vuepress-plugin-web-monetization" - }, - desc: "Adds a Web Monetization meta tag to your VuePress website", - version: [ - "1.0" - ] + desc: 'Adds a Web Monetization meta tag to your VuePress website', + version: ['1.0'], + }, + { + name: 'Tessy', + cta: { + href: 'https://github.com/VladimirMikulic/tessy', }, - { - name: "Tessy", - cta: { - href: "https://github.com/VladimirMikulic/tessy" - }, - desc: "Advanced Web Monetization testing library with powerful declarative API", - version: [ - "1.0" - ] + desc: 'Advanced Web Monetization testing library with powerful declarative API', + version: ['1.0'], + }, + { + name: 'svelte-monetization', + cta: { + href: 'https://github.com/sorxrob/svelte-monetization', }, - { - name: "svelte-monetization", - cta: { - href: "https://github.com/sorxrob/svelte-monetization" - }, - desc: "A minimal and lightweight wrapper for the Web Monetization API", - version: [ - "1.0" - ] + desc: 'A minimal and lightweight wrapper for the Web Monetization API', + version: ['1.0'], + }, + { + name: 'Moodle Webmonetization Module', + cta: { + href: 'https://github.com/andrewhancox/moodle-local_webmonetization', }, - { - name: "Moodle Webmonetization Module", - cta: { - href: "https://github.com/andrewhancox/moodle-local_webmonetization" - }, - desc: "A plugin for adding a web monetization meta tag to your Moodle site", - version: [ - "1.0" - ] + desc: 'A plugin for adding a web monetization meta tag to your Moodle site', + version: ['1.0'], + }, + { + name: 'Jekyll + Webmonetization', + cta: { + href: 'https://github.com/philnash/jekyll-web_monetization', }, - { - name: "Jekyll + Webmonetization", - cta: { - href: "https://github.com/philnash/jekyll-web_monetization" - }, - desc: "A Jekyll plugin for adding a Web Monetization meta tag to your site", - version: [ - "1.0" - ] + desc: 'A Jekyll plugin for adding a Web Monetization meta tag to your site', + version: ['1.0'], + }, + { + name: 'Pipe Web Monetization', + cta: { + href: 'https://www.pipewebmonetization.com/', }, - { - name: "Pipe Web Monetization", - cta: { - href: "https://www.pipewebmonetization.com/" - }, - desc: "Web monetize your WordPress website and access your revenue via an analytics dashboard", - version: [ - "1.0" - ] - } + desc: 'Web monetize your WordPress website and access your revenue via an analytics dashboard', + version: ['1.0'], + }, ] diff --git a/src/data/home.ts b/src/data/home.ts index 7a37b2b8..412bb2b0 100644 --- a/src/data/home.ts +++ b/src/data/home.ts @@ -1,83 +1,84 @@ import type { UpdateContent } from '../types/shared' -import interledgerWallet from "@assets/logo-wallet-interledger-wallet.svg"; -import chimoneyWallet from "@assets/logo-wallet-chimoney.svg"; -import gateHubWallet from "@assets/logo-wallet-gatehub.svg"; -import wmLaunch from "@assets/wm-launch-feature.svg"; -import wmSummit from "@assets/wm-summit.png"; -import wmHackathon from "@assets/wm-hackathon.png"; +import interledgerWallet from '@assets/logo-wallet-interledger-wallet.svg' +import chimoneyWallet from '@assets/logo-wallet-chimoney.svg' +import gateHubWallet from '@assets/logo-wallet-gatehub.svg' +import wmLaunch from '@assets/wm-launch-feature.svg' +import wmSummit from '@assets/wm-summit.png' +import wmHackathon from '@assets/wm-hackathon.png' export interface Wallet { - name: string, - image: ImageMetadata, + name: string + image: ImageMetadata link: string } export const wallets: Wallet[] = [ { - name: "Interledger Wallet", + name: 'Interledger Wallet', image: interledgerWallet, - link: "https://interledger.app/" + link: 'https://interledger.app/', }, { - name: "Chimoney", + name: 'Chimoney', image: chimoneyWallet, - link: "https://chimoney.app/?ref=webmonetization.org" + link: 'https://chimoney.app/?ref=webmonetization.org', }, { - name: "GateHub", + name: 'GateHub', image: gateHubWallet, - link: "https://gatehub.net/?ref=webmonetization.org" - } + link: 'https://gatehub.net/?ref=webmonetization.org', + }, ] export const updates: UpdateContent[] = [ { image: wmSummit, - title: "Interledger Summit - Mexico City", + title: 'Interledger Summit - Mexico City', subtitles: { - tag: "Summit", - date: "5-6 Nov 2025" + tag: 'Summit', + date: '5-6 Nov 2025', }, paragraphs: [ - "The Interledger Summit is a global gathering of technologists, policy makers, advocates and artists who believe in open financial infrastructure. It bridges the gap between policy, technology and community and creates a vibrant environment for new ideas, collaborations and celebration of ideas." + 'The Interledger Summit is a global gathering of technologists, policy makers, advocates and artists who believe in open financial infrastructure. It bridges the gap between policy, technology and community and creates a vibrant environment for new ideas, collaborations and celebration of ideas.', ], cta: { - text: "Visit the summit website", - href: "https://interledger.org/summit", - event: "Home page - Update Summit" - } + text: 'Visit the summit website', + href: 'https://interledger.org/summit', + event: 'Home page - Update Summit', + }, }, { image: wmHackathon, - title: "Interledger Hackathon - Mexico City", + title: 'Interledger Hackathon - Mexico City', subtitles: { - tag: "Hackathon", - date: "8-9 Nov 2025" + tag: 'Hackathon', + date: '8-9 Nov 2025', }, paragraphs: [ - "Join us in Mexico City on November 8–9 for the annual Interledger Hackathon! Explore the power of the Interledger Open Payments API and build innovative solutions that simplify cross-border payments, enhance financial inclusion, and automate financial workflows." + 'Join us in Mexico City on November 8–9 for the annual Interledger Hackathon! Explore the power of the Interledger Open Payments API and build innovative solutions that simplify cross-border payments, enhance financial inclusion, and automate financial workflows.', ], cta: { - text: "Learn more about the hackathon", - href: "https://interledger.org/summit/hackathon", - event: "Home page - Update Hackathon" - } + text: 'Learn more about the hackathon', + href: 'https://interledger.org/summit/hackathon', + event: 'Home page - Update Hackathon', + }, }, { image: wmLaunch, - title: "Announcing the Interledger Foundation’s Web Monetization Extension Beta Release", + title: + 'Announcing the Interledger Foundation’s Web Monetization Extension Beta Release', subtitles: { - date: "24 Mar 2025", - author: "Rabeb Othmani" + date: '24 Mar 2025', + author: 'Rabeb Othmani', }, paragraphs: [ - "As the digital content economy grows, content creators, publishers, and users alike are looking for more flexible, intuitive ways to connect and transact.", - "While ads, subscriptions, and paywalls remain essential tools, the future is about expanding possibilities and empowering choice." + 'As the digital content economy grows, content creators, publishers, and users alike are looking for more flexible, intuitive ways to connect and transact.', + 'While ads, subscriptions, and paywalls remain essential tools, the future is about expanding possibilities and empowering choice.', ], cta: { - text: "Read the full article", - href: "https://interledger.org/news/announcing-interledger-foundations-web-monetization-extension-beta-release", - event: "Home page - Update Announcing WM extension" - } - } -] \ No newline at end of file + text: 'Read the full article', + href: 'https://interledger.org/news/announcing-interledger-foundations-web-monetization-extension-beta-release', + event: 'Home page - Update Announcing WM extension', + }, + }, +] diff --git a/src/data/nav.ts b/src/data/nav.ts index 0220f464..f08b759b 100644 --- a/src/data/nav.ts +++ b/src/data/nav.ts @@ -4,63 +4,67 @@ import publisherIconActive from '@assets/dropdown-publisher-active.png?inline' import supporterIconInactive from '@assets/dropdown-supporter-inactive.png?inline' import supporterIconActive from '@assets/dropdown-supporter-active.png?inline' -export const TOOL_LABEL_KEYS = ['nav.pub-tools', 'nav.supp-tools', 'nav.dev-tools'] as const; -export type ToolLabelKey = typeof TOOL_LABEL_KEYS[number]; +export const TOOL_LABEL_KEYS = [ + 'nav.pub-tools', + 'nav.supp-tools', + 'nav.dev-tools', +] as const +export type ToolLabelKey = (typeof TOOL_LABEL_KEYS)[number] interface ToolsSubmenuItem { - image: { - src: string, - width: number, - height: number - }, - imageInteractive: { - src: string - }, - translationKey: ToolLabelKey, - path: string, - event: string + image: { + src: string + width: number + height: number + } + imageInteractive: { + src: string + } + translationKey: ToolLabelKey + path: string + event: string } export type ToolsSubmenu = Array export const toolsSubmenu: ToolsSubmenu = [ - { - image: { - src: publisherIconInactive, - width: 460, - height: 460 - }, - imageInteractive: { - src: publisherIconActive - }, - translationKey: 'nav.pub-tools', - path: '/publishers', - event: 'Nav link - Publishers' + { + image: { + src: publisherIconInactive, + width: 460, + height: 460, + }, + imageInteractive: { + src: publisherIconActive, }, - { - image: { - src: supporterIconInactive, - width: 460, - height: 460 - }, - imageInteractive: { - src: supporterIconActive - }, - translationKey: 'nav.supp-tools', - path: '/supporters', - event: 'Nav link - Supporters' + translationKey: 'nav.pub-tools', + path: '/publishers', + event: 'Nav link - Publishers', + }, + { + image: { + src: supporterIconInactive, + width: 460, + height: 460, + }, + imageInteractive: { + src: supporterIconActive, + }, + translationKey: 'nav.supp-tools', + path: '/supporters', + event: 'Nav link - Supporters', + }, + { + image: { + src: developerIcon, + width: 460, + height: 460, + }, + imageInteractive: { + src: developerIcon, }, - { - image: { - src: developerIcon, - width: 460, - height: 460 - }, - imageInteractive: { - src: developerIcon - }, - translationKey: 'nav.dev-tools', - path: '/developers', - event: 'Nav link - Developers' - } + translationKey: 'nav.dev-tools', + path: '/developers', + event: 'Nav link - Developers', + }, ] diff --git a/src/data/publishers.ts b/src/data/publishers.ts index 00104427..0271e096 100644 --- a/src/data/publishers.ts +++ b/src/data/publishers.ts @@ -1,89 +1,94 @@ -import type { ContentSection, HeroContent, Pills, HowItWorks } from '../types/shared' -import heroPoster from "@assets/hero-publisher-poster.png"; -import linkTagGenerator from "@assets/link-tag-generator.svg"; -import toolsOverview from "@assets/tools-overview.png"; -import wordPressLogo from "@assets/wordpress.svg"; -import howItWorksHorizontal from "@assets/how-it works-publishers-horizontal.png" -import howItWorksVertical from "@assets/how-it-works-publishers-vertical.png" -import heroVideo from "@assets/animations/hero-publisher.mp4"; +import type { + ContentSection, + HeroContent, + Pills, + HowItWorks, +} from '../types/shared' +import heroPoster from '@assets/hero-publisher-poster.png' +import linkTagGenerator from '@assets/link-tag-generator.svg' +import toolsOverview from '@assets/tools-overview.png' +import wordPressLogo from '@assets/wordpress.svg' +import howItWorksHorizontal from '@assets/how-it works-publishers-horizontal.png' +import howItWorksVertical from '@assets/how-it-works-publishers-vertical.png' +import heroVideo from '@assets/animations/hero-publisher.mp4' export const heroContent: HeroContent = { - heroTitle: "Engagement equals income, instantly", - posterImage: heroPoster, - videoSrc: heroVideo, - primaryCta: { - href: "/tools/", - text: "Get to the publisher's tools", - event: "Publishers page link - Tools" - } + heroTitle: 'Engagement equals income, instantly', + posterImage: heroPoster, + videoSrc: heroVideo, + primaryCta: { + href: '/tools/', + text: "Get to the publisher's tools", + event: 'Publishers page link - Tools', + }, } export const publisherTags: Pills = [ - { - text: "Get paid in real time without disrupting the user experience." - }, - { - text: "Give your audiences a seamless way to support you." - }, - { - text: "Add a new revenue stream without changing your existing setup." - } + { + text: 'Get paid in real time without disrupting the user experience.', + }, + { + text: 'Give your audiences a seamless way to support you.', + }, + { + text: 'Add a new revenue stream without changing your existing setup.', + }, ] export const walletConnectionContent: ContentSection = { - image: linkTagGenerator, - imgMetaData: { - position: "right" - }, - title: "Connect your website to your wallet and earn in real time", - primaryCta: { - text: "Generate your link and start earning", - href: "/tools/link-tag/", - event: "Publishers page - Link tag generator" - }, - secondaryCta: { - text: "See the documentation", - href: "/developers/overview/", - event: "Publishers page - Developer docs" - } + image: linkTagGenerator, + imgMetaData: { + position: 'right', + }, + title: 'Connect your website to your wallet and earn in real time', + primaryCta: { + text: 'Generate your link and start earning', + href: '/tools/link-tag/', + event: 'Publishers page - Link tag generator', + }, + secondaryCta: { + text: 'See the documentation', + href: '/developers/overview/', + event: 'Publishers page - Developer docs', + }, } export const toolsContent: ContentSection = { - image: toolsOverview, - imgMetaData: { - position: "left" - }, - title: "Tell your audience about Web Monetization", - primaryCta: { - text: "Browse the tools", - href: "/tools/", - event: "Publishers page - Tools page" - }, - secondaryCta: { - text: "See the documentation", - href: "/developers/tools/", - event: "Publishers page - Developer tools docs" - } + image: toolsOverview, + imgMetaData: { + position: 'left', + }, + title: 'Tell your audience about Web Monetization', + primaryCta: { + text: 'Browse the tools', + href: '/tools/', + event: 'Publishers page - Tools page', + }, + secondaryCta: { + text: 'See the documentation', + href: '/developers/tools/', + event: 'Publishers page - Developer tools docs', + }, } export const wordPressPluginContent: ContentSection = { - image: wordPressLogo, - imgMetaData: { - position: "right", - padding: "20px 40px" - }, - title: "Add Web Monetization to WordPress. Fast, Free, Private.", - primaryCta: { - text: "Get the WordPress plugin", - href: "", - event: "Publishers page - WP plugin" - }, - secondaryCta: { - text: "See the documentation", - href: "/developers/overview/", - event: "Publishers page - Developer docs" - } + image: wordPressLogo, + imgMetaData: { + position: 'right', + padding: '20px 40px', + }, + title: 'Add Web Monetization to WordPress. Fast, Free, Private.', + primaryCta: { + text: 'Get the WordPress plugin', + href: '', + event: 'Publishers page - WP plugin', + }, + secondaryCta: { + text: 'See the documentation', + href: '/developers/overview/', + event: 'Publishers page - Developer docs', + }, } export const HowItWorksPublishers: HowItWorks = { - heading: 'How it works', - imageHorizontal: howItWorksHorizontal, - imageVertical: howItWorksVertical, - alt: 'Diagram showing the flow of a Web Monetization payment: from content consumer through their digital wallet, as directed by the Web Monetization extension, to the publisher’s wallet, and finally to the publisher.', -} \ No newline at end of file + heading: 'How it works', + imageHorizontal: howItWorksHorizontal, + imageVertical: howItWorksVertical, + alt: 'Diagram showing the flow of a Web Monetization payment: from content consumer through their digital wallet, as directed by the Web Monetization extension, to the publisher’s wallet, and finally to the publisher.', +} diff --git a/src/data/supporters.ts b/src/data/supporters.ts index f585898b..a7a8ef68 100644 --- a/src/data/supporters.ts +++ b/src/data/supporters.ts @@ -1,41 +1,41 @@ import type { HeroContent, Pills, HowItWorks } from '../types/shared' -import heroPoster from "@assets/hero-supporter-poster.png"; -import howItWorksHorizontal from "@assets/how-it-works-supporters-horizontal.png" -import howItWorksVertical from "@assets/how-it-works-supporters-vertical.png" -import heroVideo from "@assets/animations/hero-supporter.mp4"; +import heroPoster from '@assets/hero-supporter-poster.png' +import howItWorksHorizontal from '@assets/how-it-works-supporters-horizontal.png' +import howItWorksVertical from '@assets/how-it-works-supporters-vertical.png' +import heroVideo from '@assets/animations/hero-supporter.mp4' import WalletIcon from '@assets/wallet.svg' export const heroContent: HeroContent = { - heroTitle: "Support the content you love, effortlessly", - posterImage: heroPoster, - videoSrc: heroVideo, - primaryCta: { - href: "/supporters/get-started/", - text: "Install the Web Monetization Browser Extension", - event: "Supporters page link - Extension" - }, - secondaryCta: { - href: "/wallets/", - text: "Set up a wallet", - icon: WalletIcon, - event: "Supporters page link - Wallets" - } + heroTitle: 'Support the content you love, effortlessly', + posterImage: heroPoster, + videoSrc: heroVideo, + primaryCta: { + href: '/supporters/get-started/', + text: 'Install the Web Monetization Browser Extension', + event: 'Supporters page link - Extension', + }, + secondaryCta: { + href: '/wallets/', + text: 'Set up a wallet', + icon: WalletIcon, + event: 'Supporters page link - Wallets', + }, } export const supporterTags: Pills = [ - { - text: "Send your support straight to the source." - }, - { - text: "Keep your data private while making a real difference." - }, - { - text: "Support freely, with any amount, across multiple currencies." - } + { + text: 'Send your support straight to the source.', + }, + { + text: 'Keep your data private while making a real difference.', + }, + { + text: 'Support freely, with any amount, across multiple currencies.', + }, ] export const HowItWorksSupporters: HowItWorks = { - heading: 'How it works', - imageHorizontal: howItWorksHorizontal, - imageVertical: howItWorksVertical, - alt: 'Diagram showing the flow of a Web Monetization payment: from content supporter through their digital wallet, as directed by the Web Monetization extension, to the publisher’s wallet, and finally to the publisher.', + heading: 'How it works', + imageHorizontal: howItWorksHorizontal, + imageVertical: howItWorksVertical, + alt: 'Diagram showing the flow of a Web Monetization payment: from content supporter through their digital wallet, as directed by the Web Monetization extension, to the publisher’s wallet, and finally to the publisher.', } diff --git a/src/i18n/ui.ts b/src/i18n/ui.ts index 1e57ea45..8230778d 100644 --- a/src/i18n/ui.ts +++ b/src/i18n/ui.ts @@ -21,9 +21,11 @@ export const ui = { 'pages.developers.description': 'Help shape the future of the web with the Web Monetization API and Open Payments.', 'pages.play.title': 'Playground', - 'pages.play.description': 'The Web Monetization Playground is an interactive environment that shows how Web Monetization works under the hood', - 'pages.faq.title': 'FAQ’s | Web Monetization', - 'pages.faq.description': 'Welcome to the Web Monetization FAQ, your go-to resource for understanding how Web Monetization works, how to get started, and how to make the most of it.', + 'pages.play.description': + 'The Web Monetization Playground is an interactive environment that shows how Web Monetization works under the hood', + 'pages.faq.title': 'FAQ’s | Web Monetization', + 'pages.faq.description': + 'Welcome to the Web Monetization FAQ, your go-to resource for understanding how Web Monetization works, how to get started, and how to make the most of it.', 'nav.tools': 'Tools', 'nav.technical': 'Technical', 'nav.documentation': 'Documentation', diff --git a/src/partials/link-element-cont-payments.mdx b/src/partials/link-element-cont-payments.mdx index dcdce398..04de3791 100644 --- a/src/partials/link-element-cont-payments.mdx +++ b/src/partials/link-element-cont-payments.mdx @@ -1,8 +1,8 @@ If your visitor is sending continuous payments, the payments will continue for as long as your web monetized page is active and in view. Continuous payments stop if your visitor: -* Disables the extension -* Disables continuous payments within the extension’s settings -* Minimizes their browser -* Changes focus away from your site/switches to a different tab -* Closes your site or their browser -* Spends all of their budget +- Disables the extension +- Disables continuous payments within the extension’s settings +- Minimizes their browser +- Changes focus away from your site/switches to a different tab +- Closes your site or their browser +- Spends all of their budget diff --git a/src/partials/link-element-how-agent.mdx b/src/partials/link-element-how-agent.mdx index 96b7f5b8..ebb3db09 100644 --- a/src/partials/link-element-how-agent.mdx +++ b/src/partials/link-element-how-agent.mdx @@ -21,4 +21,4 @@ Until Web Monetization agents are natively built into web browsers, an agent mus - \ No newline at end of file + diff --git a/src/partials/link-element-how-html.mdx b/src/partials/link-element-how-html.mdx index 11be2392..35d0b7c7 100644 --- a/src/partials/link-element-how-html.mdx +++ b/src/partials/link-element-how-html.mdx @@ -2,4 +2,4 @@ import { LinkOut } from '@interledger/docs-design-system' The HTML DOM API's `HTMLLinkElement` interface defines how the `` element functions. The `` element is what allows you to link your HTML page to a resource. -The two most recognizable `HTMLLinkElement` properties are `href` and `rel`. The `href` property defines the URL to the resource. The `rel` property indicates the type of link, or relationship, the resource has to the current page. \ No newline at end of file +The two most recognizable `HTMLLinkElement` properties are `href` and `rel`. The `href` property defines the URL to the resource. The `rel` property indicates the type of link, or relationship, the resource has to the current page. diff --git a/src/partials/link-element-how-rel.mdx b/src/partials/link-element-how-rel.mdx index f5ce3e2e..a0251614 100644 --- a/src/partials/link-element-how-rel.mdx +++ b/src/partials/link-element-how-rel.mdx @@ -1,3 +1,3 @@ Browsers already know how to interpret certain `rel` values because of web standards. One such standard is `stylesheet`. When a browser loads a page that contains ``, the browser automatically knows to import a style sheet from the given URL. -The `monetization` link type, however, isn't a standard yet. Major web browsers don't automatically know what to do when encountering this link type in a page. Until `monetization` becomes a standard, browsers must rely on a Web Monetization agent, like the one built into Interledger Foundation's [Web Monetization extension](/supporters/get-started). \ No newline at end of file +The `monetization` link type, however, isn't a standard yet. Major web browsers don't automatically know what to do when encountering this link type in a page. Until `monetization` becomes a standard, browsers must rely on a Web Monetization agent, like the one built into Interledger Foundation's [Web Monetization extension](/supporters/get-started). diff --git a/src/partials/link-element-iframes.mdx b/src/partials/link-element-iframes.mdx index 072362da..8331119b 100644 --- a/src/partials/link-element-iframes.mdx +++ b/src/partials/link-element-iframes.mdx @@ -2,9 +2,9 @@ import { LinkOut } from '@interledger/docs-design-system' Nested browsing contexts (iframes) can contain monetization `` elements, but your site visitor’s Web Monetization agent determines how iframes are monetized. A few examples of how a Web Monetization agent can monetize iframes include: -* Splitting payments evenly between all monetization links within both the parent and the iframe -* Splitting payments evenly between all monetization links in the parent and the first monetization link it finds in the iframe’s ``, while ignoring any other monetization links in the iframe - :::note - This is the approach used in the Interledger Foundation’s extension. - ::: -* Sending payments to the first monetization link it finds in the parent browsing context and ignoring all other monetization links in the parent and the iframe \ No newline at end of file +- Splitting payments evenly between all monetization links within both the parent and the iframe +- Splitting payments evenly between all monetization links in the parent and the first monetization link it finds in the iframe’s ``, while ignoring any other monetization links in the iframe + :::note + This is the approach used in the Interledger Foundation’s extension. + ::: +- Sending payments to the first monetization link it finds in the parent browsing context and ignoring all other monetization links in the parent and the iframe diff --git a/src/partials/link-element-media.mdx b/src/partials/link-element-media.mdx index 07fe0c28..b549124f 100644 --- a/src/partials/link-element-media.mdx +++ b/src/partials/link-element-media.mdx @@ -24,4 +24,4 @@ The following HTML elements can be web monetized by adding the `` element ``` - \ No newline at end of file + diff --git a/src/partials/link-element-multilink.mdx b/src/partials/link-element-multilink.mdx index 16f8226f..1718f87c 100644 --- a/src/partials/link-element-multilink.mdx +++ b/src/partials/link-element-multilink.mdx @@ -2,11 +2,11 @@ import { LinkOut } from '@interledger/docs-design-system' An HTML page can contain multiple monetization `` elements, but your site visitor’s Web Monetization agent could be designed to handle multiple links in a particular way. For example, an agent could: -* Split payments evenly between all links -* Split payments between the first few links it finds -* Send the amount only to the first link it finds and ignore all others +- Split payments evenly between all links +- Split payments between the first few links it finds +- Send the amount only to the first link it finds and ignore all others -The Web Monetization agent built into the Interledger Foundation’s extension splits payments evenly between all links, even if the same wallet address is used in multiple links. +The Web Monetization agent built into the Interledger Foundation’s extension splits payments evenly between all links, even if the same wallet address is used in multiple links. :::tip[Recommendation] We recommend other extension developers follow this approach. diff --git a/src/partials/link-element-overview.mdx b/src/partials/link-element-overview.mdx index db1da1da..af81e617 100644 --- a/src/partials/link-element-overview.mdx +++ b/src/partials/link-element-overview.mdx @@ -1 +1 @@ -From a content owner/developer perspective, the monetization `` element is one of the two key pieces to web monetizing an HTML page. The second piece is a wallet address. \ No newline at end of file +From a content owner/developer perspective, the monetization `` element is one of the two key pieces to web monetizing an HTML page. The second piece is a wallet address. diff --git a/src/partials/link-element-placement.mdx b/src/partials/link-element-placement.mdx index 6fc5dcde..42f001a3 100644 --- a/src/partials/link-element-placement.mdx +++ b/src/partials/link-element-placement.mdx @@ -1 +1 @@ -A monetization `` is `body-ok`, meaning it’s allowed in your page’s `` and/or ``. \ No newline at end of file +A monetization `` is `body-ok`, meaning it’s allowed in your page’s `` and/or ``. diff --git a/src/partials/link-element-prereqs.mdx b/src/partials/link-element-prereqs.mdx index bbd459cc..6133a33f 100644 --- a/src/partials/link-element-prereqs.mdx +++ b/src/partials/link-element-prereqs.mdx @@ -2,6 +2,6 @@ import { LinkOut } from '@interledger/docs-design-system' To web monetize an HTML page: -* You must have an account with a [compatible wallet provider](/wallets) -* You must have the wallet address from your wallet provider -* Your document must be served over HTTPS +- You must have an account with a [compatible wallet provider](/wallets) +- You must have the wallet address from your wallet provider +- Your document must be served over HTTPS diff --git a/src/partials/link-element-syntax.mdx b/src/partials/link-element-syntax.mdx index ee454699..16c58309 100644 --- a/src/partials/link-element-syntax.mdx +++ b/src/partials/link-element-syntax.mdx @@ -2,11 +2,11 @@ ``` -* The `rel` attribute is always `monetization` -* The `href` attribute equals your wallet address +- The `rel` attribute is always `monetization` +- The `href` attribute equals your wallet address For example: ```html wrap -``` \ No newline at end of file +``` diff --git a/src/styles/webm.css b/src/styles/webm.css index 6c37b3c9..294083e8 100644 --- a/src/styles/webm.css +++ b/src/styles/webm.css @@ -34,9 +34,11 @@ --font-weight-bold: 700; --font-caption: var(--font-weight-regular) 0.75rem/1rem var(--font-base); - --font-small-regular: var(--font-weight-regular) 0.875rem/1.25rem var(--font-base); + --font-small-regular: var(--font-weight-regular) 0.875rem/1.25rem + var(--font-base); --font-small-bold: var(--font-weight-bold) 0.875rem/1.25rem var(--font-base); - --font-standard-regular: var(--font-weight-regular) 1rem/1.5rem var(--font-base); + --font-standard-regular: var(--font-weight-regular) 1rem/1.5rem + var(--font-base); --font-standard-bold: var(--font-weight-bold) 1rem/1.5rem var(--font-base); --font-h6: var(--font-weight-bold) 1.125rem/1.625rem var(--font-base); --font-h5: var(--font-weight-regular) 1.25rem/1.75rem var(--font-base); @@ -47,56 +49,56 @@ --font-display-2: var(--font-weight-medium) 3.75rem/4.375rem var(--font-base); --font-display-1: var(--font-weight-bold) 4.5rem/5rem var(--font-base); - --color-green-50: #DBE9E7; - --color-green-100: #ABE4DF; - --color-green-300: #56B7B5; - --color-green-600: #27797A; - --color-green-800: #204D4F; - - --color-mint-50: #F2FBF9; - --color-mint-100: #D4F3EB; - --color-mint-300: #98E1D0; - --color-mint-600: #4AB7A5; - --color-mint-800: #247D71; - - --color-blue-50: #F6F8FA; - --color-blue-100: #D0DDED; - --color-blue-300: #A3BEDC; - --color-blue-600: #5A77B6; + --color-green-50: #dbe9e7; + --color-green-100: #abe4df; + --color-green-300: #56b7b5; + --color-green-600: #27797a; + --color-green-800: #204d4f; + + --color-mint-50: #f2fbf9; + --color-mint-100: #d4f3eb; + --color-mint-300: #98e1d0; + --color-mint-600: #4ab7a5; + --color-mint-800: #247d71; + + --color-blue-50: #f6f8fa; + --color-blue-100: #d0dded; + --color-blue-300: #a3bedc; + --color-blue-600: #5a77b6; --color-blue-800: #455588; - --color-orange-50: #FFF6ED; - --color-orange-100: #FFD3A8; - --color-orange-300: #FF9852; - --color-orange-600: #EF4C07; - --color-orange-800: #9D2D0F; - - --color-pink-50: #FEF1F5; - --color-pink-100: #FEE5EE; - --color-pink-300: #FFC8DC; - --color-pink-600: #FF6698; - --color-pink-800: #EB174A; - - --color-red-50: #FFF1F2; - --color-red-100: #FEE5EE; - --color-red-300: #FF7A7F; - --color-red-600: #E51D25; - --color-red-800: #A01419; - - --color-purple-50: #F3F4FA; - --color-purple-100: #A7A6D3; - --color-purple-300: #7469A8; - --color-purple-600: #5B5380; - --color-purple-800: #2D2A3C; - - --color-silver-50: #F7F7F7; - --color-silver-100: #EFEFEF; - --color-silver-200: #DFDFDF; - --color-silver-300: #C9C9C9; - --color-silver-400: #ADADAD; + --color-orange-50: #fff6ed; + --color-orange-100: #ffd3a8; + --color-orange-300: #ff9852; + --color-orange-600: #ef4c07; + --color-orange-800: #9d2d0f; + + --color-pink-50: #fef1f5; + --color-pink-100: #fee5ee; + --color-pink-300: #ffc8dc; + --color-pink-600: #ff6698; + --color-pink-800: #eb174a; + + --color-red-50: #fff1f2; + --color-red-100: #fee5ee; + --color-red-300: #ff7a7f; + --color-red-600: #e51d25; + --color-red-800: #a01419; + + --color-purple-50: #f3f4fa; + --color-purple-100: #a7a6d3; + --color-purple-300: #7469a8; + --color-purple-600: #5b5380; + --color-purple-800: #2d2a3c; + + --color-silver-50: #f7f7f7; + --color-silver-100: #efefef; + --color-silver-200: #dfdfdf; + --color-silver-300: #c9c9c9; + --color-silver-400: #adadad; --color-silver-500: #999999; --color-silver-600: #888888; - --color-silver-700: #7B7B7B; + --color-silver-700: #7b7b7b; --color-silver-800: #676767; --color-silver-900: #545454; --color-silver-950: #363636; @@ -104,9 +106,8 @@ --color-black: #000; --color-white: #fff; - --gradient-3-start: #009877; - --gradient-3-stop: #50D098; - + --gradient-3-start: #009877; + --gradient-3-stop: #50d098; --default-font-color: var(--color-silver-950); --inactive-font-color: var(--color-silver-800); @@ -139,7 +140,7 @@ --border-color: var(--color-silver-200); - --background-color: #F6F8FA; + --background-color: #f6f8fa; /* Tools styling colors */ --button-tools-primary-color: var(--color-green-300); @@ -164,21 +165,24 @@ --sl-color-gray-5: hsl(222, 11%, 23%); --sl-color-gray-6: hsl(222, 13%, 16%); --sl-color-black: hsl(223, 13%, 10%); - --sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, 0.06), - 0px 2px 1px hsla(0, 0%, 0%, 0.06); + --sl-shadow-sm: + 0px 1px 1px hsla(0, 0%, 0%, 0.06), 0px 2px 1px hsla(0, 0%, 0%, 0.06); --sl-color-red-high: hsl(339, 80%, 30%); --sl-color-green-high: hsl(101, 80%, 22%); - --sl-font-system: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, - 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, + --sl-font-system: + ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', + Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --sl-font-system-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, - 'Liberation Mono', 'Courier New', monospace; + --sl-font-system-mono: + ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', + 'Courier New', monospace; --__sl-font: var(--sl-font, ''), var(--sl-font-system); --__sl-font-mono: var(--sl-font-mono, ''), var(--sl-font-system-mono); - --font-base: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + --font-base: + 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; } @@ -260,31 +264,38 @@ p.small-bold { font: var(--font-small-bold); } -p.bold, a.bold { +p.bold, +a.bold { font: var(--font-standard-bold); } -h1, .font-h1 { +h1, +.font-h1 { font: var(--font-h1); } -h2, .font-h2 { +h2, +.font-h2 { font: var(--font-h2); } -h3, .font-h3 { +h3, +.font-h3 { font: var(--font-h3); } -h4, .font-h4 { +h4, +.font-h4 { font: var(--font-h4); } -h5, .font-h5 { +h5, +.font-h5 { font: var(--font-h5); } -h6, .font-h6 { +h6, +.font-h6 { font: var(--font-h6); } @@ -381,7 +392,8 @@ input:not([type='submit']):not([type='file']):focus { color: var(--button-primary-color); } -.primary.btn:hover, .primary.btn:focus { +.primary.btn:hover, +.primary.btn:focus { background-color: var(--button-primary-bg-focus); color: var(--button-primary-color); } @@ -391,7 +403,8 @@ input:not([type='submit']):not([type='file']):focus { border: 1px solid var(--button-secondary-border); } -.secondary.btn:hover, .secondary.btn:focus { +.secondary.btn:hover, +.secondary.btn:focus { color: var(--button-secondary-color-focus); border: 1px solid var(--button-secondary-border-focus); } @@ -403,7 +416,8 @@ input:not([type='submit']):not([type='file']):focus { background-color: transparent; } -.ghost.btn:hover, .ghost.btn:focus-visible { +.ghost.btn:hover, +.ghost.btn:focus-visible { color: var(--button-hover-color); background-color: var(--surface-hover-color); } @@ -509,7 +523,7 @@ tbody tr:last-of-type td:last-child { /* Tools page styling */ body.home-page { - background-image: url("../assets/hero-gradient-background.svg"); + background-image: url('../assets/hero-gradient-background.svg'); } .tools-style input:not([type='submit']):not([type='file']) { diff --git a/src/types/shared.ts b/src/types/shared.ts index ddbf3859..744084fd 100644 --- a/src/types/shared.ts +++ b/src/types/shared.ts @@ -1,4 +1,4 @@ -import type { ImageMetadata } from "astro" +import type { ImageMetadata } from 'astro' export interface CTA { text: string @@ -22,29 +22,29 @@ export interface UpdateContent { } export interface HeroContent { - heroTitle: string, - posterImage: ImageMetadata, - videoSrc: string, - primaryCta: CTA, + heroTitle: string + posterImage: ImageMetadata + videoSrc: string + primaryCta: CTA secondaryCta?: CTA } export type Pills = Array<{ text: string }> export interface ContentSection { - image: ImageMetadata, + image: ImageMetadata imgMetaData: { - position: "right" | "left", - padding?: string, - }, - title: string, - primaryCta: CTA, + position: 'right' | 'left' + padding?: string + } + title: string + primaryCta: CTA secondaryCta?: CTA } export interface HowItWorks { heading: string - imageHorizontal: ImageMetadata, - imageVertical: ImageMetadata, - alt: string, + imageHorizontal: ImageMetadata + imageVertical: ImageMetadata + alt: string }