diff --git a/astro.config.mjs b/astro.config.mjs index 9476d8fec6..449b9623e7 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -13,6 +13,7 @@ import path from 'path'; import { fileURLToPath } from 'url'; import lunaria from '@lunariajs/starlight'; import { readFileSync } from 'fs'; +import { getTauriTypeDocPlugins } from 'tauri-typedoc'; import nsisGrammar from './src/langs/nsis.tmLanguage.json'; import pbxprojGrammar from './src/langs/pbxproj.tmLanguage.json'; import { hasGeneratedReleasePages } from './src/release-config.mjs'; @@ -83,6 +84,8 @@ const authors = { const site = 'https://v2.tauri.app'; +const { plugins: typeDocPlugins, sidebarItems: typeDocSidebarItems } = getTauriTypeDocPlugins(); + // https://astro.build/config export default defineConfig({ site, @@ -90,6 +93,7 @@ export default defineConfig({ integrations: [ starlight({ plugins: [ + ...typeDocPlugins, starlightBlog({ authors, // We're doing it in `src/components/overrides/Header.astro` @@ -339,11 +343,7 @@ export default defineConfig({ { label: 'JavaScript', collapsed: true, - items: [ - { - autogenerate: { directory: 'reference/javascript', collapsed: true }, - }, - ], + items: typeDocSidebarItems, }, { label: 'Rust (docs.rs)', diff --git a/package.json b/package.json index 6a49edccb7..47c31227e9 100644 --- a/package.json +++ b/package.json @@ -16,12 +16,11 @@ "format:check": "prettier -c --cache --plugin prettier-plugin-astro .", "check": "pnpm build:releases && astro check", "build:compatibility-table": "pnpm --filter compatibility-table run build", - "build:references": "pnpm --filter js-api-generator run build", "build:config": "pnpm --filter config-generator run build", "build:cli": "pnpm --filter cli-generator run build", "build:releases": "pnpm --filter releases-site run generate", "build:astro": "astro build", - "build": "pnpm dev:setup && pnpm build:references && pnpm build:config && pnpm build:cli && pnpm build:releases && pnpm build:astro", + "build": "pnpm dev:setup && pnpm build:config && pnpm build:cli && pnpm build:releases && pnpm build:astro", "preview": "astro preview", "test": "node --test \"src/**/*.test.ts\"" }, @@ -48,7 +47,9 @@ "starlight-links-validator": "^0.25.2", "starlight-llms-txt": "^0.11.0", "starlight-sidebar-topics": "^0.8.0", - "unified": "^11.0.5" + "unified": "^11.0.5", + "vite": "^8.1.4", + "tauri-typedoc": "workspace:*" }, "packageManager": "pnpm@11.21.0", "engines": { diff --git a/packages/js-api-generator/build.ts b/packages/js-api-generator/build.ts deleted file mode 100644 index 4fa261e42f..0000000000 --- a/packages/js-api-generator/build.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { - Application, - DeclarationReflection, - Options, - PageEvent, - Reflection, - SignatureReflection, - TSConfigReader, - type TypeDocOptions, -} from 'typedoc'; -import { - MarkdownPageEvent, - MarkdownTheme, - MarkdownThemeContext, - type MarkdownApplication, - type PluginOptions, -} from 'typedoc-plugin-markdown'; -import { existsSync, readFileSync, writeFileSync } from 'node:fs'; - -const typeDocConfigBaseOptions: Partial = { - // TypeDoc options - // https://typedoc.org/options/ - githubPages: false, - hideGenerator: true, - theme: 'tauri-theme', - plugin: ['typedoc-plugin-mdn-links', 'typedoc-plugin-markdown'], - readme: 'none', - logLevel: 'Warn', - parametersFormat: 'table', - // typedoc-plugin-markdown options - // https://github.com/tgreyuk/typedoc-plugin-markdown/blob/next/packages/typedoc-plugin-markdown/docs/usage/options.md - outputFileStrategy: 'modules', - flattenOutputFiles: true, - entryFileName: 'index.md', - hidePageHeader: true, - hidePageTitle: true, - hideBreadcrumbs: true, - useCodeBlocks: true, - propertiesFormat: 'table', - typeDeclarationFormat: 'table', - useHTMLAnchors: true, -}; - -async function generator() { - if (existsSync('../tauri/packages/api/node_modules')) { - const coreJsOptions: Partial = { - entryPoints: ['../tauri/packages/api/src/index.ts'], - tsconfig: '../tauri/packages/api/tsconfig.json', - gitRevision: 'dev', - publicPath: '/reference/javascript/api/', - basePath: '/reference/javascript/api/', - ...typeDocConfigBaseOptions, - }; - - await generateDocs(coreJsOptions); - } else { - console.log( - 'Tauri V2 submodule is not initialized, respective API routes will not be rendered.' - ); - } - - const plugins = [ - 'autostart', - 'barcode-scanner', - 'biometric', - 'cli', - 'clipboard-manager', - 'deep-link', - 'dialog', - 'fs', - 'geolocation', - 'global-shortcut', - 'haptics', - 'http', - 'log', - 'nfc', - 'notification', - 'opener', - 'os', - 'positioner', - 'process', - 'shell', - 'sql', - 'store', - 'stronghold', - 'updater', - 'upload', - 'websocket', - 'window-state', - ]; - - if (existsSync('../plugins-workspace/node_modules')) { - // TODO: Actually fix this - const data = readFileSync('../plugins-workspace/plugins/fs/guest-js/index.ts', { - encoding: 'utf8', - }); - writeFileSync( - '../plugins-workspace/plugins/fs/guest-js/index.ts', - data.replace(/Uint8Array/g, 'Uint8Array'), - { encoding: 'utf8' } - ); - - plugins.forEach(async (plugin) => { - const pluginJsOptions: Partial = { - entryPoints: [`../plugins-workspace/plugins/${plugin}/guest-js/index.ts`], - tsconfig: `../plugins-workspace/plugins/${plugin}/tsconfig.json`, - gitRevision: 'v2', - publicPath: `/reference/javascript/`, - basePath: `/reference/javascript/`, - ...typeDocConfigBaseOptions, - // Must go after to override base - entryFileName: `${plugin}.md`, - }; - - await generateDocs(pluginJsOptions); - }); - } else { - console.log( - 'Plugins workspace submodule is not initialized, respective API routes will not be rendered.' - ); - } - - if (existsSync('../tauri/packages/api/node_modules')) { - const coreJsOptions: Partial = { - entryPoints: ['../tauri/packages/api/src/index.ts'], - tsconfig: '../tauri/packages/api/tsconfig.json', - gitRevision: 'dev', - publicPath: '/reference/javascript/api/', - basePath: '/reference/javascript/api/', - ...typeDocConfigBaseOptions, - }; - - await generateDocs(coreJsOptions); - } else { - console.log( - 'Tauri V2 submodule is not initialized, respective API routes will not be rendered.' - ); - } -} - -// Adapted from https://github.com/HiDeoo/starlight-typedoc -async function generateDocs(options: Partial) { - const outputDir = `../../src/content/docs${options.publicPath}`; - - const app = await Application.bootstrapWithPlugins(options); - app.options.addReader(new TSConfigReader()); - // @ts-ignore - app.renderer.defineTheme('tauri-theme', TauriTheme); - - app.renderer.on(PageEvent.END, (event: PageEvent) => { - pageEventEnd(event); - }); - - const project = await app.convert(); - - if (project) { - await app.generateDocs(project, outputDir); - } -} - -// Adds frontmatter to the top of the file -// Adapted from https://github.com/HiDeoo/starlight-typedoc -function pageEventEnd(event: PageEvent) { - if (!event.contents) { - return; - } - const frontmatter = [ - '---', - `title: "${event.model.name}"`, - 'editUrl: false', - 'sidebar:', - ` label: "${event.model.name.replace('@tauri-apps/plugin-', '')}"`, - 'tableOfContents:', - ' maxHeadingLevel: 5', - '---', - '', - event.contents, - ]; - event.contents = frontmatter.join('\n'); -} -class TauriThemeRenderContext extends MarkdownThemeContext { - constructor(theme: MarkdownTheme, page: MarkdownPageEvent, options: Options) { - super(theme, page, options); - const originalCommentPartial = this.partials.comment; - - this.partials = { - ...this.partials, - // Formats `@source` to be a single line - sources: (model: DeclarationReflection | SignatureReflection, options: object) => { - if (!model.sources) { - return ''; - } - let label = model.sources.length > 1 ? '**Sources**: ' : '**Source**: '; - const sources = model.sources.map((source) => `${source.url}`); - return label + sources.join(', '); - }, - // Remove heading markers from JSDoc comments to prevent accidental markdown headings - comment: function (comment, options) { - const headingStringsToReplace = [ - // known to break - '#### Platform-specific', - // just to be sure - '### Platform-specific', - ]; - - if (comment?.summary) { - comment.summary.forEach((line) => { - if (line.kind === 'text' && typeof line.text === 'string') { - headingStringsToReplace.forEach((headingString) => { - line.text = line.text.replace(headingString, headingString.replace(/^#+\s*/, '')); - }); - } - }); - } - if (comment?.blockTags) { - comment.blockTags.forEach((tag) => { - tag.content.forEach((line) => { - if (line.kind === 'text' && typeof line.text === 'string') { - headingStringsToReplace.forEach((headingString) => { - line.text = line.text.replace(headingString, headingString.replace(/^#+\s*/, '')); - }); - } - }); - }); - } - return originalCommentPartial.call(this, comment, options); - }, - }; - } - - // Adapted from https://github.com/HiDeoo/starlight-typedoc/blob/d95072e218004276942a5132ec8a4e3561425903/packages/starlight-typedoc/src/libs/theme.ts#L28 - override getRelativeUrl = (url: string) => { - if (/^(http|ftp)s?:\/\//.test(url)) { - return url; - } - - url = decodeURI( - super.getRelativeUrl(url).replaceAll('.md', '/').replaceAll('.', '').toLowerCase() - ).replaceAll('\\', '/'); - return url; - }; -} - -// Overrides and extensions based on https://github.com/tgreyuk/typedoc-plugin-markdown/blob/next/packages/typedoc-plugin-markdown/docs/usage/customizing.md -class TauriTheme extends MarkdownTheme { - getRenderContext(page: MarkdownPageEvent): MarkdownThemeContext { - return new TauriThemeRenderContext(this, page, this.application.options); - } -} - -generator(); diff --git a/packages/js-api-generator/package.json b/packages/js-api-generator/package.json deleted file mode 100644 index 0a68d58527..0000000000 --- a/packages/js-api-generator/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "js-api-generator", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "build": "node ./build.ts" - }, - "keywords": [], - "author": "", - "license": "MIT", - "private": "true", - "dependencies": { - "typedoc": "0.26.6", - "typedoc-plugin-markdown": "4.2.6", - "typedoc-plugin-mdn-links": "3.2.11", - "typescript": "5.5" - } -} diff --git a/packages/tauri-typedoc/normalize.mjs b/packages/tauri-typedoc/normalize.mjs new file mode 100644 index 0000000000..e7803302b9 --- /dev/null +++ b/packages/tauri-typedoc/normalize.mjs @@ -0,0 +1,137 @@ +/** + * Workarounds for upstream bugs in the generated markdown, kept together so each can be + * deleted once fixed at the source. All transforms are idempotent; cases in normalize.test.mjs. + * Paths are relative to node_modules/. + * + * unescapeCodeSpans() -- backticks escaped in headings and link labels. Reportable. + * typedoc-plugin-markdown/dist/libs/utils/escape-chars.js (escapes unconditionally) + * TABLE_ASIDE_RE -- `:::` directive leaking as literal text in a table cell. Reportable. + * starlight-typedoc/libs/theme.ts (addDeprecatedAside ignores opts.isTableColumn) + * mergeGenerics() -- type expressions split into chips joined by literal `<` `>` + * typedoc-plugin-markdown/dist/theme/context/partials/type.reference.js + * renameConstructorHeading() -- every constructor section titled "Constructor" + * typedoc-plugin-markdown/dist/theme/context/partials/member.constructors.js + * collapseWrappedUnion() -- short unions wrapped under expandParameters + * typedoc-plugin-markdown/dist/theme/context/partials/type.union.js (70-char heuristic) + */ + +// Content is non-empty (`\`\`` would merge into a runaway span) and takes a backslash only +// when not before a backtick, so `C:\foo` pairs correctly and a span containing one is skipped. +const ESCAPED_CODE_SPAN_RE = /\\`((?:[^`\\]|\\[^`])+)\\`/g; + +function unescapeCodeSpans(text) { + return text.replace(ESCAPED_CODE_SPAN_RE, '`$1`'); +} + +const HEADING_RE = /^#{1,6} /; +// A link label only when followed by its target, so bare `[x]` in prose is left alone. +const LINK_LABEL_RE = /\[([^[\]]*)\](?=\()/g; +const FENCE_MARKER_RE = /^\s*(`{3,}|~{3,})/; + +const TABLE_ASIDE_RE = /:::(\w+)(?:\[([^\]]*)\])?\s*(.*?)\s*:::/g; + +// [`Promise`](mdn)\<`void`\> -> [`Promise`](mdn). Linked type arguments, e.g. +// Promise\<[`FileInfo`](#fileinfo)\>, stay fragmented: merging would drop the inner link. +const TYPE_ARGS = String.raw`(?:\x60[^\x60\\]+\x60(?:\[\])?)(?:,\s*\x60[^\x60\\]+\x60(?:\[\])?)*`; +const LINKED_GENERIC_RE = new RegExp( + String.raw`\[\x60([^\x60\\]+)\x60\]\(([^()\s]+)\)\\<(${TYPE_ARGS})\\>`, + 'g' +); +const PLAIN_GENERIC_RE = new RegExp(String.raw`\x60([^\x60\\]+)\x60\\<(${TYPE_ARGS})\\>`, 'g'); + +function mergeGenerics(line) { + if (!line.includes('\\<')) return line; + // Fixpoint, so deep nesting resolves in one call. Terminates because every replacement + // strictly reduces the number of `\<` on the line. + for (;;) { + const merged = line + .replace( + LINKED_GENERIC_RE, + (_, name, url, args) => `[\`${name}<${args.replaceAll('`', '')}>\`](${url})` + ) + .replace(PLAIN_GENERIC_RE, (_, name, args) => `\`${name}<${args.replaceAll('`', '')}>\``); + if (merged === line) return line; + line = merged; + } +} + +// Emitted when the union's pre-render text exceeds 70 chars, counting links that are then +// stripped inside code blocks, so every signature fits on one line once they are gone. The +// trailing space in the `: ` line ending is what keeps this off hand-written example code. +const UNION_CONTINUATION_RE = /^\s*\| /; + +function collapseWrappedUnion(lines, i) { + if (!lines[i].endsWith(': ')) return; + let j = i + 1; + while (j < lines.length && UNION_CONTINUATION_RE.test(lines[j])) { + const member = lines[j].replace(UNION_CONTINUATION_RE, ''); + // After `x): ` the next line starts a fresh union, so it joins without a `|`. + lines[i] += lines[i].endsWith(': ') ? member : ` | ${member}`; + j++; + } + lines.splice(i + 1, j - i - 1); +} + +// Retitled to `new ClassName()` so Starlight's slugger derives the #new-classname anchors +// existing links expect. The name comes from the signature code block below the heading. +function renameConstructorHeading(lines, i) { + const match = /^(#{2,6}) Constructor$/.exec(lines[i]); + if (!match) return; + // Scan to the next heading, so an extra emitted line can't silently disable the rename. + for (let j = i + 1; j < lines.length; j++) { + if (HEADING_RE.test(lines[j])) return; + if (!FENCE_MARKER_RE.test(lines[j])) continue; + const name = /^new ([A-Za-z0-9_$]+)/.exec((lines[j + 1] ?? '').trim()); + if (name) lines[i] = `${match[1]} new ${name[1]}()`; + return; + } +} + +function transformProseLine(line) { + if (line.startsWith('|') && line.includes(':::')) { + line = line.replace( + TABLE_ASIDE_RE, + (_, type, title, content) => + `**${title || type.charAt(0).toUpperCase() + type.slice(1)}** ${content}` + ); + } + if (line.includes('\\`')) { + if (HEADING_RE.test(line)) { + line = unescapeCodeSpans(line); + } else { + line = line.replace(LINK_LABEL_RE, (_, label) => `[${unescapeCodeSpans(label)}]`); + } + } + return mergeGenerics(line); +} + +export function normalizeGeneratedPage(content) { + // Inside a fence only the wrapped-union collapse runs; example code stays verbatim. Per + // CommonMark only a fence of the same character, at least as long, alone on its line closes + // the block, so a ~~~ or nested fence *inside* a ``` block cannot desync the state. + const lines = content.split('\n'); + let fence = null; + for (let i = 0; i < lines.length; i++) { + const marker = FENCE_MARKER_RE.exec(lines[i]); + if (fence) { + if ( + marker && + marker[1][0] === fence[0] && + marker[1].length >= fence.length && + lines[i].trim() === marker[1] + ) { + fence = null; + } else { + collapseWrappedUnion(lines, i); + } + continue; + } + if (marker) { + fence = marker[1]; + continue; + } + renameConstructorHeading(lines, i); + lines[i] = transformProseLine(lines[i]); + } + return lines.join('\n'); +} diff --git a/packages/tauri-typedoc/normalize.test.mjs b/packages/tauri-typedoc/normalize.test.mjs new file mode 100644 index 0000000000..bcdfe4de14 --- /dev/null +++ b/packages/tauri-typedoc/normalize.test.mjs @@ -0,0 +1,180 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { normalizeGeneratedPage } from './normalize.mjs'; + +const n = normalizeGeneratedPage; + +test('unescapes inline code in headings', () => { + assert.equal( + n('### Restricting access to the open \\| \\`open\\` API'), + '### Restricting access to the open \\| `open` API' + ); +}); + +test('unescapes inline code in link labels (also inside headings)', () => { + assert.equal( + n('### Restricting access to the [\\`open\\`](/reference/javascript/shell/#open) API'), + '### Restricting access to the [`open`](/reference/javascript/shell/#open) API' + ); + assert.equal( + n( + 'the [\\`$APPDATA\\` directory](https://v2.tauri.app/reference/javascript/api/namespacepath/#appdatadir):' + ), + 'the [`$APPDATA` directory](https://v2.tauri.app/reference/javascript/api/namespacepath/#appdatadir):' + ); +}); + +test('leaves a code span containing a backslash alone', () => { + assert.equal(n('- `\\` on Windows'), '- `\\` on Windows'); +}); + +test('pairs escaped spans correctly when content contains a backslash', () => { + assert.equal(n('### Use \\`C:\\foo\\` and \\`bar\\`'), '### Use `C:\\foo` and `bar`'); +}); + +test('leaves escaped backticks in ordinary prose alone (headings/labels only)', () => { + const prose = 'type \\` to open and \\` to close a code span'; + assert.equal(n(prose), prose); +}); + +test('leaves an empty escaped pair alone (would become a runaway `` span)', () => { + assert.equal(n('### a \\`\\` b'), '### a \\`\\` b'); +}); + +test('rewrites asides inside table cells to bold labels', () => { + assert.equal( + n( + '| ~~`okLabel?`~~ | `string` | The label. :::caution[Deprecated] Use [`buttons`](/x/#y) instead. ::: | z |' + ), + '| ~~`okLabel?`~~ | `string` | The label. **Deprecated** Use [`buttons`](/x/#y) instead. | z |' + ); + // no title -> capitalized type + assert.equal(n('| a | :::note x ::: |'), '| a | **Note** x |'); +}); + +test('keeps asides outside tables untouched', () => { + const aside = ':::caution[Deprecated]\nUse something else.\n:::'; + assert.equal(n(aside), aside); +}); + +test('merges simple linked generics into one code span', () => { + assert.equal( + n('[`Promise`](https://mdn/Promise)\\<`void`\\>'), + '[`Promise`](https://mdn/Promise)' + ); +}); + +test('merges nested generics innermost-first', () => { + assert.equal( + n('[`Promise`](https://mdn/Promise)\\<`AsyncIterableIterator`\\<`string`\\>\\>'), + '[`Promise>`](https://mdn/Promise)' + ); + assert.equal( + n('[`Promise`](https://mdn/Promise)\\<`Result`\\<`null`, `never`\\>\\>'), + '[`Promise>`](https://mdn/Promise)' + ); +}); + +test('keeps generics with linked type arguments fragmented (preserves links)', () => { + const line = '[`Promise`](https://mdn/Promise)\\<[`FileInfo`](#fileinfo)\\>'; + assert.equal(n(line), line); +}); + +test('fully merges deep nesting in a single call (idempotency)', () => { + const line = '[`A`](u)\\<`B`\\<`C`\\<`D`\\<`E`\\<`F`\\>\\>\\>\\>\\>'; + const once = n(line); + assert.equal(once, '[`A>>>>`](u)'); + assert.equal(n(once), once); +}); + +test('renames Constructor headings from the signature below', () => { + const input = [ + '', + '', + '##### Constructor', + '', + '```ts', + 'new Channel(onmessage?): Channel;', + '```', + ].join('\n'); + assert.match(n(input), /^##### new Channel\(\)$/m); +}); + +test('renames Constructor headings with multiline signatures', () => { + const input = ['##### Constructor', '', '```ts', 'new Webview(', ' label,', '```'].join('\n'); + assert.match(n(input), /^##### new Webview\(\)$/m); +}); + +test('does not touch the plural Constructors section heading', () => { + assert.equal(n('#### Constructors'), '#### Constructors'); +}); + +test('renames Constructor headings across extra intervening lines', () => { + const input = [ + '##### Constructor', + '', + '', + '', + 'Some emitted note.', + '', + '```ts', + 'new Resource(rid): Resource;', + '```', + ].join('\n'); + assert.match(n(input), /^##### new Resource\(\)$/m); +}); + +test('constructor rename stops at the next heading when no signature exists', () => { + const input = ['##### Constructor', '', '#### Methods', '', '```ts', 'new Foo();', '```'].join( + '\n' + ); + assert.match(n(input), /^##### Constructor$/m); +}); + +test('leaves fenced code blocks verbatim', () => { + const code = ['```ts', 'const s = `a \\` b`;', '// :::caution[Deprecated] x :::', '```'].join( + '\n' + ); + assert.equal(n(code), code); +}); + +test('a ~~~ line inside a ``` block does not desync fence tracking', () => { + const page = [ + '```ts', + '~~~anything', + 'code \\`x\\` stays', + '```', + '', + '### prose \\`y\\` transformed', + ].join('\n'); + const out = n(page); + assert.match(out, /code \\`x\\` stays/); + assert.match(out, /^### prose `y` transformed$/m); +}); + +test('leaves frontmatter untouched (supplied by typedoc-plugin-frontmatter)', () => { + const page = '---\ntitle: x\n---\n\nbody'; + assert.equal(n(page), page); +}); + +test('is idempotent over a page exercising every transform', () => { + const page = [ + '---', + 'title: "@tauri-apps/plugin-opener"', + '---', + '', + '### Restricting access to the open \\| \\`open\\` API', + '', + '| a | :::caution[Deprecated] gone ::: |', + '', + '##### Constructor', + '', + '```ts', + 'new Resource(rid): Resource;', + '```', + '', + '[`Promise`](https://mdn/Promise)\\<`void`\\>', + ].join('\n'); + const once = n(page); + assert.equal(n(once), once); +}); diff --git a/packages/tauri-typedoc/package.json b/packages/tauri-typedoc/package.json new file mode 100644 index 0000000000..df911256f0 --- /dev/null +++ b/packages/tauri-typedoc/package.json @@ -0,0 +1,21 @@ +{ + "name": "tauri-typedoc", + "version": "1.0.0", + "description": "JS API reference generation. Lives here so typedoc resolves compatible typescript version. Move back to main docs when typedoc supports ts7.", + "private": true, + "type": "module", + "main": "./typedoc-plugins.ts", + "license": "MIT", + "scripts": { + "test": "node --test normalize.test.mjs" + }, + "dependencies": { + "@astrojs/starlight": "0.41.7", + "starlight-typedoc": "^0.23.0", + "typedoc": "^0.28.0", + "typedoc-plugin-frontmatter": "^1.3.1", + "typedoc-plugin-markdown": "^4.12.0", + "typedoc-plugin-mdn-links": "^5.1.1", + "typescript": "5.5" + } +} diff --git a/packages/tauri-typedoc/typedoc-plugins.ts b/packages/tauri-typedoc/typedoc-plugins.ts new file mode 100644 index 0000000000..f63086fb49 --- /dev/null +++ b/packages/tauri-typedoc/typedoc-plugins.ts @@ -0,0 +1,299 @@ +import { createStarlightTypeDocPlugin } from 'starlight-typedoc'; +import type { StarlightPlugin, StarlightUserConfig } from '@astrojs/starlight/types'; +import { execSync } from 'node:child_process'; +import { createHash } from 'node:crypto'; +import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs'; +import { posix } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import type { StarlightTypeDocOptions } from 'starlight-typedoc'; +import { normalizeGeneratedPage } from './normalize.mjs'; + +// Generation is skipped when the output exists and matches the checked-out submodule revision, +// so a typedoc option change alone regenerates nothing: delete the stamp file to force it. + +// POSIX separators throughout: TypeDoc rejects Windows `\` in entryPoints globs. +const { join, dirname } = posix; +const PKG_DIR = fileURLToPath(new URL('.', import.meta.url)).replaceAll('\\', '/'); +const ROOT = fileURLToPath(new URL('../..', import.meta.url)).replaceAll('\\', '/'); +const TAURI_SUBMODULE = join(ROOT, 'packages/tauri'); +const API_PACKAGE = join(TAURI_SUBMODULE, 'packages/api'); +const PLUGINS_WORKSPACE = join(ROOT, 'packages/plugins-workspace'); +const PLUGINS_DIR = join(PLUGINS_WORKSPACE, 'plugins'); +const DOCS_DIR = join(ROOT, 'src/content/docs'); +const REF_BASE = 'reference/javascript'; +const REF_DIR = join(DOCS_DIR, REF_BASE); +const STAMP_FILE = join(ROOT, '.astro/tauri-typedoc-revisions.json'); + +const CORE_OUTPUT = `${REF_BASE}/api`; + +// Stamped alongside the revisions, so editing normalize.mjs re-normalizes without regenerating. +const NORMALIZE_STAMP_KEY = 'normalize.mjs'; +const NORMALIZE_HASH = createHash('sha1') + .update(readFileSync(join(PKG_DIR, 'normalize.mjs'))) + .digest('hex'); + +type SidebarItem = NonNullable[number]; + +function discoverPlugins(): string[] { + if (!existsSync(PLUGINS_DIR)) return []; + return readdirSync(PLUGINS_DIR, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .map((entry) => entry.name) + .filter((name) => existsSync(join(PLUGINS_DIR, name, 'guest-js/index.ts'))) + .sort(); +} + +// `frontmatterGlobals` comes from typedoc-plugin-frontmatter at runtime, not the bundled types. +const sharedTypeDoc: NonNullable & { + frontmatterGlobals?: Record; +} = { + plugin: [ + 'typedoc-plugin-mdn-links', + 'typedoc-plugin-frontmatter', + join(PKG_DIR, 'typedoc-tauri-plugin.mjs'), + ], + // Starlight's on-page ToC stops at h3, which would drop method and enum-member headings. + frontmatterGlobals: { tableOfContents: { maxHeadingLevel: 3 } }, + // Plugin sources carry TS errors of their own; type-checking them is their CI's job. + skipErrorChecking: true, + // Git detection is unreliable in submodule checkouts. Note `displayBasePath`, not + // `basePath`: under disableGit the {path} placeholder resolves against the former only. + disableGit: true, + outputFileStrategy: 'modules', + flattenOutputFiles: true, + entryFileName: 'index.md', + useCodeBlocks: true, + expandParameters: true, + expandObjects: true, + blockTagsPreserveOrder: ['@example'], + parametersFormat: 'table', + classPropertiesFormat: 'table', + interfacePropertiesFormat: 'table', + typeAliasPropertiesFormat: 'table', + typeDeclarationFormat: 'table', + enumMembersFormat: 'table', + useHTMLAnchors: true, + // hideGroupHeadings: true, + groupOrder: [ + 'Documents', + 'Modules', + 'Namespaces', + 'Functions', + 'Enumerations', + 'Enumeration Members', + 'Classes', + 'Interfaces', + 'Type Aliases', + 'Constructors', + 'Properties', + 'Variables', + 'Accessors', + 'Methods', + 'References', + ], +}; + +function outputIndexExists(output: string): boolean { + return existsSync(join(DOCS_DIR, output, 'index.md')); +} + +function submoduleRevision(dir: string): string | null { + try { + return execSync('git rev-parse HEAD', { cwd: dir, stdio: ['ignore', 'pipe', 'ignore'] }) + .toString() + .trim(); + } catch { + return null; + } +} + +/** Map of output directory -> submodule revision the docs there were generated from. */ +function readStamp(): Record { + try { + return JSON.parse(readFileSync(STAMP_FILE, 'utf8')); + } catch { + return {}; + } +} + +function needsGeneration( + output: string, + revision: string | null, + stamp: Record +): boolean { + if (!outputIndexExists(output)) return true; + // No resolvable revision (no git): fall back to the existence check above. + return revision !== null && stamp[output] !== revision; +} + +// This pipeline only writes into per-package subdirectories, so a flat `.md` here is leftover +// from an older checkout and would shadow the real pages. +function removeStaleFlatFiles(): void { + if (!existsSync(REF_DIR)) return; + for (const entry of readdirSync(REF_DIR, { withFileTypes: true })) { + if (entry.isFile() && entry.name.endsWith('.md')) rmSync(join(REF_DIR, entry.name)); + } +} + +function walkMarkdownFiles(dir: string): string[] { + return readdirSync(dir, { recursive: true, withFileTypes: true }) + .filter((entry) => entry.isFile() && entry.name.endsWith('.md')) + .map((entry) => join(entry.parentPath.replaceAll('\\', '/'), entry.name)); +} + +// Must be pushed last, since Starlight runs plugins in array order. The stamp is written only +// after generation succeeds, so a failed build stays stale and retries next time. +function makeFinalizerPlugin( + stamp: Record, + generated: Record +): StarlightPlugin { + return { + name: 'tauri-typedoc-finalizer', + hooks: { + 'config:setup'({ command }) { + if (command === 'preview') return; + if (Object.keys(generated).length === 0 && stamp[NORMALIZE_STAMP_KEY] === NORMALIZE_HASH) + return; + if (existsSync(REF_DIR)) { + for (const file of walkMarkdownFiles(REF_DIR)) { + const content = readFileSync(file, 'utf8'); + const normalized = normalizeGeneratedPage(content); + if (normalized !== content) writeFileSync(file, normalized); + } + } + mkdirSync(dirname(STAMP_FILE), { recursive: true }); + writeFileSync( + STAMP_FILE, + `${JSON.stringify( + { ...stamp, ...generated, [NORMALIZE_STAMP_KEY]: NORMALIZE_HASH }, + null, + 2 + )}\n` + ); + }, + }, + }; +} + +function makePackagePlugin(opts: { + tsconfig: string; + entryPoints: string[]; + output: string; + displayBasePath: string; + sourceLinkTemplate: string; +}): StarlightPlugin { + // A fresh instance per package, each with its own output dir: shared instances collide on + // the sidebar placeholder, and TypeDoc wipes its output dir on every run. + const [instance] = createStarlightTypeDocPlugin(); + return instance({ + tsconfig: opts.tsconfig, + entryPoints: opts.entryPoints, + output: opts.output, + // starlight-typedoc otherwise emits `prev: false` / `next: false`, hiding the links. + pagination: true, + typeDoc: { + ...sharedTypeDoc, + displayBasePath: opts.displayBasePath, + sourceLinkTemplate: opts.sourceLinkTemplate, + }, + }); +} + +// Explicit rather than a plain `autogenerate` over reference/javascript, which would render +// each plugin's one-page directory as a nested single-item group named after the package. +function buildSidebarItems(coreReady: boolean, pluginNames: string[]): SidebarItem[] { + // Docs already on disk count too, so the sidebar survives a skipped or missing submodule. + const names = new Set(pluginNames); + if (existsSync(REF_DIR)) { + for (const entry of readdirSync(REF_DIR, { withFileTypes: true })) { + if ( + entry.isDirectory() && + entry.name !== 'api' && + outputIndexExists(`${REF_BASE}/${entry.name}`) + ) { + names.add(entry.name); + } + } + } + + const items: SidebarItem[] = []; + if (coreReady || outputIndexExists(CORE_OUTPUT)) { + // Starlight 0.39 dropped labeled autogenerate groups; the nesting here is the supported shape. + items.push({ + label: 'api', + collapsed: true, + items: [{ autogenerate: { directory: CORE_OUTPUT, collapsed: true } }], + }); + } + for (const name of [...names].sort()) { + items.push({ label: name, link: `/${REF_BASE}/${name}/` }); + } + return items; +} + +export function getTauriTypeDocPlugins(): { + plugins: StarlightPlugin[]; + sidebarItems: SidebarItem[]; +} { + removeStaleFlatFiles(); + + const stamp = readStamp(); + const plugins: StarlightPlugin[] = []; + const generated: Record = {}; + + // Core @tauri-apps/api + const coreReady = existsSync(join(API_PACKAGE, 'node_modules')); + if (coreReady) { + const coreRevision = submoduleRevision(TAURI_SUBMODULE); + if (needsGeneration(CORE_OUTPUT, coreRevision, stamp)) { + plugins.push( + makePackagePlugin({ + tsconfig: join(API_PACKAGE, 'tsconfig.json'), + entryPoints: [join(API_PACKAGE, 'src/index.ts')], + output: CORE_OUTPUT, + displayBasePath: TAURI_SUBMODULE, + sourceLinkTemplate: 'https://github.com/tauri-apps/tauri/blob/dev/{path}#L{line}', + }) + ); + if (coreRevision) generated[CORE_OUTPUT] = coreRevision; + } + } else if (outputIndexExists(CORE_OUTPUT)) { + console.warn( + '[typedoc] Tauri V2 submodule is not initialized, serving previously generated @tauri-apps/api docs which may be stale.' + ); + } else { + console.warn( + 'Tauri V2 submodule is not initialized, respective API routes will not be rendered.' + ); + } + + // Plugins from plugins-workspace (auto-discovered) + const pluginsReady = existsSync(join(PLUGINS_WORKSPACE, 'node_modules')); + const pluginNames = pluginsReady ? discoverPlugins() : []; + if (pluginsReady) { + const pluginsRevision = submoduleRevision(PLUGINS_WORKSPACE); + for (const name of pluginNames) { + const output = `${REF_BASE}/${name}`; + if (!needsGeneration(output, pluginsRevision, stamp)) continue; + plugins.push( + makePackagePlugin({ + tsconfig: join(PLUGINS_DIR, name, 'tsconfig.json'), + entryPoints: [join(PLUGINS_DIR, name, 'guest-js/index.ts')], + output, + displayBasePath: PLUGINS_WORKSPACE, + sourceLinkTemplate: + 'https://github.com/tauri-apps/plugins-workspace/blob/v2/{path}#L{line}', + }) + ); + if (pluginsRevision) generated[output] = pluginsRevision; + } + } else { + console.warn( + 'Plugins workspace submodule is not initialized, respective API routes will not be rendered.' + ); + } + + plugins.push(makeFinalizerPlugin(stamp, generated)); + + return { plugins, sidebarItems: buildSidebarItems(coreReady, pluginNames) }; +} diff --git a/packages/tauri-typedoc/typedoc-tauri-plugin.mjs b/packages/tauri-typedoc/typedoc-tauri-plugin.mjs new file mode 100644 index 0000000000..d891d3aa27 --- /dev/null +++ b/packages/tauri-typedoc/typedoc-tauri-plugin.mjs @@ -0,0 +1,104 @@ +import { Converter, ReflectionKind, makeRecursiveVisitor } from 'typedoc'; +import { MarkdownPageEvent } from 'typedoc-plugin-markdown'; + +/** + * Two upstream `#### Platform-specific` variants, rewritten at the reflection level so no + * source file is touched. Genuine section titles (`## Security`) are deliberately untouched. + * + * `#### Platform-specific:` -> bold label, else the `####` leaks into a table cell + * `#### - **macOS / iOS**: Unsupported` -> list item, else it becomes a real `

` anchored + * at `#--macos--android--ios-unsupported` + */ +const PLATFORM_HEADING_RE = /^#{1,6}[ \t]+(Platform-specific):?[ \t]*$/gm; +const LIST_ITEM_HEADING_RE = /^#{1,6}[ \t]+(-[ \t]+\S.*)$/gm; + +// TS 5.7+ makes Uint8Array generic, so signatures pick up lib-level `` noise. +// Only those two are dropped; an explicit `Uint8Array` survives. +function stripUint8Generic(type) { + if (type.name !== 'Uint8Array' || type.typeArguments?.length !== 1) return; + const arg = type.typeArguments[0]; + if (arg.type === 'reference' && (arg.name === 'ArrayBuffer' || arg.name === 'ArrayBufferLike')) { + type.typeArguments = undefined; + } +} + +const STRIP_UINT8_VISITOR = makeRecursiveVisitor({ reference: stripUint8Generic }); + +function normalizeCommentText(text) { + if (!text.includes('#')) return text; + return text.replace(PLATFORM_HEADING_RE, '**$1**').replace(LIST_ITEM_HEADING_RE, '$1'); +} + +function normalizeCommentDisplayParts(parts) { + for (const part of parts) { + if (part.kind === 'text') part.text = normalizeCommentText(part.text); + } +} + +function normalizeComment(comment) { + if (!comment) return; + normalizeCommentDisplayParts(comment.summary); + for (const tag of comment.blockTags) normalizeCommentDisplayParts(tag.content); +} + +// Plain-text first paragraph of a reflection's summary, for `description:` frontmatter. Links +// keep their label and inline code its text; anything else is left as written. +function summaryText(reflection) { + const summary = reflection.comment?.summary; + if (!summary?.length) return undefined; + const text = summary + .map((part) => part.text) + .join('') + .trim() + .split(/\n\s*\n/)[0] + .replace(/\[([^\]]+)\]\([^)]*\)/g, '$1') + .replace(/`([^`]*)`/g, '$1') + .replace(/\s+/g, ' ') + .trim(); + return text || undefined; +} + +export function load(app) { + // starlight-typedoc sets `title` to the bare reflection name in its own BEGIN listener, and + // priority -1 runs after it. A namespace page titled `path` means nothing once the link is + // shared, so it takes the import specifier and keeps the short name for the sidebar. The + // summary doubles as the page's meta description and its Open Graph card text. + app.renderer.on( + MarkdownPageEvent.BEGIN, + (page) => { + if (!page.frontmatter) return; + const { model, project } = page; + if (model.kind === ReflectionKind.Namespace && project.packageName) { + page.frontmatter.title = `${project.packageName}/${model.name}`; + page.frontmatter.sidebar = { ...page.frontmatter.sidebar, label: model.name }; + } + const description = summaryText(model); + if (description) page.frontmatter.description = description; + }, + -1 + ); + + app.converter.on(Converter.EVENT_RESOLVE_BEGIN, (context) => { + for (const reflection of Object.values(context.project.reflections)) { + normalizeComment(reflection.comment); + for (const sig of reflection.signatures ?? []) normalizeComment(sig.comment); + // Signatures and parameters are registered reflections too, so this flat pass reaches + // return, parameter and property types. + reflection.type?.visit(STRIP_UINT8_VISITOR); + } + }); + + // Re-exports from a dependency (fs re-exporting BaseDirectory) resolve under node_modules, + // and `sourceLinkTemplate` would give them a GitHub URL that doesn't exist. Drop the link + // and shorten the pnpm store path to `@tauri-apps/api/path.d.ts`. + app.converter.on(Converter.EVENT_RESOLVE_END, (context) => { + for (const reflection of Object.values(context.project.reflections)) { + for (const source of reflection.sources ?? []) { + const marker = source.fileName.lastIndexOf('node_modules/'); + if (marker === -1) continue; + source.url = undefined; + source.fileName = source.fileName.slice(marker + 'node_modules/'.length); + } + } + }); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d52864177..b62706280b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,25 +16,25 @@ importers: version: 4.0.19 '@astrojs/starlight': specifier: 0.41.7 - version: 0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) + version: 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) '@lunariajs/core': specifier: ^0.1.1 - version: 0.1.1 + version: 0.1.1(supports-color@10.2.2) '@lunariajs/starlight': specifier: ^0.1.1 - version: 0.1.1(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + version: 0.1.1(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) '@types/mdast': specifier: ^4.0.4 version: 4.0.4 astro: specifier: 7.2.2 - version: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + version: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) astro-d2: specifier: ^0.13.0 - version: 0.13.1(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + version: 0.13.1(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) astrojs-service-worker: specifier: ^2.0.2 - version: 2.0.2(@types/babel__core@7.20.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + version: 2.0.2(@types/babel__core@7.20.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) mdast-util-definitions: specifier: ^6.0.0 version: 6.0.0 @@ -49,10 +49,10 @@ importers: version: 0.14.1 remark-gfm: specifier: ^4.0.1 - version: 4.0.1 + version: 4.0.1(supports-color@10.2.2) remark-parse: specifier: ^11.0.0 - version: 11.0.0 + version: 11.0.0(supports-color@10.2.2) remark-smartypants: specifier: ^3.0.2 version: 3.0.3 @@ -64,19 +64,25 @@ importers: version: 0.35.3(@types/node@26.1.1) starlight-blog: specifier: ^0.28.0 - version: 0.28.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) + version: 0.28.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) starlight-links-validator: specifier: ^0.25.2 - version: 0.25.3(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + version: 0.25.3(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) starlight-llms-txt: specifier: ^0.11.0 - version: 0.11.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + version: 0.11.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) starlight-sidebar-topics: specifier: ^0.8.0 - version: 0.8.0(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3)) + version: 0.8.0(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3)) + tauri-typedoc: + specifier: workspace:* + version: link:packages/tauri-typedoc unified: specifier: ^11.0.5 version: 11.0.5 + vite: + specifier: ^8.1.4 + version: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) devDependencies: '@astrojs/check': specifier: ^0.9.9 @@ -157,26 +163,11 @@ importers: specifier: ^7.0.2 version: 7.0.2 - packages/js-api-generator: - dependencies: - typedoc: - specifier: 0.26.6 - version: 0.26.6(typescript@5.5.4) - typedoc-plugin-markdown: - specifier: 4.2.6 - version: 4.2.6(typedoc@0.26.6(typescript@5.5.4)) - typedoc-plugin-mdn-links: - specifier: 3.2.11 - version: 3.2.11(typedoc@0.26.6(typescript@5.5.4)) - typescript: - specifier: '5.5' - version: 5.5.4 - packages/releases-site: dependencies: make-fetch-happen: specifier: ^16.0.1 - version: 16.0.1 + version: 16.0.1(supports-color@10.2.2) semver: specifier: ^7.6.3 version: 7.8.5 @@ -191,6 +182,30 @@ importers: specifier: ^7.5.8 version: 7.7.1 + packages/tauri-typedoc: + dependencies: + '@astrojs/starlight': + specifier: 0.41.7 + version: 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.5.4) + starlight-typedoc: + specifier: ^0.23.0 + version: 0.23.1(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.5.4))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typedoc-plugin-markdown@4.12.0(typedoc@0.28.20(typescript@5.5.4)))(typedoc@0.28.20(typescript@5.5.4)) + typedoc: + specifier: ^0.28.0 + version: 0.28.20(typescript@5.5.4) + typedoc-plugin-frontmatter: + specifier: ^1.3.1 + version: 1.3.1(typedoc-plugin-markdown@4.12.0(typedoc@0.28.20(typescript@5.5.4))) + typedoc-plugin-markdown: + specifier: ^4.12.0 + version: 4.12.0(typedoc@0.28.20(typescript@5.5.4)) + typedoc-plugin-mdn-links: + specifier: ^5.1.1 + version: 5.1.1(typedoc@0.28.20(typescript@5.5.4)) + typescript: + specifier: '5.5' + version: 5.5.4 + packages: '@ampproject/remapping@2.3.0': @@ -1176,6 +1191,9 @@ packages: resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} engines: {node: ^20.17.0 || >=22.9.0} + '@gerrit0/mini-shiki@3.23.0': + resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} + '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} @@ -1720,29 +1738,23 @@ packages: peerDependencies: rollup: ^1.20.0||^2.0.0 - '@shikijs/core@1.29.2': - resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - '@shikijs/core@4.4.1': resolution: {integrity: sha512-VeR2CY6Nn9/WbisoYLOQZ7HZOnwTrpBuOw4wExjqLnBCi62BNWynBUO6K2uPIASPFJwAv7cX1fUu+LrPlSstcw==} engines: {node: '>=20'} - '@shikijs/engine-javascript@1.29.2': - resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - '@shikijs/engine-javascript@4.4.1': resolution: {integrity: sha512-6U4lJBh8LTvIkEVqRHv/rr3ruwtO6IweFQt1ME1ntHJMGHS+6N86vfYGO1o8c/DtOCTia2lfhdQBtBrps1sDfQ==} engines: {node: '>=20'} - '@shikijs/engine-oniguruma@1.29.2': - resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} '@shikijs/engine-oniguruma@4.4.1': resolution: {integrity: sha512-p23RugMKss0r5DAtRJW1yAXUDl60JvhQYV20yuxei//26JyDSJefV3umyWzzwep2weblMnJGDYahuti6XkcMgA==} engines: {node: '>=20'} - '@shikijs/langs@1.29.2': - resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} '@shikijs/langs@4.4.1': resolution: {integrity: sha512-xb2kCMloBCIraIy2fS5MW0t/BxVY3q2nDyQKBoeSeq6KNrQbShHetCFlw2n35fGIJ6t3+hXDLQogP5ir9O9bvA==} @@ -1752,15 +1764,15 @@ packages: resolution: {integrity: sha512-ko2OfDoG89YuQ7xL5LtcQiWKb7NIv1Ephb7g48TVU198OzAMLC8lXVEwaJGHK4sUMYrfAGJDqYmNLOLiW/Kz8w==} engines: {node: '>=20'} - '@shikijs/themes@1.29.2': - resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} '@shikijs/themes@4.4.1': resolution: {integrity: sha512-wudOaoFro+/Zl9gQv2W1Ur5XlVduqvTuYLI483Xi0wgc1A+cy1hfB2r6ac6ufBgF+ID7KJEW7L41MHrzQ4wH+w==} engines: {node: '>=20'} - '@shikijs/types@1.29.2': - resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} '@shikijs/types@4.4.1': resolution: {integrity: sha512-GOwCLQDHM5EjGUWNPrhzJbr6JP8V/Dx/CDVkWvbZ1Avw5JFnNUckrgbLmE07qtg4WlW7Q7QFndhjIkeU9XMPvw==} @@ -2077,15 +2089,30 @@ packages: '@volar/language-server@2.4.28': resolution: {integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@volar/language-service@2.4.28': resolution: {integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@volar/source-map@2.4.28': resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} '@volar/typescript@2.4.28': resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@vscode/emmet-helper@2.11.0': resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} @@ -2530,9 +2557,6 @@ packages: emmet@2.4.11: resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} - emoji-regex-xs@1.0.0: - resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} - emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -3202,8 +3226,8 @@ packages: resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} engines: {node: '>= 12.0.0'} - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + linkify-it@5.0.2: + resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} @@ -3251,8 +3275,8 @@ packages: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + markdown-it@14.3.0: + resolution: {integrity: sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==} hasBin: true markdown-table@3.0.4: @@ -3463,10 +3487,6 @@ packages: resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} - minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} - minipass-collect@2.0.1: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} @@ -3571,9 +3591,6 @@ packages: oniguruma-parser@0.12.2: resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} - oniguruma-to-es@2.3.0: - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} - oniguruma-to-es@4.3.6: resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} @@ -3751,18 +3768,12 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex-recursion@5.1.1: - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} - regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.1.1: - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} - regex@6.1.0: resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} @@ -3949,9 +3960,6 @@ packages: '@types/node': optional: true - shiki@1.29.2: - resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} - shiki@4.4.1: resolution: {integrity: sha512-rFP+iYKzjLEIqiMiKANhARqiAbk4deDhWnBtnUO/K0D0dPxMGDH4N0FVfBY/VeI+lPrV4wNGCHQZp7EOr7NNBw==} engines: {node: '>=20'} @@ -4043,6 +4051,15 @@ packages: peerDependencies: '@astrojs/starlight': '>=0.38.0' + starlight-typedoc@0.23.1: + resolution: {integrity: sha512-H45Mxv4mZ1xUMhUNjTR4CwKDgKKHZboQA5v5+vTVMdjlCX02Xo7veTB7+F/ivmMHPmQ7SV5auF2BTlU/EpQIoQ==} + engines: {node: '>=22.12.0'} + peerDependencies: + '@astrojs/starlight': '>=0.39.0' + astro: '>=6.0.0' + typedoc: '>=0.28.0' + typedoc-plugin-markdown: '>=4.6.0' + stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -4188,23 +4205,28 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typedoc-plugin-markdown@4.2.6: - resolution: {integrity: sha512-k33o2lZSGpL3GjH28eW+RsujzCYFP0L5GNqpK+wa4CBcMOxpj8WV7SydNRLS6eSa2UvaPvNVJTaAZ6Tm+8GXoA==} + typedoc-plugin-frontmatter@1.3.1: + resolution: {integrity: sha512-wXKnhpiOuG3lY9GGKiKcXNrhKbPYm/jA5wbzGE/kKdwlSu8++ZbEuKA0K2dvIna3F+5EQrv+3AeObHkS1QP7JA==} + peerDependencies: + typedoc-plugin-markdown: '>=4.9.0' + + typedoc-plugin-markdown@4.12.0: + resolution: {integrity: sha512-eJDEMAfxCmede22c/Jw7d0FA13ggAQv+KkwQYKYCdqI02cin6Rc9QRwbG/7XvvHWinuFejySnZVUWDtvGk3Vbg==} engines: {node: '>= 18'} peerDependencies: - typedoc: 0.26.x + typedoc: 0.28.x - typedoc-plugin-mdn-links@3.2.11: - resolution: {integrity: sha512-0VlF21O3S1L373UTkUFleoQDrgkh5quAqjCVusBaa3czLahK6LsUxQj6PRqbT5xN0emUVYnT7UTwe8haU2MFrw==} + typedoc-plugin-mdn-links@5.1.1: + resolution: {integrity: sha512-fLlYudnlGkE9uspOEm/SBXwr+G0RbxoDZiHAVsCg+5NwKe2aUxjZK1YyQfleNZydImanzkX2oUJF29xbEeOSWw==} peerDependencies: - typedoc: '>= 0.23.14 || 0.24.x || 0.25.x || 0.26.x' + typedoc: 0.27.x || 0.28.x - typedoc@0.26.6: - resolution: {integrity: sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA==} - engines: {node: '>= 18'} + typedoc@0.28.20: + resolution: {integrity: sha512-uSKqkh8Cr48vllnEy+jdaAgOeR6Y+QCBW7usgUsKj7gJEfR7stw9U/fE49LBnj2tPRKPY0c0EBJSWe9Appmplg==} + engines: {node: '>= 18', pnpm: '>= 10'} hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} @@ -4495,17 +4517,23 @@ packages: resolution: {integrity: sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==} peerDependencies: '@volar/language-service': ~2.4.0 + typescript: '*' peerDependenciesMeta: '@volar/language-service': optional: true + typescript: + optional: true volar-service-typescript@0.0.71: resolution: {integrity: sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==} peerDependencies: '@volar/language-service': ~2.4.0 + typescript: '*' peerDependenciesMeta: '@volar/language-service': optional: true + typescript: + optional: true volar-service-yaml@0.0.71: resolution: {integrity: sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==} @@ -4779,17 +4807,17 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.5 '@volar/kit': 2.4.28(typescript@5.9.3) '@volar/language-core': 2.4.28 - '@volar/language-server': 2.4.28 - '@volar/language-service': 2.4.28 + '@volar/language-server': 2.4.28(typescript@5.9.3) + '@volar/language-service': 2.4.28(typescript@5.9.3) muggle-string: 0.4.1 tinyglobby: 0.2.17 - volar-service-css: 0.0.71(@volar/language-service@2.4.28) - volar-service-emmet: 0.0.71(@volar/language-service@2.4.28) - volar-service-html: 0.0.71(@volar/language-service@2.4.28) - volar-service-prettier: 0.0.71(@volar/language-service@2.4.28)(prettier@3.9.6) - volar-service-typescript: 0.0.71(@volar/language-service@2.4.28) - volar-service-typescript-twoslash-queries: 0.0.71(@volar/language-service@2.4.28) - volar-service-yaml: 0.0.71(@volar/language-service@2.4.28) + volar-service-css: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)) + volar-service-emmet: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)) + volar-service-html: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)) + volar-service-prettier: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3))(prettier@3.9.6) + volar-service-typescript: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3))(typescript@5.9.3) + volar-service-typescript-twoslash-queries: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3))(typescript@5.9.3) + volar-service-yaml: 0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)) vscode-html-languageservice: 5.6.2 vscode-uri: 3.1.0 optionalDependencies: @@ -4798,7 +4826,7 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@7.2.2': + '@astrojs/markdown-remark@7.2.2(supports-color@10.2.2)': dependencies: '@astrojs/internal-helpers': 0.10.2 '@astrojs/prism': 4.0.2 @@ -4808,8 +4836,8 @@ snapshots: 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-gfm: 4.0.1(supports-color@10.2.2) + remark-parse: 11.0.0(supports-color@10.2.2) remark-rehype: 11.1.2 remark-smartypants: 3.0.3 unified: 11.0.5 @@ -4828,19 +4856,19 @@ snapshots: hast-util-from-html: 2.0.3 satteri: 0.9.5 - '@astrojs/mdx@7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))': + '@astrojs/mdx@7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)': dependencies: '@astrojs/internal-helpers': 0.10.2 - '@astrojs/markdown-remark': 7.2.2 - '@mdx-js/mdx': 3.1.1 + '@astrojs/markdown-remark': 7.2.2(supports-color@10.2.2) + '@mdx-js/mdx': 3.1.1(supports-color@10.2.2) acorn: 8.16.0 - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) es-module-lexer: 2.3.1 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 piccolore: 0.1.3 rehype-raw: 7.0.0 - remark-gfm: 4.0.1 + remark-gfm: 4.0.1(supports-color@10.2.2) remark-smartypants: 3.0.3 source-map: 0.7.6 unist-util-visit: 5.1.0 @@ -4866,17 +4894,55 @@ snapshots: stream-replace-string: 2.0.0 zod: 4.4.3 - '@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3)': + '@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.5.4)': dependencies: '@astrojs/markdown-satteri': 0.3.5 - '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) '@astrojs/sitemap': 3.7.3 '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.5 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) - astro-expressive-code: 0.44.0(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro-expressive-code: 0.44.0(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + bcp-47: 2.1.0 + hast-util-from-html: 2.0.3 + hast-util-select: 6.0.4 + hast-util-to-string: 3.0.1 + hastscript: 9.0.1 + i18next: 26.3.6(typescript@5.5.4) + js-yaml: 4.3.0 + klona: 2.0.6 + magic-string: 0.30.21 + mdast-util-directive: 3.1.0(supports-color@10.2.2) + mdast-util-to-markdown: 2.1.2 + mdast-util-to-string: 4.0.0 + pagefind: 1.5.2 + rehype: 13.0.2 + rehype-format: 5.0.1 + remark-directive: 4.0.0(supports-color@10.2.2) + satteri: 0.9.5 + ultrahtml: 1.7.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + optionalDependencies: + '@astrojs/markdown-remark': 7.2.2(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color + - typescript + + '@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3)': + dependencies: + '@astrojs/markdown-satteri': 0.3.5 + '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) + '@astrojs/sitemap': 3.7.3 + '@pagefind/default-ui': 1.3.0 + '@types/hast': 3.0.5 + '@types/js-yaml': 4.0.9 + '@types/mdast': 4.0.4 + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro-expressive-code: 0.44.0(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -4886,20 +4952,20 @@ snapshots: js-yaml: 4.3.0 klona: 2.0.6 magic-string: 0.30.21 - mdast-util-directive: 3.1.0 + mdast-util-directive: 3.1.0(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 mdast-util-to-string: 4.0.0 pagefind: 1.5.2 rehype: 13.0.2 rehype-format: 5.0.1 - remark-directive: 4.0.0 + remark-directive: 4.0.0(supports-color@10.2.2) satteri: 0.9.5 ultrahtml: 1.7.0 unified: 11.0.5 unist-util-visit: 5.1.0 vfile: 6.0.3 optionalDependencies: - '@astrojs/markdown-remark': 7.2.2 + '@astrojs/markdown-remark': 7.2.2(supports-color@10.2.2) transitivePeerDependencies: - supports-color - typescript @@ -4923,20 +4989,20 @@ snapshots: '@babel/compat-data@7.26.3': {} - '@babel/core@7.26.0': + '@babel/core@7.26.0(supports-color@10.2.2)': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 '@babel/generator': 7.26.3 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helpers': 7.26.0 '@babel/parser': 7.29.8 '@babel/template': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/traverse': 7.26.3(supports-color@10.2.2) '@babel/types': 7.29.8 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -4967,32 +5033,32 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.26.0)': + '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.26.0)': + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -5015,19 +5081,19 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@7.25.9(supports-color@10.2.2)': dependencies: - '@babel/traverse': 7.26.3 + '@babel/traverse': 7.26.3(supports-color@10.2.2) '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-module-imports': 7.25.9(supports-color@10.2.2) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.26.3 + '@babel/traverse': 7.26.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -5037,23 +5103,23 @@ snapshots: '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.26.0)': + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.24.5 - '@babel/helper-replace-supers@7.24.1(@babel/core@7.26.0)': + '@babel/helper-replace-supers@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-simple-access@7.25.9': + '@babel/helper-simple-access@7.25.9(supports-color@10.2.2)': dependencies: - '@babel/traverse': 7.26.3 + '@babel/traverse': 7.26.3(supports-color@10.2.2) '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -5087,516 +5153,516 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.26.0)': + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.26.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-module-imports': 7.25.9(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.26.0) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.26.0(supports-color@10.2.2)) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.26.0)': + '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-classes@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-classes@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/template': 7.25.9 - '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-simple-access': 7.25.9 + '@babel/helper-simple-access': 7.25.9(supports-color@10.2.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-identifier': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.26.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0(supports-color@10.2.2)) - '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.0(supports-color@10.2.2)) '@babel/helper-plugin-utils': 7.25.9 - '@babel/preset-env@7.24.5(@babel/core@7.26.0)': + '@babel/preset-env@7.24.5(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.26.0) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.26.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.26.0(supports-color@10.2.2)) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0(supports-color@10.2.2)) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0(supports-color@10.2.2))': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.25.9 '@babel/types': 7.29.8 esutils: 2.0.3 @@ -5613,14 +5679,14 @@ snapshots: '@babel/parser': 7.29.8 '@babel/types': 7.29.8 - '@babel/traverse@7.26.3': + '@babel/traverse@7.26.3(supports-color@10.2.2)': dependencies: '@babel/code-frame': 7.26.2 '@babel/generator': 7.26.3 '@babel/parser': 7.29.8 '@babel/template': 7.25.9 '@babel/types': 7.29.8 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -5828,6 +5894,14 @@ snapshots: '@gar/promise-retry@1.0.3': {} + '@gerrit0/mini-shiki@3.23.0': + dependencies: + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@iarna/toml@2.2.5': {} '@img/colour@1.1.0': {} @@ -5958,15 +6032,15 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@kwsites/file-exists@1.1.1': + '@kwsites/file-exists@1.1.1(supports-color@10.2.2)': dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color '@kwsites/promise-deferred@1.1.1': {} - '@lunariajs/core@0.1.1': + '@lunariajs/core@0.1.1(supports-color@10.2.2)': dependencies: '@clack/core': 0.3.4 fast-glob: 3.3.2 @@ -5975,21 +6049,21 @@ snapshots: micromatch: 4.0.8 path-to-regexp: 6.3.0 picocolors: 1.1.1 - simple-git: 3.27.0 + simple-git: 3.27.0(supports-color@10.2.2) ultramatter: 0.0.4 zod: 3.25.76 transitivePeerDependencies: - supports-color - '@lunariajs/starlight@0.1.1(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))': + '@lunariajs/starlight@0.1.1(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)': dependencies: - '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) - '@lunariajs/core': 0.1.1 - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) + '@lunariajs/core': 0.1.1(supports-color@10.2.2) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - '@mdx-js/mdx@3.1.1': + '@mdx-js/mdx@3.1.1(supports-color@10.2.2)': dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 @@ -6001,14 +6075,14 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 + hast-util-to-jsx-runtime: 2.3.6(supports-color@10.2.2) markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 recma-jsx: 1.0.1(acorn@8.16.0) recma-stringify: 1.0.0 - rehype-recma: 1.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 + rehype-recma: 1.0.0(supports-color@10.2.2) + remark-mdx: 3.1.1(supports-color@10.2.2) + remark-parse: 11.0.0(supports-color@10.2.2) remark-rehype: 11.1.2 source-map: 0.7.6 unified: 11.0.5 @@ -6038,13 +6112,13 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@npmcli/agent@5.0.2': + '@npmcli/agent@5.0.2(supports-color@10.2.2)': dependencies: agent-base: 9.0.0 - http-proxy-agent: 9.1.0 - https-proxy-agent: 9.1.0 + http-proxy-agent: 9.1.0(supports-color@10.2.2) + https-proxy-agent: 9.1.0(supports-color@10.2.2) lru-cache: 11.5.2 - socks-proxy-agent: 10.1.0 + socks-proxy-agent: 10.1.0(supports-color@10.2.2) transitivePeerDependencies: - kerberos - supports-color @@ -6254,10 +6328,10 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@2.80.0)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.26.0(supports-color@10.2.2))(@types/babel__core@7.20.5)(rollup@2.80.0)(supports-color@10.2.2)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-module-imports': 7.25.9(supports-color@10.2.2) '@rollup/pluginutils': 3.1.0(rollup@2.80.0) rollup: 2.80.0 optionalDependencies: @@ -6288,15 +6362,6 @@ snapshots: picomatch: 2.3.2 rollup: 2.80.0 - '@shikijs/core@1.29.2': - dependencies: - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.5 - hast-util-to-html: 9.0.5 - '@shikijs/core@4.4.1': dependencies: '@shikijs/primitive': 4.4.1 @@ -6305,21 +6370,15 @@ snapshots: '@types/hast': 3.0.5 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@1.29.2': - dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 2.3.0 - '@shikijs/engine-javascript@4.4.1': dependencies: '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@1.29.2': + '@shikijs/engine-oniguruma@3.23.0': dependencies: - '@shikijs/types': 1.29.2 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 '@shikijs/engine-oniguruma@4.4.1': @@ -6327,9 +6386,9 @@ snapshots: '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@1.29.2': + '@shikijs/langs@3.23.0': dependencies: - '@shikijs/types': 1.29.2 + '@shikijs/types': 3.23.0 '@shikijs/langs@4.4.1': dependencies: @@ -6341,15 +6400,15 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.5 - '@shikijs/themes@1.29.2': + '@shikijs/themes@3.23.0': dependencies: - '@shikijs/types': 1.29.2 + '@shikijs/types': 3.23.0 '@shikijs/themes@4.4.1': dependencies: '@shikijs/types': 4.4.1 - '@shikijs/types@1.29.2': + '@shikijs/types@3.23.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.5 @@ -6593,8 +6652,8 @@ snapshots: '@volar/kit@2.4.28(typescript@5.9.3)': dependencies: - '@volar/language-service': 2.4.28 - '@volar/typescript': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) + '@volar/typescript': 2.4.28(typescript@5.9.3) typesafe-path: 0.2.2 typescript: 5.9.3 vscode-languageserver-textdocument: 1.0.12 @@ -6604,32 +6663,38 @@ snapshots: dependencies: '@volar/source-map': 2.4.28 - '@volar/language-server@2.4.28': + '@volar/language-server@2.4.28(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.28 - '@volar/language-service': 2.4.28 - '@volar/typescript': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) + '@volar/typescript': 2.4.28(typescript@5.9.3) path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 vscode-languageserver-protocol: 3.18.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 + optionalDependencies: + typescript: 5.9.3 - '@volar/language-service@2.4.28': + '@volar/language-service@2.4.28(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.28 vscode-languageserver-protocol: 3.18.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 + optionalDependencies: + typescript: 5.9.3 '@volar/source-map@2.4.28': {} - '@volar/typescript@2.4.28': + '@volar/typescript@2.4.28(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.28 path-browserify: 1.0.1 vscode-uri: 3.1.0 + optionalDependencies: + typescript: 5.9.3 '@vscode/emmet-helper@2.11.0': dependencies: @@ -6711,22 +6776,22 @@ snapshots: astring@1.9.0: {} - astro-d2@0.13.1(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): + astro-d2@0.13.1(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): dependencies: '@terrastruct/d2': 0.1.33 - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) hast-util-from-html: 2.0.3 hast-util-to-html: 9.0.5 satteri: 0.9.5 unist-util-visit: 5.1.0 - astro-expressive-code@0.44.0(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): + astro-expressive-code@0.44.0(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): dependencies: - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) rehype-expressive-code: 0.44.0 url-extras: 0.1.0 - astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0): + astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0): dependencies: '@astrojs/compiler-rs': 0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) '@astrojs/internal-helpers': 0.10.2 @@ -6782,7 +6847,7 @@ snapshots: yargs-parser: 22.0.0 zod: 4.4.3 optionalDependencies: - '@astrojs/markdown-remark': 7.2.2 + '@astrojs/markdown-remark': 7.2.2(supports-color@10.2.2) sharp: 0.35.3(@types/node@26.1.1) transitivePeerDependencies: - '@azure/app-configuration' @@ -6818,10 +6883,10 @@ snapshots: - uploadthing - yaml - astrojs-service-worker@2.0.2(@types/babel__core@7.20.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): + astrojs-service-worker@2.0.2(@types/babel__core@7.20.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2): dependencies: - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) - workbox-build: 6.6.0(@types/babel__core@7.20.5) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + workbox-build: 6.6.0(@types/babel__core@7.20.5)(supports-color@10.2.2) transitivePeerDependencies: - '@types/babel__core' - supports-color @@ -6838,27 +6903,27 @@ snapshots: axobject-query@4.1.0: {} - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.0): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2): dependencies: '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.26.0): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.0): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -7061,9 +7126,11 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - debug@4.4.3: + debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 decode-named-character-reference@1.3.0: dependencies: @@ -7142,8 +7209,6 @@ snapshots: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 - emoji-regex-xs@1.0.0: {} - emoji-regex@10.6.0: {} entities@4.5.0: {} @@ -7629,7 +7694,7 @@ snapshots: unist-util-visit: 5.1.0 zwitch: 2.0.4 - hast-util-to-estree@3.1.3: + hast-util-to-estree@3.1.3(supports-color@10.2.2): dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 @@ -7639,9 +7704,9 @@ snapshots: 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.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) + mdast-util-mdxjs-esm: 2.0.1(supports-color@10.2.2) property-information: 7.2.0 space-separated-tokens: 2.0.2 style-to-js: 1.1.17 @@ -7664,7 +7729,7 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: + hast-util-to-jsx-runtime@2.3.6(supports-color@10.2.2): dependencies: '@types/estree': 1.0.9 '@types/hast': 3.0.5 @@ -7673,9 +7738,9 @@ snapshots: devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) + mdast-util-mdxjs-esm: 2.0.1(supports-color@10.2.2) property-information: 7.2.0 space-separated-tokens: 2.0.2 style-to-js: 1.1.17 @@ -7742,24 +7807,28 @@ snapshots: http-cache-semantics@4.2.0: {} - http-proxy-agent@9.1.0: + http-proxy-agent@9.1.0(supports-color@10.2.2): dependencies: agent-base: 9.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) proxy-agent-negotiate: 1.1.0 transitivePeerDependencies: - kerberos - supports-color - https-proxy-agent@9.1.0: + https-proxy-agent@9.1.0(supports-color@10.2.2): dependencies: agent-base: 9.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) proxy-agent-negotiate: 1.1.0 transitivePeerDependencies: - kerberos - supports-color + i18next@26.3.6(typescript@5.5.4): + optionalDependencies: + typescript: 5.5.4 + i18next@26.3.6(typescript@5.9.3): optionalDependencies: typescript: 5.9.3 @@ -7986,7 +8055,7 @@ snapshots: lightningcss-win32-arm64-msvc: 1.33.0 lightningcss-win32-x64-msvc: 1.33.0 - linkify-it@5.0.0: + linkify-it@5.0.2: dependencies: uc.micro: 2.1.0 @@ -8026,10 +8095,10 @@ snapshots: '@babel/types': 7.29.8 source-map-js: 1.2.1 - make-fetch-happen@16.0.1: + make-fetch-happen@16.0.1(supports-color@10.2.2): dependencies: '@gar/promise-retry': 1.0.3 - '@npmcli/agent': 5.0.2 + '@npmcli/agent': 5.0.2(supports-color@10.2.2) '@npmcli/redact': 5.0.0 cacache: 21.0.1 http-cache-semantics: 4.2.0 @@ -8046,11 +8115,11 @@ snapshots: markdown-extensions@2.0.0: {} - markdown-it@14.1.0: + markdown-it@14.3.0: dependencies: argparse: 2.0.1 entities: 4.5.0 - linkify-it: 5.0.0 + linkify-it: 5.0.2 mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 @@ -8065,13 +8134,13 @@ snapshots: '@types/unist': 3.0.3 unist-util-visit: 5.1.0 - mdast-util-directive@3.1.0: + mdast-util-directive@3.1.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -8086,14 +8155,14 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@2.0.3: + mdast-util-from-markdown@2.0.3(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 + micromark: 4.0.2(supports-color@10.2.2) micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 @@ -8111,67 +8180,67 @@ snapshots: mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.1.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color - mdast-util-gfm-strikethrough@2.0.0: + mdast-util-gfm-strikethrough@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-table@2.0.0: + mdast-util-gfm-table@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@2.0.0: + mdast-util-gfm-task-list-item@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.1.0(supports-color@10.2.2): dependencies: - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.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-gfm-footnote: 2.1.0(supports-color@10.2.2) + mdast-util-gfm-strikethrough: 2.0.0(supports-color@10.2.2) + mdast-util-gfm-table: 2.0.0(supports-color@10.2.2) + mdast-util-gfm-task-list-item: 2.0.0(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdx-expression@2.0.1: + mdast-util-mdx-expression@2.0.1(supports-color@10.2.2): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.2.0: + mdast-util-mdx-jsx@3.2.0(supports-color@10.2.2): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 @@ -8179,7 +8248,7 @@ snapshots: '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -8188,23 +8257,23 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@3.0.0: + mdast-util-mdx@3.0.0(supports-color@10.2.2): dependencies: - mdast-util-from-markdown: 2.0.3 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) + mdast-util-mdxjs-esm: 2.0.1(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdxjs-esm@2.0.1: + mdast-util-mdxjs-esm@2.0.1(supports-color@10.2.2): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -8504,10 +8573,10 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@4.0.2: + micromark@4.0.2(supports-color@10.2.2): dependencies: '@types/debug': 4.1.13 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -8549,10 +8618,6 @@ snapshots: dependencies: brace-expansion: 2.1.0 - minimatch@9.0.9: - dependencies: - brace-expansion: 2.1.0 - minipass-collect@2.0.1: dependencies: minipass: 7.1.3 @@ -8645,12 +8710,6 @@ snapshots: oniguruma-parser@0.12.2: {} - oniguruma-to-es@2.3.0: - dependencies: - emoji-regex-xs: 1.0.0 - regex: 5.1.1 - regex-recursion: 5.1.1 - oniguruma-to-es@4.3.6: dependencies: oniguruma-parser: 0.12.2 @@ -8823,21 +8882,12 @@ snapshots: dependencies: '@babel/runtime': 7.25.6 - regex-recursion@5.1.1: - dependencies: - regex: 5.1.1 - regex-utilities: 2.3.0 - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.1.1: - dependencies: - regex-utilities: 2.3.0 - regex@6.1.0: dependencies: regex-utilities: 2.3.0 @@ -8888,11 +8938,11 @@ snapshots: hast-util-raw: 9.1.0 vfile: 6.0.3 - rehype-recma@1.0.0: + rehype-recma@1.0.0(supports-color@10.2.2): dependencies: '@types/estree': 1.0.9 '@types/hast': 3.0.5 - hast-util-to-estree: 3.1.3 + hast-util-to-estree: 3.1.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -8917,37 +8967,37 @@ snapshots: rehype-stringify: 10.0.1 unified: 11.0.5 - remark-directive@4.0.0: + remark-directive@4.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-directive: 3.1.0 + mdast-util-directive: 3.1.0(supports-color@10.2.2) micromark-extension-directive: 4.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-gfm@4.0.1: + remark-gfm@4.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.1.0(supports-color@10.2.2) micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@10.2.2) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-mdx@3.1.1: + remark-mdx@3.1.1(supports-color@10.2.2): dependencies: - mdast-util-mdx: 3.0.0 + mdast-util-mdx: 3.0.0(supports-color@10.2.2) micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-parse@11.0.0: + remark-parse@11.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -9170,17 +9220,6 @@ snapshots: '@img/sharp-win32-x64': 0.35.3 '@types/node': 26.1.1 - shiki@1.29.2: - dependencies: - '@shikijs/core': 1.29.2 - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/langs': 1.29.2 - '@shikijs/themes': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.5 - shiki@4.4.1: dependencies: '@shikijs/core': 4.4.1 @@ -9199,11 +9238,11 @@ snapshots: get-intrinsic: 1.3.0 object-inspect: 1.13.1 - simple-git@3.27.0: + simple-git@3.27.0(supports-color@10.2.2): dependencies: - '@kwsites/file-exists': 1.1.1 + '@kwsites/file-exists': 1.1.1(supports-color@10.2.2) '@kwsites/promise-deferred': 1.1.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -9220,10 +9259,10 @@ snapshots: smol-toml@1.7.1: {} - socks-proxy-agent@10.1.0: + socks-proxy-agent@10.1.0(supports-color@10.2.2): dependencies: agent-base: 9.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) socks: 2.8.9 transitivePeerDependencies: - supports-color @@ -9256,17 +9295,17 @@ snapshots: dependencies: minipass: 7.1.3 - starlight-blog@0.28.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3): + starlight-blog@0.28.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3): dependencies: - '@astrojs/markdown-remark': 7.2.2 - '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) + '@astrojs/markdown-remark': 7.2.2(supports-color@10.2.2) + '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) '@astrojs/rss': 4.0.19 - '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) + '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-html: 9.0.5 hast-util-to-string: 3.0.1 - mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) satteri: 0.9.5 schema-dts: 2.0.0(typescript@5.9.3) unist-util-is: 6.0.1 @@ -9278,16 +9317,16 @@ snapshots: - supports-color - typescript - starlight-links-validator@0.25.3(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): + starlight-links-validator@0.25.3(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2): dependencies: '@astrojs/markdown-satteri': 0.3.5 - '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) + '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) '@types/picomatch': 4.0.3 - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) github-slugger: 2.0.0 hast-util-from-html: 2.0.3 is-absolute-url: 5.0.0 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) mdast-util-to-hast: 13.2.1 picomatch: 4.0.5 satteri: 0.9.5 @@ -9297,19 +9336,19 @@ snapshots: transitivePeerDependencies: - supports-color - starlight-llms-txt@0.11.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)): + starlight-llms-txt@0.11.0(@astrojs/markdown-satteri@0.3.5)(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2): dependencies: - '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0)) - '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) + '@astrojs/mdx': 7.0.5(@astrojs/markdown-satteri@0.3.5)(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2) + '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) '@types/hast': 3.0.5 '@types/micromatch': 4.0.10 - astro: 7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) github-slugger: 2.0.0 hast-util-select: 6.0.4 micromatch: 4.0.8 rehype-parse: 9.0.1 rehype-remark: 10.0.1 - remark-gfm: 4.0.1 + remark-gfm: 4.0.1(supports-color@10.2.2) remark-stringify: 11.0.0 unified: 11.0.5 unist-util-remove: 4.0.0 @@ -9317,11 +9356,19 @@ snapshots: - '@astrojs/markdown-satteri' - supports-color - starlight-sidebar-topics@0.8.0(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3)): + starlight-sidebar-topics@0.8.0(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3)): dependencies: - '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2)(astro@7.2.2(@astrojs/markdown-remark@7.2.2)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typescript@5.9.3) + '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.9.3) picomatch: 4.0.5 + starlight-typedoc@0.23.1(@astrojs/starlight@0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.5.4))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(typedoc-plugin-markdown@4.12.0(typedoc@0.28.20(typescript@5.5.4)))(typedoc@0.28.20(typescript@5.5.4)): + dependencies: + '@astrojs/starlight': 0.41.7(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(astro@7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0))(supports-color@10.2.2)(typescript@5.5.4) + astro: 7.2.2(@astrojs/markdown-remark@7.2.2(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) + github-slugger: 2.0.0 + typedoc: 0.28.20(typescript@5.5.4) + typedoc-plugin-markdown: 4.12.0(typedoc@0.28.20(typescript@5.5.4)) + stream-replace-string@2.0.0: {} string-width@7.2.0: @@ -9506,20 +9553,25 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typedoc-plugin-markdown@4.2.6(typedoc@0.26.6(typescript@5.5.4)): + typedoc-plugin-frontmatter@1.3.1(typedoc-plugin-markdown@4.12.0(typedoc@0.28.20(typescript@5.5.4))): + dependencies: + typedoc-plugin-markdown: 4.12.0(typedoc@0.28.20(typescript@5.5.4)) + yaml: 2.9.0 + + typedoc-plugin-markdown@4.12.0(typedoc@0.28.20(typescript@5.5.4)): dependencies: - typedoc: 0.26.6(typescript@5.5.4) + typedoc: 0.28.20(typescript@5.5.4) - typedoc-plugin-mdn-links@3.2.11(typedoc@0.26.6(typescript@5.5.4)): + typedoc-plugin-mdn-links@5.1.1(typedoc@0.28.20(typescript@5.5.4)): dependencies: - typedoc: 0.26.6(typescript@5.5.4) + typedoc: 0.28.20(typescript@5.5.4) - typedoc@0.26.6(typescript@5.5.4): + typedoc@0.28.20(typescript@5.5.4): dependencies: + '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.1.0 - minimatch: 9.0.9 - shiki: 1.29.2 + markdown-it: 14.3.0 + minimatch: 10.2.5 typescript: 5.5.4 yaml: 2.9.0 @@ -9723,45 +9775,46 @@ snapshots: optionalDependencies: vite: 8.1.5(@types/node@26.1.1)(esbuild@0.28.1)(jiti@1.21.6)(sass@1.102.0)(terser@5.31.0)(yaml@2.9.0) - volar-service-css@0.0.71(@volar/language-service@2.4.28): + volar-service-css@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)): dependencies: vscode-css-languageservice: 6.3.10 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) - volar-service-emmet@0.0.71(@volar/language-service@2.4.28): + volar-service-emmet@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)): dependencies: '@emmetio/css-parser': 0.4.1 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.11.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) - volar-service-html@0.0.71(@volar/language-service@2.4.28): + volar-service-html@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)): dependencies: vscode-html-languageservice: 5.6.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) - volar-service-prettier@0.0.71(@volar/language-service@2.4.28)(prettier@3.9.6): + volar-service-prettier@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3))(prettier@3.9.6): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) prettier: 3.9.6 - volar-service-typescript-twoslash-queries@0.0.71(@volar/language-service@2.4.28): + volar-service-typescript-twoslash-queries@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3))(typescript@5.9.3): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) + typescript: 5.9.3 - volar-service-typescript@0.0.71(@volar/language-service@2.4.28): + volar-service-typescript@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3))(typescript@5.9.3): dependencies: path-browserify: 1.0.1 semver: 7.8.5 @@ -9770,14 +9823,15 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) + typescript: 5.9.3 - volar-service-yaml@0.0.71(@volar/language-service@2.4.28): + volar-service-yaml@0.0.71(@volar/language-service@2.4.28(typescript@5.9.3)): dependencies: vscode-uri: 3.1.0 yaml-language-server: 1.23.0 optionalDependencies: - '@volar/language-service': 2.4.28 + '@volar/language-service': 2.4.28(typescript@5.9.3) vscode-css-languageservice@6.3.10: dependencies: @@ -9864,13 +9918,13 @@ snapshots: dependencies: workbox-core: 6.6.0 - workbox-build@6.6.0(@types/babel__core@7.20.5): + workbox-build@6.6.0(@types/babel__core@7.20.5)(supports-color@10.2.2): dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.20.0) - '@babel/core': 7.26.0 - '@babel/preset-env': 7.24.5(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@10.2.2) + '@babel/preset-env': 7.24.5(@babel/core@7.26.0(supports-color@10.2.2))(supports-color@10.2.2) '@babel/runtime': 7.25.6 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@2.80.0) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.0(supports-color@10.2.2))(@types/babel__core@7.20.5)(rollup@2.80.0)(supports-color@10.2.2) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.80.0) '@rollup/plugin-replace': 2.4.2(rollup@2.80.0) '@surma/rollup-plugin-off-main-thread': 2.2.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index be3780dff5..8fe12395b4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,10 +1,10 @@ packages: - - packages/js-api-generator - packages/config-generator - packages/cli-generator - packages/releases-site - packages/compatibility-table - packages/fetch-sponsors + - packages/tauri-typedoc allowBuilds: '@parcel/watcher': true esbuild: true diff --git a/renovate.json b/renovate.json index 6f1c36e916..87a8836d0f 100644 --- a/renovate.json +++ b/renovate.json @@ -35,7 +35,7 @@ }, { "description": "typedoc needs the TypeScript JS compiler API, which typescript >= 7 (native compiler) no longer ships. The typescript instance in the typedoc package context must stay on the last JS-based line; the repo root's typescript follows the latest release.", - "matchFileNames": ["packages/js-api-generator/**"], + "matchFileNames": ["packages/tauri-typedoc/**"], "matchPackageNames": ["typescript"], "enabled": false } diff --git a/src/styles/custom.scss b/src/styles/custom.scss index dcc4cc8011..cc8a96f464 100644 --- a/src/styles/custom.scss +++ b/src/styles/custom.scss @@ -3,6 +3,7 @@ @import url('./shared.scss'); @import url('./lp.scss'); @import url('./partners.scss'); +@import url('./reference-api.scss'); .sl-markdown-content .inline-icon { display: inline-block; diff --git a/src/styles/reference-api.scss b/src/styles/reference-api.scss new file mode 100644 index 0000000000..b64b17c48c --- /dev/null +++ b/src/styles/reference-api.scss @@ -0,0 +1,65 @@ +// TypeDoc's generated JS API pages (/reference/javascript/**) + +// TypeDoc's HTML anchor. `:has()` cannot nest inside another `:has()`, so anywhere this goes +// inside a `:has()` argument it has to be written as the `p > ` chain rather than `p:has()`. +$anchor: 'a[id]:only-child:not([href])'; + +.sl-markdown-content:has(> p > #{$anchor}) { + // Empty by definition, so its own margin only pads the heading it marks + > p:has(> #{$anchor}) { + margin: 0; + } + + // Kind group (`Functions`, `Interfaces`, `Classes`): a caption for the band below, not a + // headline. The `+ anchor` test is what leaves prose h2s like `## iOS security-scoped + // resources` at their normal size. + .sl-heading-wrapper.level-h2:has(+ p > #{$anchor}) { + --sl-text-h2: var(--sl-text-sm); + + margin-top: 4rem; + + &:first-child { + margin-top: 0; + } + + h2 { + text-transform: uppercase; + letter-spacing: 0.1em; + } + + // The kind group already spaces the symbol that opens its band + & + p:has(> #{$anchor}) + .sl-heading-wrapper.level-h3 { + margin-top: 1.5rem; + } + } + + // h3 is a symbol, h5 a class member + .sl-heading-wrapper.level-h3 { + margin-top: 3rem; + } + + .sl-heading-wrapper.level-h5 { + margin-top: 2.25rem; + } + + // Section label (`Parameters`, `Returns`, `Example`). h4 and h6 are one role at two depths + // and never appear as siblings, so they share a treatment. + .sl-heading-wrapper:is(.level-h4, .level-h6) { + --sl-text-h4: var(--sl-text-xs); + --sl-text-h6: var(--sl-text-xs); + + margin-top: 1.75rem; + + // markdown.css colors headings directly, so a color on the wrapper would not reach them + :is(h4, h6) { + color: var(--sl-color-gray-3); + text-transform: uppercase; + letter-spacing: 0.08em; + } + + // A label belongs to what follows it, not to what precedes it + & + * { + margin-top: 0.4rem; + } + } +}