diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3bf3adc5..c95e25bb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ WXT is two things: The long term goal of WXT is provide an opinionated build tool that keeps WXT projects standard, while providing light-weight runtime utils that simplify a lot of the boilerplate/overhead when setting up a new extension. -I also want to provide a way for developers to use either one of those two things independently, and not require them to use both. This is why all of WXT's runtime utils are shipped as their own NPM packages, most of them not bundled inside the core `wxt` package. If you just want to use the packages, they're availalbe, and if you just want to use WXT's built tool, you don't have to import any of WXT's utilities, you can use your own. +I also want to provide a way for developers to use either one of those two things independently, and not require them to use both. This is why all of WXT's runtime utils are shipped as their own NPM packages, most of them not bundled inside the core `wxt` package. If you just want to use the packages, they're available, and if you just want to use WXT's built tool, you don't have to import any of WXT's utilities, you can use your own. > The few runtime utils shipped inside WXT are things that should be used by 90% of extensions. That said, they're also legacy utils left in from before I started creating separate NPM packages, and in the future, they may be removed from the core package. @@ -101,7 +101,7 @@ pnpm --filter wxt build # CD to the demo directory cd packages/wxt-demo -# 1. Generate a flamechart with 0x +# 1. Generate a flame graph with 0x pnpm dlx 0x node_modules/wxt/bin/wxt.mjs build # 2. Inspect the process with chrome @ chrome://inspect pnpm node --inspect node_modules/wxt/bin/wxt.mjs build @@ -212,4 +212,4 @@ Anyone is welcome to submit a blog post on ! If you're interested in becoming a maintainer, send an email to Aaron at with your github username saying you're interested. The process is very informal, I will add you quickly if you've contributed code or answered questions and helped out the community! -Maintainers don't have to just write code - they can manage issues, answer questsions, review PRs, organize and prioritize work - there's lots of ways for you to help out. +Maintainers don't have to just write code - they can manage issues, answer questions, review PRs, organize and prioritize work - there's lots of ways for you to help out. diff --git a/cspell.yml b/cspell.yml new file mode 100644 index 00000000..b451a394 --- /dev/null +++ b/cspell.yml @@ -0,0 +1,114 @@ +version: '0.2' +ignorePaths: + - pnpm-lock.yaml + - '**/node_modules/**' + - '**/dist/**' + - '**/coverage/**' + - docs/api/** + - '**/CHANGELOG.md' + - docs/public/_redirects + - packages/browser/src/gen/** + - patches/** + - '**/*.snap' +words: + - aklinker + - avenir + - bidi + - buildc + - bunx + - comctx + - confbox + - consolas + - crbug + - crunchyroll + - defu + - dequal + - dtrace + - duckduckgo + - esbuild + - firefoxdeveloperedition + - focusring + - giget + - gtag + - hookable + - iconify + - jsons + - klinker + - linkedom + - llms + - locationchange + - newtab + - njsproj + - ntvs + - nypm + - ohash + - oklab + - oxlint + - prebundled + - prefs + - scule + - sidepanel + - treemap + - umami + - ungh + - unimport + - unocss + - unrun + - unstub + - unwatch + - webext + - webextrc + - xcrun + - xlink + - Kenobi + - styl + - webextension + - mycompany + - esque + - cssinjs + - CSUI + - sandboxed + - metas + - charmbracelet + - mktemp + - frontmatter + - triaging + - Florian + - menupanel + - tabstrip + - personaltoolbar + - Aabid + - aabidk + - rxliuli + - teleporting + - portaling + - subdependency + - greyscale + - grayscale + - keystyle + - USSS + - solidjs + - fieldtrials + - repost + - pWXLO + - hckhakegfgenefhikdcfkaaonnclljmf + - chromedriver + - cachable + - automount + - Cira + - pbbf + - natsu + - magicast + - nanospinner + - deinit + - nacl + - extglob + - sidepanels + - proxified + - nodebuffer + - configfile + - Segoe + - Noto + - Menlo + - Csvg + - Cpath diff --git a/docs/guide/essentials/es-modules.md b/docs/guide/essentials/es-modules.md index 34809627..67361593 100644 --- a/docs/guide/essentials/es-modules.md +++ b/docs/guide/essentials/es-modules.md @@ -25,7 +25,7 @@ export default defineBackground({ }); ``` -This will change the output format to ESM, enable code-spliting between your background script and HTML pages, and set `"type": "module"` in your manifest. +This will change the output format to ESM, enable code-splitting between your background script and HTML pages, and set `"type": "module"` in your manifest. :::warning Only MV3 supports ESM background scripts/service workers. When targeting MV2, the `type` option is ignored and the background is always bundled into a single file as IIFE. diff --git a/docs/guide/resources/upgrading.md b/docs/guide/resources/upgrading.md index 523ae30a..d3e3162e 100644 --- a/docs/guide/resources/upgrading.md +++ b/docs/guide/resources/upgrading.md @@ -557,6 +557,8 @@ Unlisted scripts must now `export default defineUnlistedScript(...)`. ### `BackgroundDefinition` Type + + Rename `BackgroundScriptDefintition` to `BackgroundDefinition`. ## v0.6.0 → v0.7.0 diff --git a/docs/tapes/init-demo.tape b/docs/tapes/init-demo.tape index a24d3d32..c07d21a6 100644 --- a/docs/tapes/init-demo.tape +++ b/docs/tapes/init-demo.tape @@ -26,7 +26,7 @@ Set FontSize 32 # Terminal settings Set Shell "bash" -# Terminal prompt. It looks like "● mycommand ..." +# Terminal prompt. It looks like "● command ..." Env PS1 "\e[0;32m●\e[0m " diff --git a/package.json b/package.json index f0e9960b..6afa0d44 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,14 @@ }, "devDependencies": { "@aklinker1/buildc": "^1.1.7", - "@aklinker1/check": "^2.2.0", + "@aklinker1/check": "^2.4.0", "@commitlint/config-conventional": "^20.4.3", "@commitlint/types": "^20.4.3", "@types/semver": "^7.7.1", "@vitest/coverage-v8": "^4.0.18", "changelogen": "^0.6.2", "consola": "^3.4.2", + "cspell": "^9.7.0", "feed": "^5.2.0", "markdown-it-footnote": "^4.0.0", "markdownlint-cli": "^0.48.0", diff --git a/packages/browser/scripts/generate.ts b/packages/browser/scripts/generate.ts index 5ba1fedf..f5bb884d 100644 --- a/packages/browser/scripts/generate.ts +++ b/packages/browser/scripts/generate.ts @@ -3,15 +3,16 @@ import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'; import { fileURLToPath } from 'node:url'; import { dirname, join, resolve, sep } from 'node:path'; import { sep as posixSep } from 'node:path/posix'; +import { styleText } from 'node:util'; // Fetch latest version -console.log('Getting latest version of \x1b[36m@types/chrome\x1b[0m'); +console.log(`Getting latest version of ${styleText('cyan', '@types/chrome')}`); await spawn('pnpm', ['i', '--ignore-scripts', '-D', '@types/chrome@latest']); // Generate new package.json -console.log('Generating new \x1b[36mpackage.json\x1b[0m'); +console.log(`Generating new ${styleText('cyan', 'package.json')}`); const pkgJsonPath = fileURLToPath( import.meta.resolve('@types/chrome/package.json'), @@ -55,12 +56,14 @@ for (const { file, srcPath, destPath } of declarationFileMapping) { const destDir = dirname(destPath); await mkdir(destDir, { recursive: true }); await writeFile(destPath, transformedContent); - console.log(` \x1b[2m-\x1b[0m \x1b[36m${file}\x1b[0m`); + console.log(` ${styleText('dim', '-')} ${styleText('cyan', file)}`); } // Done! -console.log('\x1b[32m✔\x1b[0m Done in ' + performance.now().toFixed(0) + ' ms'); +console.log( + `${styleText('green', '✔')} Done in ${performance.now().toFixed(0)} ms`, +); // Transformations diff --git a/packages/i18n/README.md b/packages/i18n/README.md index 87229960..179b057e 100644 --- a/packages/i18n/README.md +++ b/packages/i18n/README.md @@ -161,7 +161,7 @@ hello: Hello $1! order: Thanks for ordering your $1 ``` -#### Escapting `$` +#### Escaping `$` To escape the dollar sign, put another `$` in front of it: diff --git a/packages/i18n/src/__tests__/utils.test.ts b/packages/i18n/src/__tests__/utils.test.ts index 7c44bc46..141d9a2f 100644 --- a/packages/i18n/src/__tests__/utils.test.ts +++ b/packages/i18n/src/__tests__/utils.test.ts @@ -43,7 +43,7 @@ describe('Utils', () => { }); describe('getSubstitutionCount', () => { - it('should return the last substution present in the message', () => { + it('should return the last substitution present in the message', () => { expect(getSubstitutionCount('I like $1, but I like $2 better')).toBe(2); }); diff --git a/packages/i18n/src/build.ts b/packages/i18n/src/build.ts index 92c4b1fc..4213a405 100644 --- a/packages/i18n/src/build.ts +++ b/packages/i18n/src/build.ts @@ -71,7 +71,7 @@ const PREDEFINED_MESSAGES: Record = { '@@extension_id': { message: '', description: - "The extension or app ID; you might use this string to construct URLs for resources inside the extension. Even unlocalized extensions can use this message.\nNote: You can't use this message in a manifest file.", + "The extension or app ID; you might use this string to construct URLs for resources inside the extension. Even non-localized extensions can use this message.\nNote: You can't use this message in a manifest file.", }, '@@ui_locale': { message: '', diff --git a/packages/runner/src/options.ts b/packages/runner/src/options.ts index 346c1c26..ef1c4bb0 100644 --- a/packages/runner/src/options.ts +++ b/packages/runner/src/options.ts @@ -8,6 +8,7 @@ import { resolve, join } from 'node:path'; import { homedir, tmpdir } from 'node:os'; import { debug } from './debug'; import { mkdtemp, open } from 'node:fs/promises'; +import { styleText } from 'node:util'; const debugOptions = debug.scoped('options'); @@ -173,10 +174,8 @@ function resolveChromiumArgs( ], userArgs, { - '--remote-debugging-port': - '\x1b[1m\x1b[33mCustom Chromium --remote-debugging-port argument ignored.\x1b[0m Use \x1b[36mchromiumRemoteDebuggingPort\x1b[0m option instead.', - '--user-data-dir': - '\x1b[1m\x1b[33mCustom Chromium --user-data-dir argument ignored.\x1b[0m Use \x1b[36mdataPersistence\x1b[0m option instead.', + '--remote-debugging-port': `${styleText(['bold', 'yellow'], 'Custom Chromium --remote-debugging-port argument ignored.')} Use ${styleText('cyan', 'chromiumRemoteDebuggingPort')} option instead.`, + '--user-data-dir': `${styleText(['bold', 'yellow'], 'Custom Chromium --user-data-dir argument ignored.')} Use ${styleText('cyan', 'dataPersistence')} option instead.`, }, ); } @@ -200,10 +199,8 @@ function resolveFirefoxArgs( ], userArgs, { - '--remote-debugging-port': - '\x1b[1m\x1b[33mCustom Firefox --remote-debugging-port argument ignored.\x1b[0m Use \x1b[36mfirefoxDebuggerPort\x1b[0m option instead.', - '--profile': - '\x1b[1m\x1b[33mCustom Firefox --profile argument ignored.\x1b[0m Use \x1b[36mdataPersistence\x1b[0m option instead.', + '--remote-debugging-port': `${styleText(['bold', 'yellow'], 'Custom Firefox --remote-debugging-port argument ignored.')} Use ${styleText('cyan', 'firefoxRemoteDebuggingPort')} option instead.`, + '--profile': `${styleText(['bold', 'yellow'], 'Custom Firefox --profile argument ignored.')} Use ${styleText('cyan', 'dataPersistence')} option instead.`, }, ); } diff --git a/packages/storage/src/__tests__/index.test.ts b/packages/storage/src/__tests__/index.test.ts index a9125864..3ad34972 100644 --- a/packages/storage/src/__tests__/index.test.ts +++ b/packages/storage/src/__tests__/index.test.ts @@ -665,7 +665,7 @@ describe('Storage Utils', () => { // @ts-expect-error await storage.getItem('test').catch(() => {}); // @ts-expect-error - await storage.getItem('loca:test').catch(() => {}); + await storage.getItem('not-local:test').catch(() => {}); }); it('should throw an error when using an invalid storage area', async () => { diff --git a/packages/wxt/e2e/tests/typescript-project.test.ts b/packages/wxt/e2e/tests/typescript-project.test.ts index 663c5d28..9b89ee8e 100644 --- a/packages/wxt/e2e/tests/typescript-project.test.ts +++ b/packages/wxt/e2e/tests/typescript-project.test.ts @@ -149,7 +149,7 @@ describe('TypeScript Project', () => { export interface WxtI18n extends I18n.Static { /** - * The extension or app ID; you might use this string to construct URLs for resources inside the extension. Even unlocalized extensions can use this message. + * The extension or app ID; you might use this string to construct URLs for resources inside the extension. Even non-localized extensions can use this message. * Note: You can't use this message in a manifest file. * * "" diff --git a/packages/wxt/src/core/builders/vite/index.ts b/packages/wxt/src/core/builders/vite/index.ts index 298bf4df..3c8e10ef 100644 --- a/packages/wxt/src/core/builders/vite/index.ts +++ b/packages/wxt/src/core/builders/vite/index.ts @@ -421,7 +421,7 @@ function getRollupEntry(entrypoint: Entrypoint): string { } /** - * Ensures the HTML files output by a multipage build are in the correct + * Ensures the HTML files output by a multi-page build are in the correct * location. This does two things: * * 1. Moves the HTML files to their final location at diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index 3ff0788d..d1489f47 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -19,7 +19,7 @@ import path from 'node:path'; import { createFsCache } from './utils/cache'; import consola, { LogLevels } from 'consola'; import defu from 'defu'; -import { NullablyRequired } from './utils/types'; +import { NullishRequired } from './utils/types'; import { pathExists } from './utils/fs'; import { normalizePath } from './utils'; import { glob } from 'tinyglobby'; @@ -295,7 +295,7 @@ function resolveZipConfig( browser: string, outBaseDir: string, mergedConfig: InlineConfig, -): NullablyRequired { +): NullishRequired { const downloadedPackagesDir = path.resolve(root, '.wxt/local_modules'); return { name: undefined, @@ -330,7 +330,7 @@ function resolveZipConfig( function resolveAnalysisConfig( root: string, mergedConfig: InlineConfig, -): NullablyRequired { +): NullishRequired { const analysisOutputFile = path.resolve( root, mergedConfig.analysis?.outputFile ?? 'stats.html', diff --git a/packages/wxt/src/core/runners/web-ext.ts b/packages/wxt/src/core/runners/web-ext.ts index e731c08a..6a71ea2d 100644 --- a/packages/wxt/src/core/runners/web-ext.ts +++ b/packages/wxt/src/core/runners/web-ext.ts @@ -56,7 +56,7 @@ export function createWebExtRunner(): ExtensionRunner { wxt.config.browser === 'firefox' ? 'firefox-desktop' : 'chromium', sourceDir: wxt.config.outDir, // Don't add a "Reload Manager" extension alongside dev extension, WXT - // already handles reloads intenrally. + // already handles reloads internally. noReloadManagerExtension: true, // WXT handles reloads, so disable auto-reload behaviors in web-ext noReload: true, diff --git a/packages/wxt/src/core/utils/__tests__/transform.test.ts b/packages/wxt/src/core/utils/__tests__/transform.test.ts index a623aa2f..f3f5326c 100644 --- a/packages/wxt/src/core/utils/__tests__/transform.test.ts +++ b/packages/wxt/src/core/utils/__tests__/transform.test.ts @@ -72,7 +72,7 @@ export default defineBackground();`; expect(actual).toEqual(expected); }); - it('should remove explict side-effect imports', () => { + it('should remove explicit side-effect imports', () => { const input = ` import { defineBackground } from "#imports" import "my-polyfill" @@ -89,7 +89,7 @@ export default defineBackground();`; expect(actual).toEqual(expected); }); - it("should remove any functions delcared outside the main function that aren't used", () => { + it("should remove any functions declared outside the main function that aren't used", () => { const input = ` function getMatches() { return ["*://*/*"] @@ -117,7 +117,7 @@ export default defineContentScript({ expect(actual).toEqual(expected); }); - it("should remove any variables delcared outside the main function that aren't used", () => { + it("should remove any variables declared outside the main function that aren't used", () => { const input = ` const unused1 = "a", matches = ["*://*/*"]; let unused2 = unused1 + "b"; @@ -138,7 +138,7 @@ export default defineContentScript({ expect(actual).toEqual(expected); }); - it('should not remove any variables delcared outside the main function that are used', () => { + it('should not remove any variables declared outside the main function that are used', () => { const input = ` const [ a ] = [ 123, 456 ]; const { b } = { b: 123 }; diff --git a/packages/wxt/src/core/utils/__tests__/virtual-modules.test.ts b/packages/wxt/src/core/utils/__tests__/virtual-modules.test.ts index 6b4e462a..742f4e03 100644 --- a/packages/wxt/src/core/utils/__tests__/virtual-modules.test.ts +++ b/packages/wxt/src/core/utils/__tests__/virtual-modules.test.ts @@ -7,7 +7,7 @@ import { } from '../virtual-modules'; describe('Virtual Modules', () => { - it('should resolve types to litteral values, not string', () => { + it('should resolve types to literal values, not string', () => { // @ts-expect-error const _c: VirtualEntrypointType = ''; // @ts-expect-error diff --git a/packages/wxt/src/core/utils/building/rebuild.ts b/packages/wxt/src/core/utils/building/rebuild.ts index f381fc71..b04eacac 100644 --- a/packages/wxt/src/core/utils/building/rebuild.ts +++ b/packages/wxt/src/core/utils/building/rebuild.ts @@ -49,7 +49,7 @@ export async function rebuild( const newOutput = await buildEntrypoints(entrypointGroups, spinner); const mergedOutput: Omit = { steps: [...existingOutput.steps, ...newOutput.steps], - // Do not merge existing because all publicAssets copied everytime + // Do not merge existing because all publicAssets copied every time publicAssets: newOutput.publicAssets, }; diff --git a/packages/wxt/src/core/utils/i18n.ts b/packages/wxt/src/core/utils/i18n.ts index 7e839e56..1ff8c6be 100644 --- a/packages/wxt/src/core/utils/i18n.ts +++ b/packages/wxt/src/core/utils/i18n.ts @@ -8,7 +8,7 @@ const predefinedMessages = { '@@extension_id': { message: '', description: - "The extension or app ID; you might use this string to construct URLs for resources inside the extension. Even unlocalized extensions can use this message.\nNote: You can't use this message in a manifest file.", + "The extension or app ID; you might use this string to construct URLs for resources inside the extension. Even non-localized extensions can use this message.\nNote: You can't use this message in a manifest file.", }, '@@ui_locale': { message: '', diff --git a/packages/wxt/src/core/utils/transform.ts b/packages/wxt/src/core/utils/transform.ts index 87fc3378..1a5fe50f 100644 --- a/packages/wxt/src/core/utils/transform.ts +++ b/packages/wxt/src/core/utils/transform.ts @@ -220,7 +220,7 @@ function removeSideEffectImports(mod: ProxifiedModule): void { /** * Util to get the AST as a simple JSON object, stripping out large objects and - * file locations to keep it readible + * file locations to keep it readable. */ function getSimpleAstJson(ast: any): any { if (!ast) { diff --git a/packages/wxt/src/core/utils/types.ts b/packages/wxt/src/core/utils/types.ts index 0f13ebe5..1f27a660 100644 --- a/packages/wxt/src/core/utils/types.ts +++ b/packages/wxt/src/core/utils/types.ts @@ -4,10 +4,10 @@ import type { Browser } from '@wxt-dev/browser'; * Remove optional from key, but keep undefined if present * * @example - * type Test = NullablyRequired<{ a?: string; b: number }>; + * type Test = NullishRequired<{ a?: string; b: number }>; * // type Test = {a: string | undefined, b: number} */ -export type NullablyRequired = { [K in keyof Required]: T[K] }; +export type NullishRequired = { [K in keyof Required]: T[K] }; export type ManifestContentScript = NonNullable< Browser.runtime.Manifest['content_scripts'] diff --git a/packages/wxt/src/types.ts b/packages/wxt/src/types.ts index 6001f86f..dfca9617 100644 --- a/packages/wxt/src/types.ts +++ b/packages/wxt/src/types.ts @@ -411,8 +411,8 @@ export interface InlineConfig { * set in WXT's config instead of Vite's. * * This is a function because any vite plugins added need to be recreated for - * each individual build step, incase they have internal state causing them to - * fail when reused. + * each individual build step, in case they have internal state causing them + * to fail when reused. */ vite?: (env: ConfigEnv) => WxtViteConfig | Promise; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3bd73f61..e5b1b38e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,8 +17,8 @@ importers: specifier: ^1.1.7 version: 1.1.7 '@aklinker1/check': - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.4.0 + version: 2.4.0 '@commitlint/config-conventional': specifier: ^20.4.3 version: 20.4.3 @@ -37,6 +37,9 @@ importers: consola: specifier: ^3.4.2 version: 3.4.2 + cspell: + specifier: ^9.7.0 + version: 9.7.0 feed: specifier: ^5.2.0 version: 5.2.0 @@ -642,8 +645,8 @@ packages: resolution: {integrity: sha512-45gBxrm0SH+NcB2QBpmIoQ8ZuDOqVR4f08u8TFPCoqZVrJxlhYCJPGvrHX2Ge+PK8KVGdYXWu1Y8M2C/6/zc1Q==} hasBin: true - '@aklinker1/check@2.2.0': - resolution: {integrity: sha512-v+2iVqXN3b0qCbr0hYjE5botj42FnhLwHNuaa5vkIb+HNfhTv6+A1Haa390JgFJC/+A/OGmJlzicYMv4O3qRUQ==} + '@aklinker1/check@2.4.0': + resolution: {integrity: sha512-HkISZz9zeE34IVvCJfisvdp544B4blb2mO1a6UQotBof2mjToFs430FzSKX/lamfCPwYlj2xkYyYD8MMnwsuRg==} hasBin: true '@aklinker1/rollup-plugin-visualizer@5.12.0': @@ -865,6 +868,240 @@ packages: resolution: {integrity: sha512-51OWa1Gi6ODOasPmfJPq6js4pZoomima4XLZZCrkldaH2V5Nb3bVhNXPeT6XV0gubbainSpTw4zi68NqAeCNCg==} engines: {node: '>=v18'} + '@cspell/cspell-bundled-dicts@9.7.0': + resolution: {integrity: sha512-s7h1vo++Q3AsfQa3cs0u/KGwm3SYInuIlC4kjlCBWjQmb4KddiZB5O1u0+3TlA7GycHb5M4CR7MDfHUICgJf+w==} + engines: {node: '>=20'} + + '@cspell/cspell-json-reporter@9.7.0': + resolution: {integrity: sha512-6xpGXlMtQA3hV2BCAQcPkpx9eI12I0o01i9eRqSSEDKtxuAnnrejbcCpL+5OboAjTp3/BSeNYSnhuWYLkSITWQ==} + engines: {node: '>=20'} + + '@cspell/cspell-performance-monitor@9.7.0': + resolution: {integrity: sha512-w1PZIFXuvjnC6mQHyYAFnrsn5MzKnEcEkcK1bj4OG00bAt7WX2VUA/eNNt9c1iHozCQ+FcRYlfbGxuBmNyzSgw==} + engines: {node: '>=20.18'} + + '@cspell/cspell-pipe@9.7.0': + resolution: {integrity: sha512-iiisyRpJciU9SOHNSi0ZEK0pqbEMFRatI/R4O+trVKb+W44p4MNGClLVRWPGUmsFbZKPJL3jDtz0wPlG0/JCZA==} + engines: {node: '>=20'} + + '@cspell/cspell-resolver@9.7.0': + resolution: {integrity: sha512-uiEgS238mdabDnwavo6HXt8K98jlh/jpm7NONroM9NTr9rzck2VZKD2kXEj85wDNMtRsRXNoywTjwQ8WTB6/+w==} + engines: {node: '>=20'} + + '@cspell/cspell-service-bus@9.7.0': + resolution: {integrity: sha512-fkqtaCkg4jY/FotmzjhIavbXuH0AgUJxZk78Ktf4XlhqOZ4wDeUWrCf220bva4mh3TWiLx/ae9lIlpl59Vx6hA==} + engines: {node: '>=20'} + + '@cspell/cspell-types@9.7.0': + resolution: {integrity: sha512-Tdfx4eH2uS+gv9V9NCr3Rz+c7RSS6ntXp3Blliud18ibRUlRxO9dTaOjG4iv4x0nAmMeedP1ORkEpeXSkh2QiQ==} + engines: {node: '>=20'} + + '@cspell/cspell-worker@9.7.0': + resolution: {integrity: sha512-cjEApFF0aOAa1vTUk+e7xP8ofK7iC7hsRzj1FmvvVQz8PoLWPRaq+1bT89ypPsZQvavqm5sIgb97S60/aW4TVg==} + engines: {node: '>=20.18'} + + '@cspell/dict-ada@4.1.1': + resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} + + '@cspell/dict-al@1.1.1': + resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} + + '@cspell/dict-aws@4.0.17': + resolution: {integrity: sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==} + + '@cspell/dict-bash@4.2.2': + resolution: {integrity: sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==} + + '@cspell/dict-companies@3.2.11': + resolution: {integrity: sha512-0cmafbcz2pTHXLd59eLR1gvDvN6aWAOM0+cIL4LLF9GX9yB2iKDNrKsvs4tJRqutoaTdwNFBbV0FYv+6iCtebQ==} + + '@cspell/dict-cpp@7.0.2': + resolution: {integrity: sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==} + + '@cspell/dict-cryptocurrencies@5.0.5': + resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} + + '@cspell/dict-csharp@4.0.8': + resolution: {integrity: sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==} + + '@cspell/dict-css@4.1.1': + resolution: {integrity: sha512-y/Vgo6qY08e1t9OqR56qjoFLBCpi4QfWMf2qzD1l9omRZwvSMQGRPz4x0bxkkkU4oocMAeztjzCsmLew//c/8w==} + + '@cspell/dict-dart@2.3.2': + resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} + + '@cspell/dict-data-science@2.0.13': + resolution: {integrity: sha512-l1HMEhBJkPmw4I2YGVu2eBSKM89K9pVF+N6qIr5Uo5H3O979jVodtuwP8I7LyPrJnC6nz28oxeGRCLh9xC5CVA==} + + '@cspell/dict-django@4.1.6': + resolution: {integrity: sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==} + + '@cspell/dict-docker@1.1.17': + resolution: {integrity: sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==} + + '@cspell/dict-dotnet@5.0.13': + resolution: {integrity: sha512-xPp7jMnFpOri7tzmqmm/dXMolXz1t2bhNqxYkOyMqXhvs08oc7BFs+EsbDY0X7hqiISgeFZGNqn0dOCr+ncPYw==} + + '@cspell/dict-elixir@4.0.8': + resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} + + '@cspell/dict-en-common-misspellings@2.1.12': + resolution: {integrity: sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==} + + '@cspell/dict-en-gb-mit@3.1.22': + resolution: {integrity: sha512-xE5Vg6gGdMkZ1Ep6z9SJMMioGkkT1GbxS5Mm0U3Ey1/H68P0G7cJcyiVr1CARxFbLqKE4QUpoV1o6jz1Z5Yl9Q==} + + '@cspell/dict-en_us@4.4.33': + resolution: {integrity: sha512-zWftVqfUStDA37wO1ZNDN1qMJOfcxELa8ucHW8W8wBAZY3TK5Nb6deLogCK/IJi/Qljf30dwwuqqv84Qqle9Tw==} + + '@cspell/dict-filetypes@3.0.18': + resolution: {integrity: sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==} + + '@cspell/dict-flutter@1.1.1': + resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} + + '@cspell/dict-fonts@4.0.6': + resolution: {integrity: sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==} + + '@cspell/dict-fsharp@1.1.1': + resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} + + '@cspell/dict-fullstack@3.2.9': + resolution: {integrity: sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==} + + '@cspell/dict-gaming-terms@1.1.2': + resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} + + '@cspell/dict-git@3.1.0': + resolution: {integrity: sha512-KEt9zGkxqGy2q1nwH4CbyqTSv5nadpn8BAlDnzlRcnL0Xb3LX9xTgSGShKvzb0bw35lHoYyLWN2ZKAqbC4pgGQ==} + + '@cspell/dict-golang@6.0.26': + resolution: {integrity: sha512-YKA7Xm5KeOd14v5SQ4ll6afe9VSy3a2DWM7L9uBq4u3lXToRBQ1W5PRa+/Q9udd+DTURyVVnQ+7b9cnOlNxaRg==} + + '@cspell/dict-google@1.0.9': + resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} + + '@cspell/dict-haskell@4.0.6': + resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} + + '@cspell/dict-html-symbol-entities@4.0.5': + resolution: {integrity: sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==} + + '@cspell/dict-html@4.0.15': + resolution: {integrity: sha512-GJYnYKoD9fmo2OI0aySEGZOjThnx3upSUvV7mmqUu8oG+mGgzqm82P/f7OqsuvTaInZZwZbo+PwJQd/yHcyFIw==} + + '@cspell/dict-java@5.0.12': + resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} + + '@cspell/dict-julia@1.1.1': + resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} + + '@cspell/dict-k8s@1.0.12': + resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==} + + '@cspell/dict-kotlin@1.1.1': + resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} + + '@cspell/dict-latex@5.1.0': + resolution: {integrity: sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==} + + '@cspell/dict-lorem-ipsum@4.0.5': + resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} + + '@cspell/dict-lua@4.0.8': + resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} + + '@cspell/dict-makefile@1.0.5': + resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} + + '@cspell/dict-markdown@2.0.16': + resolution: {integrity: sha512-976RRqKv6cwhrxdFCQP2DdnBVB86BF57oQtPHy4Zbf4jF/i2Oy29MCrxirnOBalS1W6KQeto7NdfDXRAwkK4PQ==} + peerDependencies: + '@cspell/dict-css': ^4.1.1 + '@cspell/dict-html': ^4.0.15 + '@cspell/dict-html-symbol-entities': ^4.0.5 + '@cspell/dict-typescript': ^3.2.3 + + '@cspell/dict-monkeyc@1.0.12': + resolution: {integrity: sha512-MN7Vs11TdP5mbdNFQP5x2Ac8zOBm97ARg6zM5Sb53YQt/eMvXOMvrep7+/+8NJXs0jkp70bBzjqU4APcqBFNAw==} + + '@cspell/dict-node@5.0.9': + resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} + + '@cspell/dict-npm@5.2.38': + resolution: {integrity: sha512-21ucGRPYYhr91C2cDBoMPTrcIOStQv33xOqJB0JLoC5LAs2Sfj9EoPGhGb+gIFVHz6Ia7JQWE2SJsOVFJD1wmg==} + + '@cspell/dict-php@4.1.1': + resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} + + '@cspell/dict-powershell@5.0.15': + resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} + + '@cspell/dict-public-licenses@2.0.16': + resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} + + '@cspell/dict-python@4.2.26': + resolution: {integrity: sha512-hbjN6BjlSgZOG2dA2DtvYNGBM5Aq0i0dHaZjMOI9K/9vRicVvKbcCiBSSrR3b+jwjhQL5ff7HwG5xFaaci0GQA==} + + '@cspell/dict-r@2.1.1': + resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} + + '@cspell/dict-ruby@5.1.1': + resolution: {integrity: sha512-LHrp84oEV6q1ZxPPyj4z+FdKyq1XAKYPtmGptrd+uwHbrF/Ns5+fy6gtSi7pS+uc0zk3JdO9w/tPK+8N1/7WUA==} + + '@cspell/dict-rust@4.1.2': + resolution: {integrity: sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==} + + '@cspell/dict-scala@5.0.9': + resolution: {integrity: sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==} + + '@cspell/dict-shell@1.1.2': + resolution: {integrity: sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==} + + '@cspell/dict-software-terms@5.2.2': + resolution: {integrity: sha512-0CaYd6TAsKtEoA7tNswm1iptEblTzEe3UG8beG2cpSTHk7afWIVMtJLgXDv0f/Li67Lf3Z1Jf3JeXR7GsJ2TRw==} + + '@cspell/dict-sql@2.2.1': + resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} + + '@cspell/dict-svelte@1.0.7': + resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} + + '@cspell/dict-swift@2.0.6': + resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} + + '@cspell/dict-terraform@1.1.3': + resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==} + + '@cspell/dict-typescript@3.2.3': + resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} + + '@cspell/dict-vue@3.0.5': + resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} + + '@cspell/dict-zig@1.0.0': + resolution: {integrity: sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==} + + '@cspell/dynamic-import@9.7.0': + resolution: {integrity: sha512-Ws36IYvtS/8IN3x6K9dPLvTmaArodRJmzTn2Rkf2NaTnIYWhRuFzsP3SVVO59NN3fXswAEbmz5DSbVUe8bPZHg==} + engines: {node: '>=20'} + + '@cspell/filetypes@9.7.0': + resolution: {integrity: sha512-Ln9e/8wGOyTeL3DCCs6kwd18TSpTw3kxsANjTrzLDASrX4cNmAdvc9J5dcIuBHPaqOAnRQxuZbzUlpRh73Y24w==} + engines: {node: '>=20'} + + '@cspell/rpc@9.7.0': + resolution: {integrity: sha512-VnZ4ABgQeoS4RwofcePkDP7L6tf3Kh5D7LQKoyRM4R6XtfSsYefym6XKaRl3saGtthH5YyjgNJ0Tgdjen4wAAw==} + engines: {node: '>=20.18'} + + '@cspell/strong-weak-map@9.7.0': + resolution: {integrity: sha512-5xbvDASjklrmy88O6gmGXgYhpByCXqOj5wIgyvwZe2l83T1bE+iOfGI4pGzZJ/mN+qTn1DNKq8BPBPtDgb7Q2Q==} + engines: {node: '>=20'} + + '@cspell/url@9.7.0': + resolution: {integrity: sha512-ZaaBr0pTvNxmyUbIn+nVPXPr383VqJzfUDMWicgTjJIeo2+T2hOq2kNpgpvTIrWtZrsZnSP8oXms1+sKTjcvkw==} + engines: {node: '>=20'} + '@devicefarmer/adbkit-logcat@2.1.3': resolution: {integrity: sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==} engines: {node: '>= 4'} @@ -2538,6 +2775,9 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-union@3.0.1: resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} engines: {node: '>=12'} @@ -2661,6 +2901,10 @@ packages: resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} engines: {node: '>=20.19.0'} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} @@ -2675,6 +2919,10 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chalk-template@1.1.2: + resolution: {integrity: sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==} + engines: {node: '>=14.16'} + chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -2718,6 +2966,10 @@ packages: citty@0.2.0: resolution: {integrity: sha512-8csy5IBFI2ex2hTVpaHN2j+LNE199AgiI7y4dMintrr8i0lQiFn+0AWMZrWdHKIgMOer65f8IThysYhoReqjWA==} + clear-module@4.1.2: + resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} + engines: {node: '>=8'} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -2763,6 +3015,10 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} + comment-json@4.6.2: + resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} + engines: {node: '>= 6'} + comment-parser@1.4.5: resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} engines: {node: '>= 12.0.0'} @@ -2823,6 +3079,47 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + cspell-config-lib@9.7.0: + resolution: {integrity: sha512-pguh8A3+bSJ1OOrKCiQan8bvaaY125de76OEFz7q1Pq309lIcDrkoL/W4aYbso/NjrXaIw6OjkgPMGRBI/IgGg==} + engines: {node: '>=20'} + + cspell-dictionary@9.7.0: + resolution: {integrity: sha512-k/Wz0so32+0QEqQe21V9m4BNXM5ZN6lz3Ix/jLCbMxFIPl6wT711ftjOWIEMFhvUOP0TWXsbzcuE9mKtS5mTig==} + engines: {node: '>=20'} + + cspell-gitignore@9.7.0: + resolution: {integrity: sha512-MtoYuH4ah4K6RrmaF834npMcRsTKw0658mC6yvmBacUQOmwB/olqyuxF3fxtbb55HDb7cXDQ35t1XuwwGEQeZw==} + engines: {node: '>=20'} + hasBin: true + + cspell-glob@9.7.0: + resolution: {integrity: sha512-LUeAoEsoCJ+7E3TnUmWBscpVQOmdwBejMlFn0JkXy6LQzxrybxXBKf65RSdIv1o5QtrhQIMa358xXYQG0sv/tA==} + engines: {node: '>=20'} + + cspell-grammar@9.7.0: + resolution: {integrity: sha512-oEYME+7MJztfVY1C06aGcJgEYyqBS/v/ETkQGPzf/c6ObSAPRcUbVtsXZgnR72Gru9aBckc70xJcD6bELdoWCA==} + engines: {node: '>=20'} + hasBin: true + + cspell-io@9.7.0: + resolution: {integrity: sha512-V7x0JHAUCcJPRCH8c0MQkkaKmZD2yotxVyrNEx2SZTpvnKrYscLEnUUTWnGJIIf9znzISqw116PLnYu2c+zd6Q==} + engines: {node: '>=20'} + + cspell-lib@9.7.0: + resolution: {integrity: sha512-aTx/aLRpnuY1RJnYAu+A8PXfm1oIUdvAQ4W9E66bTgp1LWI+2G2++UtaPxRIgI0olxE9vcXqUnKpjOpO+5W9bQ==} + engines: {node: '>=20'} + + cspell-trie-lib@9.7.0: + resolution: {integrity: sha512-a2YqmcraL3g6I/4gY7SYWEZfP73oLluUtxO7wxompk/kOG2K1FUXyQfZXaaR7HxVv10axT1+NrjhOmXpfbI6LA==} + engines: {node: '>=20'} + peerDependencies: + '@cspell/cspell-types': 9.7.0 + + cspell@9.7.0: + resolution: {integrity: sha512-ftxOnkd+scAI7RZ1/ksgBZRr0ouC7QRKtPQhD/PbLTKwAM62sSvRhE1bFsuW3VKBn/GilWzTjkJ40WmnDqH5iQ==} + engines: {node: '>=20.18'} + hasBin: true + css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} @@ -2991,6 +3288,10 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} + env-paths@4.0.0: + resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} + engines: {node: '>=20'} + environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} @@ -3111,6 +3412,10 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-equals@6.0.0: + resolution: {integrity: sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==} + engines: {node: '>=6.0.0'} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -3203,6 +3508,10 @@ packages: resolution: {integrity: sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==} hasBin: true + gensequence@8.0.8: + resolution: {integrity: sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==} + engines: {node: '>=20'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3255,6 +3564,10 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + global-directory@5.0.0: + resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} + engines: {node: '>=20'} + graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -3328,6 +3641,10 @@ packages: immutable@5.1.4: resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -3353,6 +3670,10 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + is-absolute@0.1.7: resolution: {integrity: sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==} engines: {node: '>=0.10.0'} @@ -3455,6 +3776,10 @@ packages: resolution: {integrity: sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==} engines: {node: '>=0.10.0'} + is-safe-filename@0.1.1: + resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} + engines: {node: '>=20'} + is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -4031,6 +4356,14 @@ packages: pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parent-module@2.0.0: + resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} + engines: {node: '>=8'} + parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -4256,6 +4589,14 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -4965,12 +5306,18 @@ packages: jsdom: optional: true + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vue@3.5.29: resolution: {integrity: sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==} peerDependencies: @@ -5130,9 +5477,7 @@ snapshots: proper-lockfile: 4.1.2 yaml: 2.8.2 - '@aklinker1/check@2.2.0': - dependencies: - ci-info: 4.4.0 + '@aklinker1/check@2.4.0': {} '@aklinker1/rollup-plugin-visualizer@5.12.0(rollup@4.57.1)': dependencies: @@ -5416,6 +5761,228 @@ snapshots: conventional-commits-parser: 6.3.0 picocolors: 1.1.1 + '@cspell/cspell-bundled-dicts@9.7.0': + dependencies: + '@cspell/dict-ada': 4.1.1 + '@cspell/dict-al': 1.1.1 + '@cspell/dict-aws': 4.0.17 + '@cspell/dict-bash': 4.2.2 + '@cspell/dict-companies': 3.2.11 + '@cspell/dict-cpp': 7.0.2 + '@cspell/dict-cryptocurrencies': 5.0.5 + '@cspell/dict-csharp': 4.0.8 + '@cspell/dict-css': 4.1.1 + '@cspell/dict-dart': 2.3.2 + '@cspell/dict-data-science': 2.0.13 + '@cspell/dict-django': 4.1.6 + '@cspell/dict-docker': 1.1.17 + '@cspell/dict-dotnet': 5.0.13 + '@cspell/dict-elixir': 4.0.8 + '@cspell/dict-en-common-misspellings': 2.1.12 + '@cspell/dict-en-gb-mit': 3.1.22 + '@cspell/dict-en_us': 4.4.33 + '@cspell/dict-filetypes': 3.0.18 + '@cspell/dict-flutter': 1.1.1 + '@cspell/dict-fonts': 4.0.6 + '@cspell/dict-fsharp': 1.1.1 + '@cspell/dict-fullstack': 3.2.9 + '@cspell/dict-gaming-terms': 1.1.2 + '@cspell/dict-git': 3.1.0 + '@cspell/dict-golang': 6.0.26 + '@cspell/dict-google': 1.0.9 + '@cspell/dict-haskell': 4.0.6 + '@cspell/dict-html': 4.0.15 + '@cspell/dict-html-symbol-entities': 4.0.5 + '@cspell/dict-java': 5.0.12 + '@cspell/dict-julia': 1.1.1 + '@cspell/dict-k8s': 1.0.12 + '@cspell/dict-kotlin': 1.1.1 + '@cspell/dict-latex': 5.1.0 + '@cspell/dict-lorem-ipsum': 4.0.5 + '@cspell/dict-lua': 4.0.8 + '@cspell/dict-makefile': 1.0.5 + '@cspell/dict-markdown': 2.0.16(@cspell/dict-css@4.1.1)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-monkeyc': 1.0.12 + '@cspell/dict-node': 5.0.9 + '@cspell/dict-npm': 5.2.38 + '@cspell/dict-php': 4.1.1 + '@cspell/dict-powershell': 5.0.15 + '@cspell/dict-public-licenses': 2.0.16 + '@cspell/dict-python': 4.2.26 + '@cspell/dict-r': 2.1.1 + '@cspell/dict-ruby': 5.1.1 + '@cspell/dict-rust': 4.1.2 + '@cspell/dict-scala': 5.0.9 + '@cspell/dict-shell': 1.1.2 + '@cspell/dict-software-terms': 5.2.2 + '@cspell/dict-sql': 2.2.1 + '@cspell/dict-svelte': 1.0.7 + '@cspell/dict-swift': 2.0.6 + '@cspell/dict-terraform': 1.1.3 + '@cspell/dict-typescript': 3.2.3 + '@cspell/dict-vue': 3.0.5 + '@cspell/dict-zig': 1.0.0 + + '@cspell/cspell-json-reporter@9.7.0': + dependencies: + '@cspell/cspell-types': 9.7.0 + + '@cspell/cspell-performance-monitor@9.7.0': {} + + '@cspell/cspell-pipe@9.7.0': {} + + '@cspell/cspell-resolver@9.7.0': + dependencies: + global-directory: 5.0.0 + + '@cspell/cspell-service-bus@9.7.0': {} + + '@cspell/cspell-types@9.7.0': {} + + '@cspell/cspell-worker@9.7.0': + dependencies: + cspell-lib: 9.7.0 + + '@cspell/dict-ada@4.1.1': {} + + '@cspell/dict-al@1.1.1': {} + + '@cspell/dict-aws@4.0.17': {} + + '@cspell/dict-bash@4.2.2': + dependencies: + '@cspell/dict-shell': 1.1.2 + + '@cspell/dict-companies@3.2.11': {} + + '@cspell/dict-cpp@7.0.2': {} + + '@cspell/dict-cryptocurrencies@5.0.5': {} + + '@cspell/dict-csharp@4.0.8': {} + + '@cspell/dict-css@4.1.1': {} + + '@cspell/dict-dart@2.3.2': {} + + '@cspell/dict-data-science@2.0.13': {} + + '@cspell/dict-django@4.1.6': {} + + '@cspell/dict-docker@1.1.17': {} + + '@cspell/dict-dotnet@5.0.13': {} + + '@cspell/dict-elixir@4.0.8': {} + + '@cspell/dict-en-common-misspellings@2.1.12': {} + + '@cspell/dict-en-gb-mit@3.1.22': {} + + '@cspell/dict-en_us@4.4.33': {} + + '@cspell/dict-filetypes@3.0.18': {} + + '@cspell/dict-flutter@1.1.1': {} + + '@cspell/dict-fonts@4.0.6': {} + + '@cspell/dict-fsharp@1.1.1': {} + + '@cspell/dict-fullstack@3.2.9': {} + + '@cspell/dict-gaming-terms@1.1.2': {} + + '@cspell/dict-git@3.1.0': {} + + '@cspell/dict-golang@6.0.26': {} + + '@cspell/dict-google@1.0.9': {} + + '@cspell/dict-haskell@4.0.6': {} + + '@cspell/dict-html-symbol-entities@4.0.5': {} + + '@cspell/dict-html@4.0.15': {} + + '@cspell/dict-java@5.0.12': {} + + '@cspell/dict-julia@1.1.1': {} + + '@cspell/dict-k8s@1.0.12': {} + + '@cspell/dict-kotlin@1.1.1': {} + + '@cspell/dict-latex@5.1.0': {} + + '@cspell/dict-lorem-ipsum@4.0.5': {} + + '@cspell/dict-lua@4.0.8': {} + + '@cspell/dict-makefile@1.0.5': {} + + '@cspell/dict-markdown@2.0.16(@cspell/dict-css@4.1.1)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3)': + dependencies: + '@cspell/dict-css': 4.1.1 + '@cspell/dict-html': 4.0.15 + '@cspell/dict-html-symbol-entities': 4.0.5 + '@cspell/dict-typescript': 3.2.3 + + '@cspell/dict-monkeyc@1.0.12': {} + + '@cspell/dict-node@5.0.9': {} + + '@cspell/dict-npm@5.2.38': {} + + '@cspell/dict-php@4.1.1': {} + + '@cspell/dict-powershell@5.0.15': {} + + '@cspell/dict-public-licenses@2.0.16': {} + + '@cspell/dict-python@4.2.26': + dependencies: + '@cspell/dict-data-science': 2.0.13 + + '@cspell/dict-r@2.1.1': {} + + '@cspell/dict-ruby@5.1.1': {} + + '@cspell/dict-rust@4.1.2': {} + + '@cspell/dict-scala@5.0.9': {} + + '@cspell/dict-shell@1.1.2': {} + + '@cspell/dict-software-terms@5.2.2': {} + + '@cspell/dict-sql@2.2.1': {} + + '@cspell/dict-svelte@1.0.7': {} + + '@cspell/dict-swift@2.0.6': {} + + '@cspell/dict-terraform@1.1.3': {} + + '@cspell/dict-typescript@3.2.3': {} + + '@cspell/dict-vue@3.0.5': {} + + '@cspell/dict-zig@1.0.0': {} + + '@cspell/dynamic-import@9.7.0': + dependencies: + '@cspell/url': 9.7.0 + import-meta-resolve: 4.2.0 + + '@cspell/filetypes@9.7.0': {} + + '@cspell/rpc@9.7.0': {} + + '@cspell/strong-weak-map@9.7.0': {} + + '@cspell/url@9.7.0': {} + '@devicefarmer/adbkit-logcat@2.1.3': {} '@devicefarmer/adbkit-monkey@1.2.1': {} @@ -6726,6 +7293,8 @@ snapshots: array-ify@1.0.0: {} + array-timsort@1.0.3: {} + array-union@3.0.1: {} assertion-error@2.0.1: {} @@ -6856,6 +7425,8 @@ snapshots: cac@7.0.0: {} + callsites@3.1.0: {} + camelcase@8.0.0: {} caniuse-lite@1.0.30001768: {} @@ -6864,6 +7435,10 @@ snapshots: chai@6.2.2: {} + chalk-template@1.1.2: + dependencies: + chalk: 5.6.2 + chalk@5.6.2: {} changelogen@0.6.2(magicast@0.5.2): @@ -6917,6 +7492,11 @@ snapshots: citty@0.2.0: {} + clear-module@4.1.2: + dependencies: + parent-module: 2.0.0 + resolve-from: 5.0.0 + cli-boxes@3.0.0: {} cli-cursor@5.0.0: @@ -6954,6 +7534,11 @@ snapshots: commander@9.5.0: {} + comment-json@4.6.2: + dependencies: + array-timsort: 1.0.3 + esprima: 4.0.1 + comment-parser@1.4.5: {} compare-func@2.0.0: @@ -7015,6 +7600,97 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cspell-config-lib@9.7.0: + dependencies: + '@cspell/cspell-types': 9.7.0 + comment-json: 4.6.2 + smol-toml: 1.6.0 + yaml: 2.8.2 + + cspell-dictionary@9.7.0: + dependencies: + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + cspell-trie-lib: 9.7.0(@cspell/cspell-types@9.7.0) + fast-equals: 6.0.0 + + cspell-gitignore@9.7.0: + dependencies: + '@cspell/url': 9.7.0 + cspell-glob: 9.7.0 + cspell-io: 9.7.0 + + cspell-glob@9.7.0: + dependencies: + '@cspell/url': 9.7.0 + picomatch: 4.0.3 + + cspell-grammar@9.7.0: + dependencies: + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + + cspell-io@9.7.0: + dependencies: + '@cspell/cspell-service-bus': 9.7.0 + '@cspell/url': 9.7.0 + + cspell-lib@9.7.0: + dependencies: + '@cspell/cspell-bundled-dicts': 9.7.0 + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-resolver': 9.7.0 + '@cspell/cspell-types': 9.7.0 + '@cspell/dynamic-import': 9.7.0 + '@cspell/filetypes': 9.7.0 + '@cspell/rpc': 9.7.0 + '@cspell/strong-weak-map': 9.7.0 + '@cspell/url': 9.7.0 + clear-module: 4.1.2 + cspell-config-lib: 9.7.0 + cspell-dictionary: 9.7.0 + cspell-glob: 9.7.0 + cspell-grammar: 9.7.0 + cspell-io: 9.7.0 + cspell-trie-lib: 9.7.0(@cspell/cspell-types@9.7.0) + env-paths: 4.0.0 + gensequence: 8.0.8 + import-fresh: 3.3.1 + resolve-from: 5.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + xdg-basedir: 5.1.0 + + cspell-trie-lib@9.7.0(@cspell/cspell-types@9.7.0): + dependencies: + '@cspell/cspell-types': 9.7.0 + + cspell@9.7.0: + dependencies: + '@cspell/cspell-json-reporter': 9.7.0 + '@cspell/cspell-performance-monitor': 9.7.0 + '@cspell/cspell-pipe': 9.7.0 + '@cspell/cspell-types': 9.7.0 + '@cspell/cspell-worker': 9.7.0 + '@cspell/dynamic-import': 9.7.0 + '@cspell/url': 9.7.0 + ansi-regex: 6.2.2 + chalk: 5.6.2 + chalk-template: 1.1.2 + commander: 14.0.3 + cspell-config-lib: 9.7.0 + cspell-dictionary: 9.7.0 + cspell-gitignore: 9.7.0 + cspell-glob: 9.7.0 + cspell-io: 9.7.0 + cspell-lib: 9.7.0 + fast-json-stable-stringify: 2.1.0 + flatted: 3.3.3 + semver: 7.7.4 + tinyglobby: 0.2.15 + css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -7141,6 +7817,10 @@ snapshots: entities@7.0.1: {} + env-paths@4.0.0: + dependencies: + is-safe-filename: 0.1.1 + environment@1.1.0: {} error-ex@1.3.4: @@ -7314,6 +7994,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-equals@6.0.0: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7406,6 +8088,8 @@ snapshots: which: 1.2.4 winreg: 0.0.12 + gensequence@8.0.8: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -7453,6 +8137,10 @@ snapshots: dependencies: ini: 4.1.1 + global-directory@5.0.0: + dependencies: + ini: 6.0.0 + graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} @@ -7533,6 +8221,11 @@ snapshots: immutable@5.1.4: {} + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + import-meta-resolve@4.2.0: {} import-without-cache@0.2.5: {} @@ -7547,6 +8240,8 @@ snapshots: ini@4.1.3: {} + ini@6.0.0: {} + is-absolute@0.1.7: dependencies: is-relative: 0.1.3 @@ -7615,6 +8310,8 @@ snapshots: is-relative@0.1.3: {} + is-safe-filename@0.1.1: {} + is-what@4.1.16: {} is-what@5.5.0: {} @@ -8410,6 +9107,14 @@ snapshots: pako@1.0.11: {} + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parent-module@2.0.0: + dependencies: + callsites: 3.1.0 + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -8666,6 +9371,10 @@ snapshots: require-directory@2.1.1: {} + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} restore-cursor@5.1.0: @@ -9479,10 +10188,14 @@ snapshots: - tsx - yaml + vscode-languageserver-textdocument@1.0.12: {} + vscode-oniguruma@1.7.0: {} vscode-textmate@8.0.0: {} + vscode-uri@3.1.0: {} + vue@3.5.29(typescript@5.9.3): dependencies: '@vue/compiler-dom': 3.5.29 diff --git a/scripts/upgrade-deps.ts b/scripts/upgrade-deps.ts index d31a0061..ec773e5f 100644 --- a/scripts/upgrade-deps.ts +++ b/scripts/upgrade-deps.ts @@ -2,6 +2,7 @@ import consola from 'consola'; import spawn from 'nano-spawn'; import { readFile, writeFile } from 'node:fs/promises'; import { dirname } from 'node:path'; +import { styleText } from 'node:util'; import pMap from 'p-map'; import * as semver from 'semver'; import { glob } from 'tinyglobby'; @@ -155,14 +156,14 @@ function validateNoMultipleVersions( const maxWidth = Math.max( ...depsWithMultipleVersions.map(([name]) => name.length), ); - console.log(maxWidth); - const addCyan = (text: string) => `\x1b[36m${text}\x1b[0m`; consola.info('Found multiple versions of:'); for (const [name, versions] of depsWithMultipleVersions) { console.log( - ` \x1b[35m${name.padEnd(maxWidth)}\x1b[0m ${Array.from(versions) - .map(addCyan) + ` ${styleText('magenta', name.padEnd(maxWidth))} ${Array.from( + versions, + ) + .map((text) => styleText('cyan', text)) .join('\t')}`, ); } @@ -313,24 +314,34 @@ function printUpgrades(upgrades: UpgradeDetails[]): void { for (let i = 0; i < upgrades.length; i++) { const upgrade = upgrades[i]; - const num = `\x1b[2m${(i + 1).toString().padStart(numberPadding)}.\x1b[0m`; - const name = `\x1b[35m${upgrade.name.padEnd(namePadding)}\x1b[0m`; + const num = styleText( + 'bold', + (i + 1).toString().padStart(numberPadding) + '.', + ); + const name = styleText('magenta', upgrade.name.padEnd(namePadding)); const color = upgrade.diff == null - ? '\x1b[2m' + ? 'bold' : upgrade.diff === 'patch' - ? '\x1b[32m' + ? 'green' : upgrade.diff === 'minor' - ? '\x1b[33m' - : '\x1b[31m'; - const currentVersion = `\x1b[2m${upgrade.currentRange.padEnd(currentVersionPadding)}\x1b[0m`; - const upgradeToVersion = `${color}${upgrade.upgradeToRange.padEnd(upgradeToVersionPadding)}\x1b[0m`; + ? 'yellow' + : 'red'; + const currentVersion = styleText( + 'bold', + upgrade.currentRange.padEnd(currentVersionPadding), + ); + const upgradeToVersion = styleText( + color, + upgrade.upgradeToRange.padEnd(upgradeToVersionPadding), + ); const latest = upgrade.latestVersion !== upgrade.upgradeToVersion - ? ` \x1b[2m\x1b[31m(${upgrade.latestVersion} available)\x1b[0m` + ? ' ' + + styleText(['bold', 'red'], `(${upgrade.latestVersion} available)`) : ''; console.log( - ` ${num} ${name} ${currentVersion} \x1b[2m→\x1b[0m ${upgradeToVersion}${latest}`, + ` ${num} ${name} ${currentVersion} ${styleText('dim', '→')} ${upgradeToVersion}${latest}`, ); } console.log();