chore: Add cspell and fix all typos

This commit is contained in:
Aaron
2026-03-28 11:45:47 -05:00
parent c528361d07
commit 6621aaf877
25 changed files with 902 additions and 61 deletions
+3 -3
View File
@@ -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 <https://wxt.dev/blog>!
If you're interested in becoming a maintainer, send an email to Aaron at <aaronklinker1@gmail.com> 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.
+114
View File
@@ -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
+1 -1
View File
@@ -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.
+2
View File
@@ -557,6 +557,8 @@ Unlisted scripts must now `export default defineUnlistedScript(...)`.
### `BackgroundDefinition` Type
<!-- cspell:disable -->
Rename `BackgroundScriptDefintition` to `BackgroundDefinition`.
## v0.6.0 &rarr; v0.7.0
+1 -1
View File
@@ -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 "
+2 -1
View File
@@ -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",
+7 -4
View File
@@ -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
+1 -1
View File
@@ -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:
+1 -1
View File
@@ -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);
});
+1 -1
View File
@@ -71,7 +71,7 @@ const PREDEFINED_MESSAGES: Record<string, ChromeMessage> = {
'@@extension_id': {
message: '<browser.runtime.id>',
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: '<browser.i18n.getUiLocale()>',
+5 -8
View File
@@ -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.`,
},
);
}
+1 -1
View File
@@ -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 () => {
@@ -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.
*
* "<browser.runtime.id>"
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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<ResolvedConfig['zip']> {
): NullishRequired<ResolvedConfig['zip']> {
const downloadedPackagesDir = path.resolve(root, '.wxt/local_modules');
return {
name: undefined,
@@ -330,7 +330,7 @@ function resolveZipConfig(
function resolveAnalysisConfig(
root: string,
mergedConfig: InlineConfig,
): NullablyRequired<ResolvedConfig['analysis']> {
): NullishRequired<ResolvedConfig['analysis']> {
const analysisOutputFile = path.resolve(
root,
mergedConfig.analysis?.outputFile ?? 'stats.html',
+1 -1
View File
@@ -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,
@@ -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 };
@@ -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
@@ -49,7 +49,7 @@ export async function rebuild(
const newOutput = await buildEntrypoints(entrypointGroups, spinner);
const mergedOutput: Omit<BuildOutput, 'manifest'> = {
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,
};
+1 -1
View File
@@ -8,7 +8,7 @@ const predefinedMessages = {
'@@extension_id': {
message: '<browser.runtime.id>',
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: '<browser.i18n.getUiLocale()>',
+1 -1
View File
@@ -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) {
+2 -2
View File
@@ -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<T> = { [K in keyof Required<T>]: T[K] };
export type NullishRequired<T> = { [K in keyof Required<T>]: T[K] };
export type ManifestContentScript = NonNullable<
Browser.runtime.Manifest['content_scripts']
+2 -2
View File
@@ -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<WxtViteConfig>;
}
+720 -7
View File
@@ -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
+25 -14
View File
@@ -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();