diff --git a/packages/repl-sdk/package.json b/packages/repl-sdk/package.json index fc2e0ded7..c661731d0 100644 --- a/packages/repl-sdk/package.json +++ b/packages/repl-sdk/package.json @@ -41,6 +41,7 @@ ], "license": "MIT", "devDependencies": { + "@babel/plugin-proposal-decorators": "^7.28.6", "@nullvoxpopuli/eslint-configs": "^5.4.0", "@tsconfig/ember": "^3.0.7", "@types/common-tags": "^1.8.4", @@ -53,33 +54,33 @@ "typescript": "^5.9.3", "vite": "^7.3.1", "vite-plugin-dts": "4.5.4", - "vitest": "^3.2.4" + "vitest": "^4.0.18" }, "dependencies": { - "@codemirror/autocomplete": "6.20.0", - "@codemirror/commands": "6.10.1", + "@codemirror/autocomplete": "^6.20.0", + "@codemirror/commands": "^6.10.1", "@codemirror/lang-html": "^6.4.11", - "@codemirror/lang-javascript": "6.2.4", - "@codemirror/lang-markdown": "6.5.0", + "@codemirror/lang-javascript": "^6.2.4", + "@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-vue": "^0.1.3", "@codemirror/lang-yaml": "^6.1.2", "@codemirror/language": "^6.12.1", "@codemirror/language-data": "^6.5.2", "@codemirror/lint": "^6.9.2", - "@codemirror/search": "6.5.11", - "@codemirror/state": "6.5.3", - "@codemirror/view": "6.39.9", + "@codemirror/search": "^6.6.0", + "@codemirror/state": "^6.5.3", + "@codemirror/view": "^6.39.9", "@lezer/common": "^1.5.0", "@lezer/highlight": "^1.2.3", "@lezer/html": "^1.3.13", "@lezer/markdown": "^1.6.3", "@replit/codemirror-lang-svelte": "^6.0.0", - "@shikijs/rehype": "^3.7.0", + "@shikijs/rehype": "^3.22.0", "change-case": "^5.4.4", "codemirror": "^6.0.2", - "codemirror-lang-glimdown": "workspace:*", - "codemirror-lang-glimmer": "workspace:*", - "codemirror-lang-glimmer-js": "workspace:*", + "codemirror-lang-glimdown": "workspace:^", + "codemirror-lang-glimmer": "workspace:^", + "codemirror-lang-glimmer-js": "workspace:^", "codemirror-lang-mermaid": "^0.5.0", "codemirror-languageserver": "^1.12.1", "comlink": "^4.4.2", @@ -87,7 +88,9 @@ "mdast": "^3.0.0", "mime": "^4.0.7", "package-name-regex": "^5.0.0", + "rehype-autolink-headings": "^7.1.0", "rehype-raw": "^7.0.0", + "rehype-slug": "^6.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", diff --git a/packages/repl-sdk/src/compilers/markdown/build-compiler.js b/packages/repl-sdk/src/compilers/markdown/build-compiler.js index 28f054b8c..dc9b26b0a 100644 --- a/packages/repl-sdk/src/compilers/markdown/build-compiler.js +++ b/packages/repl-sdk/src/compilers/markdown/build-compiler.js @@ -1,7 +1,9 @@ /** * @typedef {import('unified').Plugin} UPlugin */ +import rehypeAutolinkHeadings from 'rehype-autolink-headings'; import rehypeRaw from 'rehype-raw'; +import rehypeSlug from 'rehype-slug'; import rehypeStringify from 'rehype-stringify'; import remarkGfm from 'remark-gfm'; import remarkParse from 'remark-parse'; @@ -10,7 +12,6 @@ import { unified } from 'unified'; import { visit } from 'unist-util-visit'; import { GLIMDOWN_PREVIEW, GLIMDOWN_RENDER } from './const.js'; -import { headingId } from './heading-id.js'; import { liveCodeExtraction } from './live-code-extraction.js'; import { sanitizeForGlimmer } from './sanitize-for-glimmer.js'; @@ -20,7 +21,7 @@ import { sanitizeForGlimmer } from './sanitize-for-glimmer.js'; * @returns {import('unified').Processor} */ export function buildCompiler(options) { - let compiler = unified().use(remarkParse).use(remarkGfm, { singleTilde: true }).use(headingId); + let compiler = unified().use(remarkParse).use(remarkGfm, { singleTilde: true }); /** * If this were "use"d after `remarkRehype`, @@ -65,7 +66,10 @@ export function buildCompiler(options) { // However, it also changes all the nodes, so we need another pass // to make sure our Glimmer-aware nodes are in tact // @ts-ignore - unified processor types are complex and change as plugins are added - compiler = compiler.use(remarkRehype, { allowDangerousHtml: true }); + compiler = compiler + .use(remarkRehype, { allowDangerousHtml: true }) + .use(rehypeSlug) + .use(rehypeAutolinkHeadings); // Convert invocables to raw format, so Glimmer can invoke them // @ts-ignore - unified processor types are complex and change as plugins are added diff --git a/packages/repl-sdk/src/compilers/markdown/heading-id.js b/packages/repl-sdk/src/compilers/markdown/heading-id.js deleted file mode 100644 index 4f2647d9e..000000000 --- a/packages/repl-sdk/src/compilers/markdown/heading-id.js +++ /dev/null @@ -1,75 +0,0 @@ -import { kebabCase } from 'change-case'; -import { visit } from 'unist-util-visit'; - -/** - * @param {import('mdast').PhrasingContent[]} children - * @return {string} - */ -function getDefaultId(children) { - return formatDefaultId(extractText(children)); -} - -/** - * @param {import('mdast').PhrasingContent[]} children - * @return {string} - */ -function extractText(children) { - return children - .map( - /** - * @param {any} child - */ - (child) => { - const isEmpty = !child.value?.trim(); - - if (!isEmpty) { - return child.value; - } else if (child.children && child.children.length > 0) { - return extractText(child.children); - } else { - return ''; - } - } - ) - .join(' '); -} - -/** - * @param {string} value - */ -function formatDefaultId(value) { - return kebabCase(value.replaceAll(/\\s+/g, ' ').trim()); -} - -/** - * @param {import('mdast').Heading} node - * @param {string} id - */ -function setNodeId(node, id) { - if (!node.data) node.data = {}; - if (!node.data.hProperties) node.data.hProperties = {}; - - /** @type {any} */ (node.data).id = node.data.hProperties.id = id; -} - -export function headingId(options = { defaults: false }) { - /** - * @param {import('mdast').Root} node - */ - return function (node) { - visit(node, 'heading', (node) => { - const lastChild = node.children[node.children.length - 1]; - - if (lastChild && lastChild.type === 'text') { - const string = lastChild.value.replace(/ +$/, ''); - const matched = string.match(/ {#([^]+?)}$/); - - if (matched) { - return; - } - } - - setNodeId(node, getDefaultId(node.children)); - }); - }; -} diff --git a/packages/repl-sdk/tests-self/package.json b/packages/repl-sdk/tests-self/package.json index d407fd3ae..8403b9e3c 100644 --- a/packages/repl-sdk/tests-self/package.json +++ b/packages/repl-sdk/tests-self/package.json @@ -11,19 +11,22 @@ }, "author": "NullvoxPopuli", "devDependencies": { - "@babel/plugin-proposal-decorators": "^7.28.0", + "@babel/plugin-proposal-decorators": "^7.29.0", "@babel/standalone": "file:babel-standalone.tgz", + "@codemirror/state": "^6.5.4", + "@codemirror/view": "^6.39.12", "@nullvoxpopuli/eslint-configs": "^5.4.0", "@testing-library/dom": "^10.4.1", "@tsconfig/ember": "^3.0.7", "@types/common-tags": "^1.8.4", "@types/mdast": "^4.0.4", - "@vitest/browser": "^3.2.4", - "@vitest/ui": "3.2.4", + "@vitest/browser": "^4.0.18", + "@vitest/browser-webdriverio": "^4.0.18", + "@vitest/ui": "4.0.18", "@vue/repl": "^4.6.1", "mdast": "^3.0.0", "mermaid": "^11.8.1", - "playwright": "^1.54.0", + "playwright": "^1.58.1", "react": "^19.1.0", "react-dom": "^19.1.0", "rehype-raw": "^7.0.0", @@ -36,7 +39,7 @@ "unist-util-visit": "^5.0.0", "vite": "^7.3.1", "vite-plugin-wasm": "^3.5.0", - "vitest": "^3.2.4", + "vitest": "^4.0.18", "vue": "^3.5.17", "webdriverio": "^9.17.0" }, diff --git a/packages/repl-sdk/tests-self/vitest.config.ts b/packages/repl-sdk/tests-self/vitest.config.ts index 2b84ef5a8..e53e5e560 100644 --- a/packages/repl-sdk/tests-self/vitest.config.ts +++ b/packages/repl-sdk/tests-self/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from 'vitest/config'; +import { webdriverio } from '@vitest/browser-webdriverio'; export default defineConfig({ test: { @@ -7,7 +8,7 @@ export default defineConfig({ provider: 'v8', }, browser: { - provider: 'webdriverio', + provider: webdriverio(), // provider: 'playwright', enabled: true, instances: [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a3cc6c13..e99ad9c6d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1242,19 +1242,19 @@ importers: packages/repl-sdk: dependencies: '@codemirror/autocomplete': - specifier: 6.20.0 + specifier: ^6.20.0 version: 6.20.0 '@codemirror/commands': - specifier: 6.10.1 + specifier: ^6.10.1 version: 6.10.1 '@codemirror/lang-html': specifier: ^6.4.11 version: 6.4.11 '@codemirror/lang-javascript': - specifier: 6.2.4 + specifier: ^6.2.4 version: 6.2.4 '@codemirror/lang-markdown': - specifier: 6.5.0 + specifier: ^6.5.0 version: 6.5.0 '@codemirror/lang-vue': specifier: ^0.1.3 @@ -1272,14 +1272,14 @@ importers: specifier: ^6.9.2 version: 6.9.3 '@codemirror/search': - specifier: 6.5.11 - version: 6.5.11 + specifier: ^6.6.0 + version: 6.6.0 '@codemirror/state': - specifier: 6.5.3 - version: 6.5.3 + specifier: ^6.5.3 + version: 6.5.4 '@codemirror/view': - specifier: 6.39.9 - version: 6.39.9 + specifier: ^6.39.9 + version: 6.39.12 '@lezer/common': specifier: ^1.5.0 version: 1.5.0 @@ -1294,10 +1294,10 @@ importers: version: 1.6.3 '@replit/codemirror-lang-svelte': specifier: ^6.0.0 - version: 6.0.0(26a6db9bdaa8cff2b4e233da4e047c84) + version: 6.0.0(9467715ca32889163bd7161ba7fdb3d1) '@shikijs/rehype': - specifier: ^3.7.0 - version: 3.21.0 + specifier: ^3.22.0 + version: 3.22.0 change-case: specifier: ^5.4.4 version: 5.4.4 @@ -1305,13 +1305,13 @@ importers: specifier: ^6.0.2 version: 6.0.2 codemirror-lang-glimdown: - specifier: workspace:* + specifier: workspace:^ version: link:../syntax/glimdown/codemirror codemirror-lang-glimmer: - specifier: workspace:* + specifier: workspace:^ version: link:../syntax/glimmer/codemirror codemirror-lang-glimmer-js: - specifier: workspace:* + specifier: workspace:^ version: link:../syntax/glimmer-js/codemirror codemirror-lang-mermaid: specifier: ^0.5.0 @@ -1334,9 +1334,15 @@ importers: package-name-regex: specifier: ^5.0.0 version: 5.0.0 + rehype-autolink-headings: + specifier: ^7.1.0 + version: 7.1.0 rehype-raw: specifier: ^7.0.0 version: 7.0.0 + rehype-slug: + specifier: ^6.0.0 + version: 6.0.0 rehype-stringify: specifier: ^10.0.1 version: 10.0.1 @@ -1368,9 +1374,12 @@ importers: specifier: ^6.0.3 version: 6.0.3 devDependencies: + '@babel/plugin-proposal-decorators': + specifier: ^7.28.6 + version: 7.28.6(@babel/core@7.29.0) '@nullvoxpopuli/eslint-configs': specifier: ^5.4.0 - version: 5.5.0(8b3852902fdc1f271e2fe6ec3968d711) + version: 5.5.0(2281cd42f04f9b4ff898e59cf0d462df) '@tsconfig/ember': specifier: ^3.0.7 version: 3.0.12 @@ -1405,8 +1414,8 @@ importers: specifier: 4.5.4 version: 4.5.4(c1128149ce4d4a02865fb32c2c02130b) vitest: - specifier: ^3.2.4 - version: 3.2.4(43fc60b72221c23537f26de37a473286) + specifier: ^4.0.18 + version: 4.0.18(7a48d31cdf119dc2742379fd005cfc19) packages/repl-sdk/tests-self: dependencies: @@ -1418,14 +1427,20 @@ importers: version: link:.. devDependencies: '@babel/plugin-proposal-decorators': - specifier: ^7.28.0 - version: 7.28.6(@babel/core@7.28.6) + specifier: ^7.29.0 + version: 7.29.0(@babel/core@7.29.0) '@babel/standalone': specifier: file:../../../babel-standalone.tgz version: file:babel-standalone.tgz + '@codemirror/state': + specifier: ^6.5.4 + version: 6.5.4 + '@codemirror/view': + specifier: ^6.39.12 + version: 6.39.12 '@nullvoxpopuli/eslint-configs': specifier: ^5.4.0 - version: 5.5.0(8b3852902fdc1f271e2fe6ec3968d711) + version: 5.5.0(003211b0f8dfc657c773942d50c53426) '@testing-library/dom': specifier: ^10.4.1 version: 10.4.1 @@ -1439,11 +1454,14 @@ importers: specifier: ^4.0.4 version: 4.0.4 '@vitest/browser': - specifier: ^3.2.4 - version: 3.2.4(0f78285e4d0f7251cfe3a6433a95d02f) + specifier: ^4.0.18 + version: 4.0.18(961e82ee0059a79a6957f9924a595445) + '@vitest/browser-webdriverio': + specifier: ^4.0.18 + version: 4.0.18(a8c8bccbaa4ce1e902ce96064838675d) '@vitest/ui': - specifier: 3.2.4 - version: 3.2.4(vitest@3.2.4) + specifier: 4.0.18 + version: 4.0.18(vitest@4.0.18) '@vue/repl': specifier: ^4.6.1 version: 4.7.1 @@ -1454,8 +1472,8 @@ importers: specifier: ^11.8.1 version: 11.12.2 playwright: - specifier: ^1.54.0 - version: 1.58.0 + specifier: ^1.58.1 + version: 1.58.1 react: specifier: ^19.1.0 version: 19.2.4 @@ -1493,8 +1511,8 @@ importers: specifier: ^3.5.0 version: 3.5.0(e6b63113a1a5fac17417c17fd166712e) vitest: - specifier: ^3.2.4 - version: 3.2.4(43fc60b72221c23537f26de37a473286) + specifier: ^4.0.18 + version: 4.0.18(7a48d31cdf119dc2742379fd005cfc19) vue: specifier: ^3.5.17 version: 3.5.27(typescript@5.9.3) @@ -2242,7 +2260,7 @@ importers: devDependencies: '@nullvoxpopuli/eslint-configs': specifier: ^5.4.0 - version: 5.5.0(8b3852902fdc1f271e2fe6ec3968d711) + version: 5.5.0(2281cd42f04f9b4ff898e59cf0d462df) eslint: specifier: ^9.39.1 version: 9.39.2(jiti@2.6.1) @@ -2257,7 +2275,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(43fc60b72221c23537f26de37a473286) + version: 3.2.4(c65d0c13c5fcb7e18f43107fb9bf18e5) packages: @@ -2303,6 +2321,10 @@ packages: resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.6': resolution: {integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==} engines: {node: '>=6.9.0'} @@ -2311,6 +2333,10 @@ packages: resolution: {integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + '@babel/eslint-parser@7.28.6': resolution: {integrity: sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -2322,6 +2348,10 @@ packages: resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.0': + resolution: {integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -2414,6 +2444,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} @@ -2457,6 +2492,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-decorators@7.29.0': + resolution: {integrity: sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-methods@7.18.6': resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} @@ -2907,10 +2948,18 @@ packages: resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.6': resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + '@bazel/runfiles@6.5.0': resolution: {integrity: sha512-RzahvqTkfpY2jsDxo8YItPX+/iZ6hbiikw1YhE0bA9EKBR5Og8Pa6FHn9PO9M0zaXRVsr0GFQLKbB/0rzy9SzA==} @@ -3028,12 +3077,21 @@ packages: '@codemirror/search@6.5.11': resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} + '@codemirror/search@6.6.0': + resolution: {integrity: sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==} + '@codemirror/state@6.5.3': resolution: {integrity: sha512-MerMzJzlXogk2fxWFU1nKp36bY5orBG59HnPiz0G9nLRebWa0zXuv2siH6PLIHBvv5TH8CkQRqjBs0MlxCZu+A==} + '@codemirror/state@6.5.4': + resolution: {integrity: sha512-8y7xqG/hpB53l25CIoit9/ngxdfoG+fx+V3SHBrinnhOtLvKHRyAJJuHzkWrR4YXXLX8eXBsejgAAxHUOdW1yw==} + '@codemirror/theme-one-dark@6.1.3': resolution: {integrity: sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==} + '@codemirror/view@6.39.12': + resolution: {integrity: sha512-f+/VsHVn/kOA9lltk/GFzuYwVVAKmOnNjxbrhkk3tPHntFqjWeI2TbIXx006YkBkqC10wZ4NsnWXCQiFPeAISQ==} + '@codemirror/view@6.39.9': resolution: {integrity: sha512-miGSIfBOKC1s2oHoa80dp+BjtsL8sXsrgGlQnQuOcfvaedcQUtqddTmKbJSDkLl4mkgPvZyXuKic2HDNYcJLYA==} @@ -4453,39 +4511,60 @@ packages: '@shikijs/core@3.21.0': resolution: {integrity: sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==} + '@shikijs/core@3.22.0': + resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==} + '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} '@shikijs/engine-javascript@3.21.0': resolution: {integrity: sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==} + '@shikijs/engine-javascript@3.22.0': + resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==} + '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} '@shikijs/engine-oniguruma@3.21.0': resolution: {integrity: sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==} + '@shikijs/engine-oniguruma@3.22.0': + resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==} + '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} '@shikijs/langs@3.21.0': resolution: {integrity: sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==} + '@shikijs/langs@3.22.0': + resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==} + '@shikijs/rehype@3.21.0': resolution: {integrity: sha512-fTQvwsZL67QdosMFdTgQ5SNjW3nxaPplRy//312hqOctRbIwviTV0nAbhv3NfnztHXvFli2zLYNKsTz/f9tbpQ==} + '@shikijs/rehype@3.22.0': + resolution: {integrity: sha512-69b2VPc6XBy/VmAJlpBU5By+bJSBdE2nvgRCZXav7zujbrjXuT0F60DIrjKuutjPqNufuizE+E8tIZr2Yn8Z+g==} + '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} '@shikijs/themes@3.21.0': resolution: {integrity: sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==} + '@shikijs/themes@3.22.0': + resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==} + '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} '@shikijs/types@3.21.0': resolution: {integrity: sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==} + '@shikijs/types@3.22.0': + resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4510,6 +4589,9 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@sveltejs/acorn-typescript@1.0.8': resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==} peerDependencies: @@ -4524,12 +4606,6 @@ packages: resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - '@tootallnate/once@1.1.2': resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} @@ -4995,24 +5071,23 @@ packages: cpu: [x64] os: [win32] - '@vitest/browser@3.2.4': - resolution: {integrity: sha512-tJxiPrWmzH8a+w9nLKlQMzAKX/7VjFs50MWgcAj7p9XQ7AQ9/35fByFYptgPELyLw+0aixTnC4pUWV+APcZ/kw==} + '@vitest/browser-webdriverio@4.0.18': + resolution: {integrity: sha512-dKn4kBq6gFk+wT5DMjPTvivXptz9MaN7CONoP+bA0bZxWofNsZtf9R4oPwQakuB95WBQ3j5kZ/9SXvB9i+XYQw==} peerDependencies: - playwright: '*' - safaridriver: '*' - vitest: 3.2.4 - webdriverio: ^7.0.0 || ^8.0.0 || ^9.0.0 - peerDependenciesMeta: - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true + vitest: 4.0.18 + webdriverio: '*' + + '@vitest/browser@4.0.18': + resolution: {integrity: sha512-gVQqh7paBz3gC+ZdcCmNSWJMk70IUjDeVqi+5m5vYpEHsIwRgw3Y545jljtajhkekIpIp5Gg8oK7bctgY0E2Ng==} + peerDependencies: + vitest: 4.0.18 '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} + '@vitest/mocker@3.2.4': resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: @@ -5024,26 +5099,52 @@ packages: vite: optional: true + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} + '@vitest/runner@3.2.4': resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} + '@vitest/snapshot@3.2.4': resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} + '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/ui@3.2.4': - resolution: {integrity: sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==} + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} + + '@vitest/ui@4.0.18': + resolution: {integrity: sha512-CGJ25bc8fRi8Lod/3GHSvXRKi7nBo3kxh0ApW4yCjmrWmRmlT53B5E08XRSZRliygG0aVNxLrBEqPYdz/KcCtQ==} peerDependencies: - vitest: 3.2.4 + vitest: 4.0.18 '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} + '@volar/kit@2.4.27': resolution: {integrity: sha512-ilZoQDMLzqmSsImJRWx4YiZ4FcvvPrPnFVmL6hSsIWB6Bn3qc7k88J9yP32dagrs5Y8EXIlvvD/mAFaiuEOACQ==} peerDependencies: @@ -5804,6 +5905,10 @@ packages: resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} engines: {node: '>=18'} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -7669,6 +7774,9 @@ packages: engines: {node: 18.* || 20.* || >= 22} hasBin: true + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -7809,6 +7917,12 @@ packages: hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} @@ -9145,6 +9259,9 @@ packages: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -9427,6 +9544,10 @@ packages: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} + pixelmatch@7.1.0: + resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==} + hasBin: true + pkg-dir@3.0.0: resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} engines: {node: '>=6'} @@ -9448,16 +9569,20 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.58.0: - resolution: {integrity: sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==} + playwright-core@1.58.1: + resolution: {integrity: sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==} engines: {node: '>=18'} hasBin: true - playwright@1.58.0: - resolution: {integrity: sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==} + playwright@1.58.1: + resolution: {integrity: sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==} engines: {node: '>=18'} hasBin: true + pngjs@7.0.0: + resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} + engines: {node: '>=14.19.0'} + points-on-curve@0.2.0: resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} @@ -9829,9 +9954,15 @@ packages: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true + rehype-autolink-headings@7.1.0: + resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} + rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + rehype-stringify@10.0.1: resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} @@ -10232,6 +10363,9 @@ packages: shiki@3.21.0: resolution: {integrity: sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==} + shiki@3.22.0: + resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==} + should-handle-link@1.3.0: resolution: {integrity: sha512-1+VHDYKARWyq1gL4nYVcLWk893m4PLgWPa41f/9Tt+AKJSt0B1dZ+HN6w7fQJ/v2vLC8rwJkyOUF8ijcsNSdaA==} @@ -10657,6 +10791,10 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + tinyspy@4.0.4: resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} @@ -11232,6 +11370,40 @@ packages: jsdom: optional: true + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + volar-service-html@0.0.68: resolution: {integrity: sha512-fru9gsLJxy33xAltXOh4TEdi312HP80hpuKhpYQD4O5hDnkNPEBdcQkpB+gcX0oK0VxRv1UOzcGQEUzWCVHLfA==} peerDependencies: @@ -11604,6 +11776,12 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.28.6': {} '@babel/core@7.28.6': @@ -11626,6 +11804,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/eslint-parser@7.28.6(90dd1a00afcf438c00236a42e271b90b)': + dependencies: + '@babel/core': 7.29.0 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.39.2(jiti@2.6.1) + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + '@babel/eslint-parser@7.28.6(c6ed4e3ffea21f07fbef45b5e0b598f3)': dependencies: '@babel/core': 7.28.6 @@ -11642,6 +11848,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + '@babel/generator@7.29.0': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.28.6 @@ -11662,7 +11876,20 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.6) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11689,8 +11916,8 @@ snapshots: '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -11710,9 +11937,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.6 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 '@babel/helper-plugin-utils@7.28.6': {} @@ -11730,7 +11966,16 @@ snapshots: '@babel/core': 7.28.6 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color @@ -11751,7 +11996,7 @@ snapshots: dependencies: '@babel/template': 7.28.6 '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -11764,6 +12009,10 @@ snapshots: dependencies: '@babel/types': 7.28.6 + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.6)': dependencies: '@babel/core': 7.28.6 @@ -11816,6 +12065,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-decorators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.28.6) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.28.6)': dependencies: '@babel/core': 7.28.6 @@ -11843,6 +12119,11 @@ snapshots: '@babel/core': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.6)': dependencies: '@babel/core': 7.28.6 @@ -12387,11 +12668,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.6': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bazel/runfiles@6.5.0': {} '@braidai/lang@1.1.2': {} @@ -12423,8 +12721,8 @@ snapshots: '@codemirror/autocomplete@6.20.0': dependencies: '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@codemirror/buildhelper@1.0.2': @@ -12440,8 +12738,8 @@ snapshots: '@codemirror/commands@6.10.1': dependencies: '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@codemirror/lang-angular@0.1.4': @@ -12462,7 +12760,7 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/css': 1.3.0 @@ -12470,7 +12768,7 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/go': 1.0.1 @@ -12480,8 +12778,8 @@ snapshots: '@codemirror/lang-css': 6.3.1 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@lezer/css': 1.3.0 '@lezer/html': 1.3.13 @@ -12496,8 +12794,8 @@ snapshots: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 '@codemirror/lint': 6.9.3 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@lezer/javascript': 1.5.4 @@ -12527,8 +12825,8 @@ snapshots: '@codemirror/autocomplete': 6.20.0 '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@lezer/highlight': 1.2.3 '@lezer/lr': 1.4.8 @@ -12538,8 +12836,8 @@ snapshots: '@codemirror/autocomplete': 6.20.0 '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@lezer/markdown': 1.6.3 @@ -12547,7 +12845,7 @@ snapshots: dependencies: '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/php': 1.0.5 @@ -12555,7 +12853,7 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/python': 1.1.18 @@ -12568,7 +12866,7 @@ snapshots: dependencies: '@codemirror/lang-css': 6.3.1 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/sass': 1.1.0 @@ -12576,7 +12874,7 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/highlight': 1.2.3 '@lezer/lr': 1.4.8 @@ -12601,8 +12899,8 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/common': 1.5.0 '@lezer/xml': 1.0.6 @@ -12610,7 +12908,7 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 + '@codemirror/state': 6.5.4 '@lezer/common': 1.5.0 '@lezer/highlight': 1.2.3 '@lezer/lr': 1.4.8 @@ -12657,27 +12955,44 @@ snapshots: '@codemirror/lint@6.9.3': dependencies: - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 crelt: 1.0.6 '@codemirror/search@6.5.11': dependencies: - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 + crelt: 1.0.6 + + '@codemirror/search@6.6.0': + dependencies: + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 crelt: 1.0.6 '@codemirror/state@6.5.3': dependencies: '@marijn/find-cluster-break': 1.0.2 + '@codemirror/state@6.5.4': + dependencies: + '@marijn/find-cluster-break': 1.0.2 + '@codemirror/theme-one-dark@6.1.3': dependencies: '@codemirror/language': 6.12.1 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.3 + '@codemirror/view@6.39.12': + dependencies: + '@codemirror/state': 6.5.4 + crelt: 1.0.6 + style-mod: 4.1.3 + w3c-keyname: 2.2.8 + '@codemirror/view@6.39.9': dependencies: '@codemirror/state': 6.5.3 @@ -13223,10 +13538,10 @@ snapshots: '@gerrit0/mini-shiki@3.21.0': dependencies: - '@shikijs/engine-oniguruma': 3.21.0 - '@shikijs/langs': 3.21.0 - '@shikijs/themes': 3.21.0 - '@shikijs/types': 3.21.0 + '@shikijs/engine-oniguruma': 3.22.0 + '@shikijs/langs': 3.22.0 + '@shikijs/themes': 3.22.0 + '@shikijs/types': 3.22.0 '@shikijs/vscode-textmate': 10.0.2 '@glimdown/lezer-glimmer-expression@2.0.2': @@ -13793,6 +14108,58 @@ snapshots: dependencies: which: 5.0.0 + '@nullvoxpopuli/eslint-configs@5.5.0(003211b0f8dfc657c773942d50c53426)': + dependencies: + '@babel/core': 7.29.0 + '@eslint/js': 9.39.2 + '@typescript-eslint/parser': 8.54.0(b1cbe766652296b79becebe56b05ba7c) + cosmiconfig: 9.0.0(typescript@5.9.3) + ember-eslint: 0.6.1(5a7f00948a6312db668ed12e548f3346) + eslint: 9.39.2(jiti@2.6.1) + eslint-import-resolver-typescript: 4.4.4(dc699ced992fcedfde63643dc55ed36e) + eslint-plugin-decorator-position: 6.0.0(89d133dfefe391565907f606f294079b) + eslint-plugin-import: 2.32.0(da3cf411676f31e1ee575d09083acbfe) + eslint-plugin-json: 4.0.1 + eslint-plugin-n: 17.23.2(b1cbe766652296b79becebe56b05ba7c) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.39.2(jiti@2.6.1)) + globals: 16.5.0 + prettier-plugin-ember-template-tag: 2.1.2(prettier@3.8.1) + optionalDependencies: + '@babel/eslint-parser': 7.28.6(90dd1a00afcf438c00236a42e271b90b) + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) + prettier: 3.8.1 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + - typescript + + '@nullvoxpopuli/eslint-configs@5.5.0(2281cd42f04f9b4ff898e59cf0d462df)': + dependencies: + '@babel/core': 7.29.0 + '@eslint/js': 9.39.2 + '@typescript-eslint/parser': 8.54.0(b1cbe766652296b79becebe56b05ba7c) + cosmiconfig: 9.0.0(typescript@5.9.3) + ember-eslint: 0.6.1(5a7f00948a6312db668ed12e548f3346) + eslint: 9.39.2(jiti@2.6.1) + eslint-import-resolver-typescript: 4.4.4(dc699ced992fcedfde63643dc55ed36e) + eslint-plugin-decorator-position: 6.0.0(89d133dfefe391565907f606f294079b) + eslint-plugin-import: 2.32.0(da3cf411676f31e1ee575d09083acbfe) + eslint-plugin-json: 4.0.1 + eslint-plugin-n: 17.23.2(b1cbe766652296b79becebe56b05ba7c) + eslint-plugin-simple-import-sort: 12.1.1(eslint@9.39.2(jiti@2.6.1)) + globals: 16.5.0 + prettier-plugin-ember-template-tag: 2.1.2(prettier@3.8.1) + optionalDependencies: + '@babel/eslint-parser': 7.28.6(90dd1a00afcf438c00236a42e271b90b) + '@babel/plugin-proposal-decorators': 7.28.6(@babel/core@7.29.0) + prettier: 3.8.1 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + - typescript + '@nullvoxpopuli/eslint-configs@5.5.0(8b3852902fdc1f271e2fe6ec3968d711)': dependencies: '@babel/core': 7.28.6 @@ -14078,6 +14445,20 @@ snapshots: '@lezer/javascript': 1.5.4 '@lezer/lr': 1.4.8 + '@replit/codemirror-lang-svelte@6.0.0(9467715ca32889163bd7161ba7fdb3d1)': + dependencies: + '@codemirror/autocomplete': 6.20.0 + '@codemirror/lang-css': 6.3.1 + '@codemirror/lang-html': 6.4.11 + '@codemirror/lang-javascript': 6.2.4 + '@codemirror/language': 6.12.1 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 + '@lezer/common': 1.5.0 + '@lezer/highlight': 1.2.3 + '@lezer/javascript': 1.5.4 + '@lezer/lr': 1.4.8 + '@rolldown/binding-android-arm64@1.0.0-beta.59': optional: true @@ -14304,6 +14685,13 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -14316,6 +14704,12 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 + '@shikijs/engine-javascript@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.4 + '@shikijs/engine-oniguruma@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -14326,6 +14720,11 @@ snapshots: '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -14334,6 +14733,10 @@ snapshots: dependencies: '@shikijs/types': 3.21.0 + '@shikijs/langs@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/rehype@3.21.0': dependencies: '@shikijs/types': 3.21.0 @@ -14343,6 +14746,15 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.1.0 + '@shikijs/rehype@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@types/hast': 3.0.4 + hast-util-to-string: 3.0.1 + shiki: 3.22.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 @@ -14351,6 +14763,10 @@ snapshots: dependencies: '@shikijs/types': 3.21.0 + '@shikijs/themes@3.22.0': + dependencies: + '@shikijs/types': 3.22.0 + '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -14361,6 +14777,11 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.22.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@simple-dom/document@1.4.0': @@ -14377,6 +14798,8 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@standard-schema/spec@1.1.0': {} + '@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)': dependencies: acorn: 8.15.0 @@ -14397,10 +14820,6 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': - dependencies: - '@testing-library/dom': 10.4.1 - '@tootallnate/once@1.1.2': {} '@tootallnate/quickjs-emscripten@0.23.0': {} @@ -14907,20 +15326,28 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitest/browser@3.2.4(0f78285e4d0f7251cfe3a6433a95d02f)': + '@vitest/browser-webdriverio@4.0.18(a8c8bccbaa4ce1e902ce96064838675d)': dependencies: - '@testing-library/dom': 10.4.1 - '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/mocker': 3.2.4(e6b63113a1a5fac17417c17fd166712e) - '@vitest/utils': 3.2.4 + '@vitest/browser': 4.0.18(961e82ee0059a79a6957f9924a595445) + vitest: 4.0.18(7a48d31cdf119dc2742379fd005cfc19) + webdriverio: 9.23.2 + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + + '@vitest/browser@4.0.18(961e82ee0059a79a6957f9924a595445)': + dependencies: + '@vitest/mocker': 4.0.18(e6b63113a1a5fac17417c17fd166712e) + '@vitest/utils': 4.0.18 magic-string: 0.30.21 + pixelmatch: 7.1.0 + pngjs: 7.0.0 sirv: 3.0.2 - tinyrainbow: 2.0.0 - vitest: 3.2.4(43fc60b72221c23537f26de37a473286) + tinyrainbow: 3.0.3 + vitest: 4.0.18(7a48d31cdf119dc2742379fd005cfc19) ws: 8.19.0 - optionalDependencies: - playwright: 1.58.0 - webdriverio: 9.23.2 transitivePeerDependencies: - bufferutil - msw @@ -14935,6 +15362,15 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 + '@vitest/expect@4.0.18': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 + tinyrainbow: 3.0.3 + '@vitest/mocker@3.2.4(e6b63113a1a5fac17417c17fd166712e)': dependencies: '@vitest/spy': 3.2.4 @@ -14943,36 +15379,61 @@ snapshots: optionalDependencies: vite: 7.3.1(49631a7421c6d16f9f1c25b2ae2d6f7d) + '@vitest/mocker@4.0.18(e6b63113a1a5fac17417c17fd166712e)': + dependencies: + '@vitest/spy': 4.0.18 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.1(49631a7421c6d16f9f1c25b2ae2d6f7d) + '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 + '@vitest/pretty-format@4.0.18': + dependencies: + tinyrainbow: 3.0.3 + '@vitest/runner@3.2.4': dependencies: '@vitest/utils': 3.2.4 pathe: 2.0.3 strip-literal: 3.1.0 + '@vitest/runner@4.0.18': + dependencies: + '@vitest/utils': 4.0.18 + pathe: 2.0.3 + '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 magic-string: 0.30.21 pathe: 2.0.3 + '@vitest/snapshot@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + magic-string: 0.30.21 + pathe: 2.0.3 + '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.4 - '@vitest/ui@3.2.4(vitest@3.2.4)': + '@vitest/spy@4.0.18': {} + + '@vitest/ui@4.0.18(vitest@4.0.18)': dependencies: - '@vitest/utils': 3.2.4 + '@vitest/utils': 4.0.18 fflate: 0.8.2 flatted: 3.3.3 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.15 - tinyrainbow: 2.0.0 - vitest: 3.2.4(43fc60b72221c23537f26de37a473286) + tinyrainbow: 3.0.3 + vitest: 4.0.18(7a48d31cdf119dc2742379fd005cfc19) '@vitest/utils@3.2.4': dependencies: @@ -14980,6 +15441,11 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 + '@vitest/utils@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + tinyrainbow: 3.0.3 + '@volar/kit@2.4.27(typescript@5.9.3)': dependencies: '@volar/language-service': 2.4.27 @@ -16042,6 +16508,8 @@ snapshots: loupe: 3.2.1 pathval: 2.0.1 + chai@6.2.2: {} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -16239,8 +16707,8 @@ snapshots: '@codemirror/lang-css': 6.3.1 '@codemirror/lang-html': 6.4.11 '@codemirror/lang-javascript': 6.2.4 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@glimdown/lezer-glimmer-expression': 2.0.2 '@lezer/common': 1.5.0 '@lezer/highlight': 1.2.3 @@ -16259,8 +16727,8 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.20.0 '@codemirror/lint': 6.9.3 - '@codemirror/state': 6.5.3 - '@codemirror/view': 6.39.9 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.12 '@open-rpc/client-js': 1.8.1(encoding@0.1.13) marked: 16.4.2 vscode-languageserver-protocol: 3.17.5 @@ -16275,7 +16743,7 @@ snapshots: '@codemirror/commands': 6.10.1 '@codemirror/language': 6.12.1 '@codemirror/lint': 6.9.3 - '@codemirror/search': 6.5.11 + '@codemirror/search': 6.6.0 '@codemirror/state': 6.5.3 '@codemirror/view': 6.39.9 @@ -17077,6 +17545,23 @@ snapshots: transitivePeerDependencies: - supports-color + ember-eslint-parser@0.5.13(5a7f00948a6312db668ed12e548f3346): + dependencies: + '@babel/core': 7.29.0 + '@babel/eslint-parser': 7.28.6(90dd1a00afcf438c00236a42e271b90b) + '@glimmer/syntax': 0.95.0 + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + content-tag: 2.0.3 + eslint-scope: 7.2.2 + html-tags: 3.3.1 + mathml-tag-names: 2.1.3 + svg-tags: 1.0.0 + optionalDependencies: + '@typescript-eslint/parser': 8.54.0(b1cbe766652296b79becebe56b05ba7c) + transitivePeerDependencies: + - eslint + - typescript + ember-eslint-parser@0.5.13(822bd4a9f2f244ad1e0d0536ceaa1dfc): dependencies: '@babel/core': 7.28.6 @@ -17094,6 +17579,23 @@ snapshots: - eslint - typescript + ember-eslint@0.6.1(5a7f00948a6312db668ed12e548f3346): + dependencies: + '@babel/eslint-parser': 7.28.6(90dd1a00afcf438c00236a42e271b90b) + '@eslint/js': 9.39.2 + eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-ember: 12.7.5(5a7f00948a6312db668ed12e548f3346) + eslint-plugin-n: 17.23.2(b1cbe766652296b79becebe56b05ba7c) + eslint-plugin-qunit: 8.2.5(eslint@9.39.2(jiti@2.6.1)) + globals: 16.5.0 + typescript-eslint: 8.54.0(b1cbe766652296b79becebe56b05ba7c) + transitivePeerDependencies: + - '@babel/core' + - '@typescript-eslint/parser' + - eslint + - supports-color + - typescript + ember-eslint@0.6.1(822bd4a9f2f244ad1e0d0536ceaa1dfc): dependencies: '@babel/eslint-parser': 7.28.6(c6ed4e3ffea21f07fbef45b5e0b598f3) @@ -17533,10 +18035,23 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-plugin-decorator-position@6.0.0(89d133dfefe391565907f606f294079b): + dependencies: + '@babel/core': 7.28.6 + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.28.6) + '@ember-data/rfc395-data': 0.0.4 + ember-rfc176-data: 0.3.18 + eslint: 9.39.2(jiti@2.6.1) + snake-case: 3.0.4 + optionalDependencies: + '@babel/eslint-parser': 7.28.6(90dd1a00afcf438c00236a42e271b90b) + transitivePeerDependencies: + - supports-color + eslint-plugin-decorator-position@6.0.0(ddf86eb4dd0276726f0cc69ee101245f): dependencies: '@babel/core': 7.28.6 - '@babel/plugin-proposal-decorators': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.28.6) '@ember-data/rfc395-data': 0.0.4 ember-rfc176-data: 0.3.18 eslint: 9.39.2(jiti@2.6.1) @@ -17546,6 +18061,25 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-plugin-ember@12.7.5(5a7f00948a6312db668ed12e548f3346): + dependencies: + '@ember-data/rfc395-data': 0.0.4 + css-tree: 3.1.0 + ember-eslint-parser: 0.5.13(5a7f00948a6312db668ed12e548f3346) + ember-rfc176-data: 0.3.18 + eslint: 9.39.2(jiti@2.6.1) + eslint-utils: 3.0.0(eslint@9.39.2(jiti@2.6.1)) + estraverse: 5.3.0 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + requireindex: 1.2.0 + snake-case: 3.0.4 + optionalDependencies: + '@typescript-eslint/parser': 8.54.0(b1cbe766652296b79becebe56b05ba7c) + transitivePeerDependencies: + - '@babel/core' + - typescript + eslint-plugin-ember@12.7.5(822bd4a9f2f244ad1e0d0536ceaa1dfc): dependencies: '@ember-data/rfc395-data': 0.0.4 @@ -18312,6 +18846,8 @@ snapshots: - bluebird - supports-color + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -18496,6 +19032,14 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 + hast-util-heading-rank@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 @@ -20138,6 +20682,8 @@ snapshots: dependencies: isobject: 3.0.1 + obug@2.1.1: {} + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -20429,6 +20975,10 @@ snapshots: pirates@4.0.7: {} + pixelmatch@7.1.0: + dependencies: + pngjs: 7.0.0 + pkg-dir@3.0.0: dependencies: find-up: 3.0.0 @@ -20455,14 +21005,16 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.58.0: {} + playwright-core@1.58.1: {} - playwright@1.58.0: + playwright@1.58.1: dependencies: - playwright-core: 1.58.0 + playwright-core: 1.58.1 optionalDependencies: fsevents: 2.3.2 + pngjs@7.0.0: {} + points-on-curve@0.2.0: {} points-on-path@0.2.1: @@ -20806,12 +21358,29 @@ snapshots: dependencies: jsesc: 3.1.0 + rehype-autolink-headings@7.1.0: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.3.0 + hast-util-heading-rank: 3.0.0 + hast-util-is-element: 3.0.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.1.0 vfile: 6.0.3 + rehype-slug@6.0.0: + dependencies: + '@types/hast': 3.0.4 + github-slugger: 2.0.0 + hast-util-heading-rank: 3.0.0 + hast-util-to-string: 3.0.1 + unist-util-visit: 5.1.0 + rehype-stringify@10.0.1: dependencies: '@types/hast': 3.0.4 @@ -21379,6 +21948,17 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@3.22.0: + dependencies: + '@shikijs/core': 3.22.0 + '@shikijs/engine-javascript': 3.22.0 + '@shikijs/engine-oniguruma': 3.22.0 + '@shikijs/langs': 3.22.0 + '@shikijs/themes': 3.22.0 + '@shikijs/types': 3.22.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + should-handle-link@1.3.0: {} siginfo@2.0.0: {} @@ -22021,6 +22601,8 @@ snapshots: tinyrainbow@2.0.0: {} + tinyrainbow@3.0.3: {} + tinyspy@4.0.4: {} tldts-core@6.1.86: {} @@ -22544,7 +23126,7 @@ snapshots: terser: 5.46.0 yaml: 2.8.2 - vitest@3.2.4(43fc60b72221c23537f26de37a473286): + vitest@3.2.4(c65d0c13c5fcb7e18f43107fb9bf18e5): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 @@ -22572,8 +23154,6 @@ snapshots: optionalDependencies: '@types/debug': 4.1.12 '@types/node': 24.10.9 - '@vitest/browser': 3.2.4(0f78285e4d0f7251cfe3a6433a95d02f) - '@vitest/ui': 3.2.4(vitest@3.2.4) jsdom: 26.1.0 transitivePeerDependencies: - jiti @@ -22589,6 +23169,46 @@ snapshots: - tsx - yaml + vitest@4.0.18(7a48d31cdf119dc2742379fd005cfc19): + dependencies: + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(e6b63113a1a5fac17417c17fd166712e) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.1(49631a7421c6d16f9f1c25b2ae2d6f7d) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 24.10.9 + '@vitest/browser-webdriverio': 4.0.18(a8c8bccbaa4ce1e902ce96064838675d) + '@vitest/ui': 4.0.18(vitest@4.0.18) + jsdom: 26.1.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + volar-service-html@0.0.68(@volar/language-service@2.4.27): dependencies: vscode-html-languageservice: 5.6.1