From db73857382edda58198d3c90eba5585bbd8467c2 Mon Sep 17 00:00:00 2001 From: Asuka109 Date: Thu, 6 Feb 2025 23:24:27 +0800 Subject: [PATCH 01/20] feat(harper.js): export both `binary` and `inlinedBinary` for different runtimes --- .vscode/settings.json | 3 + packages/harper.js/package.json | 16 +- packages/harper.js/src/Linter.test.ts | 33 +- packages/harper.js/src/Linter.ts | 7 +- packages/harper.js/src/LocalLinter.ts | 23 +- .../src/WorkerLinter/communication.test.ts | 3 +- .../src/WorkerLinter/communication.ts | 13 +- packages/harper.js/src/WorkerLinter/index.ts | 18 +- packages/harper.js/src/WorkerLinter/worker.js | 24 - packages/harper.js/src/WorkerLinter/worker.ts | 30 ++ packages/harper.js/src/binary.ts | 12 + packages/harper.js/src/loadWasm.ts | 26 - packages/harper.js/src/main.ts | 13 +- packages/harper.js/vite.config.js | 28 +- packages/package.json | 3 +- packages/vscode-plugin/package.json | 2 +- packages/web/package.json | 8 +- .../docs/harperjs/introduction/+page.md | 3 + packages/yarn.lock | 490 ++++++++---------- 19 files changed, 366 insertions(+), 389 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 packages/harper.js/src/WorkerLinter/worker.js create mode 100644 packages/harper.js/src/WorkerLinter/worker.ts create mode 100644 packages/harper.js/src/binary.ts delete mode 100644 packages/harper.js/src/loadWasm.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..7c394e2d2c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "typescript.tsdk": "packages/harper.js/node_modules/typescript/lib" +} diff --git a/packages/harper.js/package.json b/packages/harper.js/package.json index 5545b8acf5..e0f4ca8a35 100644 --- a/packages/harper.js/package.json +++ b/packages/harper.js/package.json @@ -17,20 +17,24 @@ "scripts": { "dev": "vite", "build": "tsc && vite build", - "test": "vitest run --browser chromium && vitest run --browser firefox" + "test": "vitest run --browser" }, "devDependencies": { "@microsoft/api-documenter": "^7.26.5", "@microsoft/api-extractor": "^7.49.1", - "@vitest/browser": "^2.1.9", + "@vitest/browser": "^3.0.5", "playwright": "^1.49.1", - "typescript": "~5.6.2", - "vite": "^5.4.12", + "typescript": "^5.7.3", + "vite": "^6.1.0", "vite-plugin-dts": "^4.5.0", "vite-plugin-virtual": "^0.3.0", - "vitest": "^2.1.9", + "vitest": "^3.0.5", "wasm": "link:../../harper-wasm/pkg" }, "main": "dist/harper.js", - "types": "dist/harper.d.ts" + "types": "dist/harper.d.ts", + "sideEffects": false, + "files": [ + "dist" + ] } diff --git a/packages/harper.js/src/Linter.test.ts b/packages/harper.js/src/Linter.test.ts index 84fd96bde7..c1de1be45e 100644 --- a/packages/harper.js/src/Linter.test.ts +++ b/packages/harper.js/src/Linter.test.ts @@ -1,6 +1,7 @@ import { expect, test } from 'vitest'; import WorkerLinter from './WorkerLinter'; import LocalLinter from './LocalLinter'; +import { binary } from './binary'; const linters = { WorkerLinter: WorkerLinter, @@ -9,7 +10,7 @@ const linters = { for (const [linterName, Linter] of Object.entries(linters)) { test(`${linterName} detects repeated words`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const lints = await linter.lint('The the problem is...'); @@ -17,7 +18,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} detects repeated words with multiple synchronous requests`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const promises = [ linter.lint('The problem is that that...'), @@ -38,7 +39,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} detects repeated words with concurrent requests`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const promises = [ linter.lint('The problem is that that...'), @@ -55,7 +56,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} detects lorem ipsum paragraph as not english`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const result = await linter.isLikelyEnglish( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.' @@ -66,20 +67,20 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} can run setup without issues`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); await linter.setup(); }); test(`${linterName} contains configuration option for repetition`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const lintConfig = await linter.getLintConfig(); expect(lintConfig).toHaveProperty('repeated_words'); }); test(`${linterName} can both get and set its configuration`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); let lintConfig = await linter.getLintConfig(); @@ -96,7 +97,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} can make things title case`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const titleCase = await linter.toTitleCase('THIS IS A TEST FOR MAKING TITLES'); @@ -104,7 +105,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} can get rule descriptions`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const descriptions = await linter.getLintDescriptions(); @@ -112,7 +113,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} rule descriptions are not empty`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const descriptions = await linter.getLintDescriptions(); @@ -123,7 +124,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} default lint config has no null values`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const lintConfig = await linter.getDefaultLintConfig(); @@ -133,7 +134,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { }); test(`${linterName} can ignore lints`, async () => { - const linter = new Linter(); + const linter = new Linter({ binary }); const source = 'This is an test.'; const firstRound = await linter.lint(source); @@ -150,7 +151,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { test(`${linterName} can reimport ignored lints.`, async () => { const source = 'This is an test of xporting lints.'; - const firstLinter = new Linter(); + const firstLinter = new Linter({ binary }); const firstLints = await firstLinter.lint(source); @@ -161,7 +162,7 @@ for (const [linterName, Linter] of Object.entries(linters)) { const exported = await firstLinter.exportIgnoredLints(); /// Create a new instance and reimport the lints. - const secondLinter = new Linter(); + const secondLinter = new Linter({ binary }); await secondLinter.importIgnoredLints(exported); const secondLints = await secondLinter.lint(source); @@ -175,7 +176,7 @@ test('Linters have the same config format', async () => { const configs = []; for (const Linter of Object.values(linters)) { - const linter = new Linter(); + const linter = new Linter({ binary }); configs.push(await linter.getLintConfig()); } @@ -190,7 +191,7 @@ test('Linters have the same JSON config format', async () => { const configs = []; for (const Linter of Object.values(linters)) { - const linter = new Linter(); + const linter = new Linter({ binary }); configs.push(await linter.getLintConfigAsJSON()); } diff --git a/packages/harper.js/src/Linter.ts b/packages/harper.js/src/Linter.ts index 90630da7c4..270ef286b6 100644 --- a/packages/harper.js/src/Linter.ts +++ b/packages/harper.js/src/Linter.ts @@ -1,4 +1,4 @@ -import type { Lint, Span, Suggestion } from 'wasm'; +import type { Lint, Span, Suggestion, InitInput as BinaryInitInput } from 'wasm'; import { LintConfig, LintOptions } from './main'; /** An interface for an object that can perform linting actions. */ @@ -64,3 +64,8 @@ export default interface Linter { /** Clear records of all previously ignored lints. */ clearIgnoredLints(): Promise; } + +export interface LinterInit { + /** The module or path to the WebAssembly binary. */ + binary: BinaryInitInput | Promise; +} diff --git a/packages/harper.js/src/LocalLinter.ts b/packages/harper.js/src/LocalLinter.ts index 1a72abd914..984a87d06b 100644 --- a/packages/harper.js/src/LocalLinter.ts +++ b/packages/harper.js/src/LocalLinter.ts @@ -1,19 +1,24 @@ import type { Lint, Span, Suggestion, Linter as WasmLinter } from 'wasm'; import { Language } from 'wasm'; -import Linter from './Linter'; -import loadWasm from './loadWasm'; +import Linter, { LinterInit } from './Linter'; import { LintConfig, LintOptions } from './main'; +import { binary, BinaryInit, loadBinary } from './binary'; /** A Linter that runs in the current JavaScript context (meaning it is allowed to block the event loop). */ export default class LocalLinter implements Linter { + private binary: BinaryInit; private inner: WasmLinter | undefined; + constructor(init: LinterInit) { + this.binary = init.binary; + } + /** Initialize the WebAssembly and construct the inner Linter. */ private async initialize(): Promise { if (!this.inner) { - const wasm = await loadWasm(); - wasm.setup(); - this.inner = wasm.Linter.new(); + const exports = await loadBinary(this.binary); + exports.setup(); + this.inner = exports.Linter.new(); } } @@ -33,7 +38,7 @@ export default class LocalLinter implements Linter { } async applySuggestion(text: string, suggestion: Suggestion, span: Span): Promise { - const wasm = await loadWasm(); + const wasm = await loadBinary(binary); return wasm.apply_suggestion(text, span, suggestion); } @@ -54,13 +59,13 @@ export default class LocalLinter implements Linter { } async getDefaultLintConfigAsJSON(): Promise { - const wasm = await loadWasm(); + const wasm = await loadBinary(binary); return wasm.get_default_lint_config_as_json(); } async getDefaultLintConfig(): Promise { - const wasm = await loadWasm(); + const wasm = await loadBinary(binary); return wasm.get_default_lint_config(); } @@ -84,7 +89,7 @@ export default class LocalLinter implements Linter { } async toTitleCase(text: string): Promise { - const wasm = await loadWasm(); + const wasm = await loadBinary(binary); return wasm.to_title_case(text); } diff --git a/packages/harper.js/src/WorkerLinter/communication.test.ts b/packages/harper.js/src/WorkerLinter/communication.test.ts index bc24900f64..3dbf7511f0 100644 --- a/packages/harper.js/src/WorkerLinter/communication.test.ts +++ b/packages/harper.js/src/WorkerLinter/communication.test.ts @@ -2,6 +2,7 @@ import { expect, test } from 'vitest'; import { deserializeArg, serializeArg } from './communication'; import { Span } from 'wasm'; import LocalLinter from '../LocalLinter'; +import { binary } from '../binary'; test('works with strings', async () => { const start = 'This is a string'; @@ -50,7 +51,7 @@ test('works with Spans', async () => { }); test('works with Lints', async () => { - const linter = new LocalLinter(); + const linter = new LocalLinter({ binary }); const lints = await linter.lint('This is an test.'); const start = lints[0]; diff --git a/packages/harper.js/src/WorkerLinter/communication.ts b/packages/harper.js/src/WorkerLinter/communication.ts index a0bbdf63bf..d3f7506055 100644 --- a/packages/harper.js/src/WorkerLinter/communication.ts +++ b/packages/harper.js/src/WorkerLinter/communication.ts @@ -1,8 +1,7 @@ +import { binary, loadBinary } from '../binary'; + /** This module aims to define the communication protocol between the main thread and the worker. * Note that most of the complication here comes from the fact that we can't serialize function calls or referenced WebAssembly memory.*/ - -import loadWasm from '../loadWasm'; - export type Type = | 'string' | 'number' @@ -27,7 +26,7 @@ export async function serialize(req: DeserializedRequest): Promise { - const { Lint, Span, Suggestion } = await loadWasm(); + const { Lint, Span, Suggestion } = await loadBinary(binary); if (Array.isArray(arg)) { return { json: JSON.stringify(await Promise.all(arg.map(serializeArg))), type: 'Array' }; @@ -65,7 +64,7 @@ export async function serializeArg(arg: any): Promise { } export async function deserializeArg(requestArg: RequestArg): Promise { - const { Lint, Span, Suggestion } = await loadWasm(); + const { Lint, Span, Suggestion } = await loadBinary(binary); switch (requestArg.type) { case 'undefined': @@ -95,6 +94,10 @@ export type SerializedRequest = { args: RequestArg[]; }; +export function isSerializedRequest(v: unknown): v is SerializedRequest { + return typeof v === 'object' && v !== null && 'procName' in v && 'args' in v; +} + /** An object that is received by the web worker to request work to be done. */ export type DeserializedRequest = { /** The procedure to be executed. */ diff --git a/packages/harper.js/src/WorkerLinter/index.ts b/packages/harper.js/src/WorkerLinter/index.ts index e2dfdfe10d..dcce0712fa 100644 --- a/packages/harper.js/src/WorkerLinter/index.ts +++ b/packages/harper.js/src/WorkerLinter/index.ts @@ -1,8 +1,7 @@ import { DeserializedRequest, deserializeArg, serialize } from './communication'; import type { Lint, Suggestion, Span } from 'wasm'; -import Linter from '../Linter'; -import Worker from './worker.js?worker&inline'; -import { getWasmUri } from '../loadWasm'; +import Linter, { LinterInit } from '../Linter'; +import Worker from './worker?worker&inline'; import { LintConfig, LintOptions } from '../main'; /** The data necessary to complete a request once the worker has responded. */ @@ -12,16 +11,23 @@ type RequestItem = { request: DeserializedRequest; }; +export interface WorkerLinterInit extends LinterInit { + binary: string; +} + /** A Linter that spins up a dedicated web worker to do processing on a separate thread. * Main benefit: this Linter will not block the event loop for large documents. * * NOTE: This class will not work properly in Node. In that case, just use `LocalLinter`. */ export default class WorkerLinter implements Linter { - private worker; + private binary: string; + private worker: Worker; private requestQueue: RequestItem[]; private working = true; - constructor() { + constructor(init: WorkerLinterInit) { + this.binary = init.binary; + this.worker = new Worker(); this.requestQueue = []; @@ -29,7 +35,7 @@ export default class WorkerLinter implements Linter { this.worker.onmessage = () => { this.setupMainEventListeners(); - this.worker.postMessage(getWasmUri()); + this.worker.postMessage(this.binary); this.working = false; this.submitRemainingRequests(); diff --git a/packages/harper.js/src/WorkerLinter/worker.js b/packages/harper.js/src/WorkerLinter/worker.js deleted file mode 100644 index 38e17541cc..0000000000 --- a/packages/harper.js/src/WorkerLinter/worker.js +++ /dev/null @@ -1,24 +0,0 @@ -import { setWasmUri } from '../loadWasm'; -import LocalLinter from '../LocalLinter'; -import { deserialize, serializeArg } from './communication'; - -const linter = new LocalLinter(); - -/** @param {SerializedRequest} v */ -async function processRequest(v) { - const { procName, args } = await deserialize(v); - - let res = await linter[procName](...args); - postMessage(await serializeArg(res)); -} - -self.onmessage = function (e) { - setWasmUri(e.data); - - self.onmessage = function (e) { - processRequest(e.data); - }; -}; - -// Notify the main thread that we are ready -postMessage('ready'); diff --git a/packages/harper.js/src/WorkerLinter/worker.ts b/packages/harper.js/src/WorkerLinter/worker.ts new file mode 100644 index 0000000000..625b4152f0 --- /dev/null +++ b/packages/harper.js/src/WorkerLinter/worker.ts @@ -0,0 +1,30 @@ +/// +import LocalLinter from '../LocalLinter'; +import { deserialize, serializeArg, SerializedRequest, isSerializedRequest } from './communication'; + +const scope = self as unknown as ServiceWorkerGlobalScope; + +scope.onmessage = (e) => { + const binary = e.data; + if (typeof binary !== 'string') { + throw new TypeError(`Expected binary to be a string of url but got ${typeof binary}.`); + } + const linter = new LocalLinter({ binary }); + + async function processRequest(v: SerializedRequest) { + const { procName, args } = await deserialize(v); + + if (procName in linter) { + // @ts-expect-error + const res = await linter[procName](...args); + postMessage(await serializeArg(res)); + } + } + + scope.onmessage = (e) => { + isSerializedRequest(e.data) && processRequest(e.data); + }; +}; + +// Notify the main thread that we are ready +postMessage('ready'); diff --git a/packages/harper.js/src/binary.ts b/packages/harper.js/src/binary.ts new file mode 100644 index 0000000000..4ebe92616a --- /dev/null +++ b/packages/harper.js/src/binary.ts @@ -0,0 +1,12 @@ +import type { InitInput as BinaryInitInput } from 'wasm'; + +export type BinaryInit = BinaryInitInput | Promise; + +export async function loadBinary(binary: BinaryInit) { + const wasm = await import('wasm'); + await wasm.default({ module_or_path: binary }); + return wasm; +} + +export { default as binary } from 'wasm/harper_wasm_bg.wasm?url'; +export { default as inlinedBinary } from 'wasm/harper_wasm_bg.wasm?inline'; diff --git a/packages/harper.js/src/loadWasm.ts b/packages/harper.js/src/loadWasm.ts deleted file mode 100644 index 985cbced14..0000000000 --- a/packages/harper.js/src/loadWasm.ts +++ /dev/null @@ -1,26 +0,0 @@ -// @ts-expect-error because this virtual module hasn't been added to a `d.ts` file. -import wasmUri from 'virtual:wasm'; - -let curWasmUri = wasmUri; - -/** Get the currently set data URI for the WebAssembly module. - * I'm not a huge of the singleton, but we're swapping out same data, just from a different source, so the state doesn't meaningfully change. */ -export function getWasmUri(): string { - return curWasmUri; -} - -/** Set the data URI for the WebAssembly module. */ -export function setWasmUri(uri: string) { - curWasmUri = uri; -} - -/** Load the WebAssembly manually and dynamically, making sure to set up infrastructure. - * You can use an optional data URL for the WebAssembly file if the module is being loaded from a Web Worker. - * */ -export default async function loadWasm() { - const wasm = await import('wasm'); - // @ts-ignore - await wasm.default({ module_or_path: getWasmUri() }); - - return wasm; -} diff --git a/packages/harper.js/src/main.ts b/packages/harper.js/src/main.ts index 86afb28dfc..3092c28e11 100644 --- a/packages/harper.js/src/main.ts +++ b/packages/harper.js/src/main.ts @@ -1,11 +1,8 @@ -import type { Lint, Span, Suggestion } from 'wasm'; -import { SuggestionKind } from 'wasm'; -import Linter from './Linter'; -import LocalLinter from './LocalLinter'; -import WorkerLinter from './WorkerLinter'; - -export { LocalLinter, WorkerLinter, SuggestionKind }; -export type { Linter, Lint, Span, Suggestion }; +export { Lint, Span, Suggestion, SuggestionKind } from 'wasm'; +export { default as LocalLinter } from './LocalLinter'; +export { default as WorkerLinter } from './WorkerLinter'; +export type { default as Linter } from './Linter'; +export { type BinaryInit, binary, inlinedBinary, loadBinary } from './binary'; /** A linting rule configuration dependent on upstream Harper's available rules. * This is a record, since you shouldn't hard-code the existence of any particular rules and should generalize based on this struct. */ diff --git a/packages/harper.js/vite.config.js b/packages/harper.js/vite.config.js index f23b88f499..9bf5ab8882 100644 --- a/packages/harper.js/vite.config.js +++ b/packages/harper.js/vite.config.js @@ -1,13 +1,7 @@ +/// import { resolve } from 'path'; import dts from 'vite-plugin-dts'; import { defineConfig } from 'vite'; -import virtual from 'vite-plugin-virtual'; -import fs from 'fs'; - -function fileAsObject(path) { - let content = fs.readFileSync(path); - return JSON.parse(content); -} export default defineConfig({ build: { @@ -15,10 +9,11 @@ export default defineConfig({ entry: resolve(__dirname, 'src/main.ts'), fileName: `harper`, name: 'harper', - formats: ['es'] + formats: ['es'], }, rollupOptions: { output: { + minifyInternalExports: false, inlineDynamicImports: true } } @@ -26,20 +21,12 @@ export default defineConfig({ base: './', plugins: [ dts({ - ...fileAsObject('./api-extractor.json'), + ...require('./api-extractor.json'), rollupTypes: true, tsconfigPath: './tsconfig.json' }), - virtual({ - 'virtual:wasm': `import wasmUri from 'wasm/harper_wasm_bg.wasm?inline'; export default wasmUri` - }) ], worker: { - plugins: [ - virtual({ - 'virtual:wasm': `export default ''` - }) - ], format: 'es', rollupOptions: { output: { @@ -56,7 +43,12 @@ export default defineConfig({ browser: { provider: 'playwright', enabled: true, - headless: true + headless: true, + screenshotFailures: false, + instances: [ + { browser: 'chromium' }, + { browser: 'firefox' } + ] } }, assetsInclude: ['**/*.wasm'] diff --git a/packages/package.json b/packages/package.json index 44e84a879f..a7866461a6 100644 --- a/packages/package.json +++ b/packages/package.json @@ -14,7 +14,8 @@ "prettier": "^3.4.2", "prettier-plugin-svelte": "^3.0.3", "@typescript-eslint/eslint-plugin": "^8.18.1", - "@typescript-eslint/parser": "^8.18.1" + "@typescript-eslint/parser": "^8.18.1", + "typescript": "^5.7.3" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/packages/vscode-plugin/package.json b/packages/vscode-plugin/package.json index 019d910d74..8fd9dc0e5c 100644 --- a/packages/vscode-plugin/package.json +++ b/packages/vscode-plugin/package.json @@ -368,7 +368,7 @@ "esbuild": "^0.24.2", "eslint": "^8.57.0", "jasmine": "^5.3.0", - "typescript": "^5.4.5" + "typescript": "^5.7.3" }, "dependencies": { "vscode-languageclient": "^9.0.1" diff --git a/packages/web/package.json b/packages/web/package.json index f653a922bb..9c80c07c61 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -23,16 +23,16 @@ "svelte-check": "^4.1.1", "tailwindcss": "^3.3.3", "tslib": "^2.4.1", - "typescript": "^5.0.0", - "vite": "^6.0.9", + "typescript": "^5.7.3", + "vite": "^6.1.0", "vite-plugin-pwa": "^0.21.1", "vite-plugin-top-level-await": "^1.4.4", - "vite-plugin-wasm": "^3.3.0" + "vite-plugin-wasm": "^3.4.1" }, "type": "module", "dependencies": { "@sveltepress/theme-default": "^5.0.7", - "@sveltepress/vite": "^1.1.2", + "@sveltepress/vite": "^1.1.5", "harper.js": "link:../harper.js", "lodash-es": "^4.17.21", "reveal.js": "^5.1.0", diff --git a/packages/web/src/routes/docs/harperjs/introduction/+page.md b/packages/web/src/routes/docs/harperjs/introduction/+page.md index 86f1289d79..4c8228930c 100644 --- a/packages/web/src/routes/docs/harperjs/introduction/+page.md +++ b/packages/web/src/routes/docs/harperjs/introduction/+page.md @@ -21,3 +21,6 @@ On the inside, it uses a copy of Harper's core algorithm compiled to [WebAssembl It can be imported [natively in a browser](./CDN) or through [npm](https://www.npmjs.com/package/harper.js) and [consumed in Node.js](./node). @install-pkg(harper.js) + +Notice that the `harper.js` package is currently in early access. +This means that the API is not yet stable and we are still working out the kinks. diff --git a/packages/yarn.lock b/packages/yarn.lock index 8a682bc5b2..34c0a5c0ae 100644 --- a/packages/yarn.lock +++ b/packages/yarn.lock @@ -1145,11 +1145,6 @@ "@docsearch/css" "3.8.3" algoliasearch "^5.14.2" -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - "@esbuild/aix-ppc64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" @@ -1160,11 +1155,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461" integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA== -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - "@esbuild/android-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" @@ -1175,11 +1165,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894" integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg== -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - "@esbuild/android-arm@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" @@ -1190,11 +1175,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3" integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q== -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - "@esbuild/android-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" @@ -1205,11 +1185,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb" integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw== -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - "@esbuild/darwin-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" @@ -1220,11 +1195,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936" integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA== -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - "@esbuild/darwin-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" @@ -1235,11 +1205,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9" integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA== -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - "@esbuild/freebsd-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" @@ -1250,11 +1215,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00" integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg== -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - "@esbuild/freebsd-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" @@ -1265,11 +1225,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f" integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q== -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - "@esbuild/linux-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" @@ -1280,11 +1235,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43" integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg== -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - "@esbuild/linux-arm@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" @@ -1295,11 +1245,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736" integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA== -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - "@esbuild/linux-ia32@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" @@ -1310,11 +1255,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5" integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw== -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - "@esbuild/linux-loong64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" @@ -1325,11 +1265,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc" integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ== -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - "@esbuild/linux-mips64el@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" @@ -1340,11 +1275,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb" integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw== -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - "@esbuild/linux-ppc64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" @@ -1355,11 +1285,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412" integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw== -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - "@esbuild/linux-riscv64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" @@ -1370,11 +1295,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694" integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q== -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - "@esbuild/linux-s390x@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" @@ -1385,11 +1305,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577" integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw== -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - "@esbuild/linux-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" @@ -1405,11 +1320,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6" integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw== -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - "@esbuild/netbsd-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" @@ -1430,11 +1340,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f" integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A== -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - "@esbuild/openbsd-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" @@ -1445,11 +1350,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205" integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA== -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - "@esbuild/sunos-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" @@ -1460,11 +1360,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6" integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig== -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - "@esbuild/win32-arm64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" @@ -1475,11 +1370,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85" integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ== -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - "@esbuild/win32-ia32@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" @@ -1490,11 +1380,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2" integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA== -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - "@esbuild/win32-x64@0.23.1": version "0.23.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" @@ -1909,96 +1794,191 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.1.tgz#a09cb0718297a2f0cc7f9b4dfca4d08753ea5c9b" integrity sha512-kwctwVlswSEsr4ljpmxKrRKp1eG1v2NAhlzFzDf1x1OdYaMjBYjDCbHkzWm57ZXzTwqn8stMXgROrnMw8dJK3w== +"@rollup/rollup-android-arm-eabi@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.4.tgz#186addf2d9da1df57c69394f8eb74d40cc833686" + integrity sha512-gGi5adZWvjtJU7Axs//CWaQbQd/vGy8KGcnEaCWiyCqxWYDxwIlAHFuSe6Guoxtd0SRvSfVTDMPd5H+4KE2kKA== + "@rollup/rollup-android-arm64@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.1.tgz#cbb3cad15748794b8dfec7f1e427e633f8f06d61" integrity sha512-4H5ZtZitBPlbPsTv6HBB8zh1g5d0T8TzCmpndQdqq20Ugle/nroOyDMf9p7f88Gsu8vBLU78/cuh8FYHZqdXxw== +"@rollup/rollup-android-arm64@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.4.tgz#88d8b13c7a42231f22ac26d0abb1ad4dd8d88535" + integrity sha512-1aRlh1gqtF7vNPMnlf1vJKk72Yshw5zknR/ZAVh7zycRAGF2XBMVDAHmFQz/Zws5k++nux3LOq/Ejj1WrDR6xg== + "@rollup/rollup-darwin-arm64@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.1.tgz#7f5127bca8892d0287a53fb17be9c7af32748234" integrity sha512-f2AJ7Qwx9z25hikXvg+asco8Sfuc5NCLg8rmqQBIOUoWys5sb/ZX9RkMZDPdnnDevXAMJA5AWLnRBmgdXGEUiA== +"@rollup/rollup-darwin-arm64@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.4.tgz#a8a1fbc658f86d2d2283d6b1b5b8f0c2fd117dbc" + integrity sha512-drHl+4qhFj+PV/jrQ78p9ch6A0MfNVZScl/nBps5a7u01aGf/GuBRrHnRegA9bP222CBDfjYbFdjkIJ/FurvSQ== + "@rollup/rollup-darwin-x64@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.1.tgz#bbf8aa9fe655d75b5fb858b5bdbb1c790c36a3cd" integrity sha512-+/2JBrRfISCsWE4aEFXxd+7k9nWGXA8+wh7ZUHn/u8UDXOU9LN+QYKKhd57sIn6WRcorOnlqPMYFIwie/OHXWw== +"@rollup/rollup-darwin-x64@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.4.tgz#116e2186564f5c26db819cea20248e310761d7ec" + integrity sha512-hQqq/8QALU6t1+fbNmm6dwYsa0PDD4L5r3TpHx9dNl+aSEMnIksHZkSO3AVH+hBMvZhpumIGrTFj8XCOGuIXjw== + "@rollup/rollup-freebsd-arm64@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.1.tgz#43f75cb686a23fc0aef3ce6bfe44501bf934e412" integrity sha512-SUeB0pYjIXwT2vfAMQ7E4ERPq9VGRrPR7Z+S4AMssah5EHIilYqjWQoTn5dkDtuIJUSTs8H+C9dwoEcg3b0sCA== +"@rollup/rollup-freebsd-arm64@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.4.tgz#38d0db29f2fafa64fc6d082fd952617684742bf7" + integrity sha512-/L0LixBmbefkec1JTeAQJP0ETzGjFtNml2gpQXA8rpLo7Md+iXQzo9kwEgzyat5Q+OG/C//2B9Fx52UxsOXbzw== + "@rollup/rollup-freebsd-x64@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.1.tgz#1d0377ef7a06bb3a6543bbbf18b6d65b55074802" integrity sha512-L3T66wAZiB/ooiPbxz0s6JEX6Sr2+HfgPSK+LMuZkaGZFAFCQAHiP3dbyqovYdNaiUXcl9TlgnIbcsIicAnOZg== +"@rollup/rollup-freebsd-x64@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.4.tgz#4ec412756d87ea1cd6adae36b52796bffbc9625d" + integrity sha512-6Rk3PLRK+b8L/M6m/x6Mfj60LhAUcLJ34oPaxufA+CfqkUrDoUPQYFdRrhqyOvtOKXLJZJwxlOLbQjNYQcRQfw== + "@rollup/rollup-linux-arm-gnueabihf@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.1.tgz#1ca88b1244678e74984efe89b1e39b9ae74671c7" integrity sha512-UBXdQ4+ATARuFgsFrQ+tAsKvBi/Hly99aSVdeCUiHV9dRTTpMU7OrM3WXGys1l40wKVNiOl0QYY6cZQJ2xhKlQ== +"@rollup/rollup-linux-arm-gnueabihf@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.4.tgz#48abd91a8829048221cded46d88edc0fa20797a3" + integrity sha512-kmT3x0IPRuXY/tNoABp2nDvI9EvdiS2JZsd4I9yOcLCCViKsP0gB38mVHOhluzx+SSVnM1KNn9k6osyXZhLoCA== + "@rollup/rollup-linux-arm-musleabihf@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.1.tgz#33cdcac1befc32d7217b94b78c56fa5c194660cc" integrity sha512-m/yfZ25HGdcCSwmopEJm00GP7xAUyVcBPjttGLRAqZ60X/bB4Qn6gP7XTwCIU6bITeKmIhhwZ4AMh2XLro+4+w== +"@rollup/rollup-linux-arm-musleabihf@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.4.tgz#be3ea31aa56c0d0329572ca898bdb8ad6c82b522" + integrity sha512-3iSA9tx+4PZcJH/Wnwsvx/BY4qHpit/u2YoZoXugWVfc36/4mRkgGEoRbRV7nzNBSCOgbWMeuQ27IQWgJ7tRzw== + "@rollup/rollup-linux-arm64-gnu@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.1.tgz#4de1e8ade39d0da1e981ab05f94a69f3de72725a" integrity sha512-Wy+cUmFuvziNL9qWRRzboNprqSQ/n38orbjRvd6byYWridp5TJ3CD+0+HUsbcWVSNz9bxkDUkyASGP0zS7GAvg== +"@rollup/rollup-linux-arm64-gnu@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.4.tgz#0ad274a83f8366b3c434b4ee4c109e3e89942f72" + integrity sha512-7CwSJW+sEhM9sESEk+pEREF2JL0BmyCro8UyTq0Kyh0nu1v0QPNY3yfLPFKChzVoUmaKj8zbdgBxUhBRR+xGxg== + "@rollup/rollup-linux-arm64-musl@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.1.tgz#314f56ea347323d94107b8eb0dc6cb60ba4e0a35" integrity sha512-CQ3MAGgiFmQW5XJX5W3wnxOBxKwFlUAgSXFA2SwgVRjrIiVt5LHfcQLeNSHKq5OEZwv+VCBwlD1+YKCjDG8cpg== +"@rollup/rollup-linux-arm64-musl@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.4.tgz#05da429ff2975c2ba6b766354bd6588371eddf2a" + integrity sha512-GZdafB41/4s12j8Ss2izofjeFXRAAM7sHCb+S4JsI9vaONX/zQ8cXd87B9MRU/igGAJkKvmFmJJBeeT9jJ5Cbw== + "@rollup/rollup-linux-loongarch64-gnu@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.1.tgz#64f7871f5718a086786485b9c4d22fd263a37b44" integrity sha512-rSzb1TsY4lSwH811cYC3OC2O2mzNMhM13vcnA7/0T6Mtreqr3/qs6WMDriMRs8yvHDI54qxHgOk8EV5YRAHFbw== +"@rollup/rollup-linux-loongarch64-gnu@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.4.tgz#eb2af43af6456235e1dc097e0a06d058e87603cb" + integrity sha512-uuphLuw1X6ur11675c2twC6YxbzyLSpWggvdawTUamlsoUv81aAXRMPBC1uvQllnBGls0Qt5Siw8reSIBnbdqQ== + "@rollup/rollup-linux-powerpc64le-gnu@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.1.tgz#ad5902358a0d91bda75b3cbd45d61d1f6698b6f5" integrity sha512-fwr0n6NS0pG3QxxlqVYpfiY64Fd1Dqd8Cecje4ILAV01ROMp4aEdCj5ssHjRY3UwU7RJmeWd5fi89DBqMaTawg== +"@rollup/rollup-linux-powerpc64le-gnu@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.4.tgz#f52928672c40c8a8a30f46edf8eeb72d2b5560ab" + integrity sha512-KvLEw1os2gSmD6k6QPCQMm2T9P2GYvsMZMRpMz78QpSoEevHbV/KOUbI/46/JRalhtSAYZBYLAnT9YE4i/l4vg== + "@rollup/rollup-linux-riscv64-gnu@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.1.tgz#1d917841458ccc34dcc34be32ea0a4b33437370f" integrity sha512-4uJb9qz7+Z/yUp5RPxDGGGUcoh0PnKF33QyWgEZ3X/GocpWb6Mb+skDh59FEt5d8+Skxqs9mng6Swa6B2AmQZg== +"@rollup/rollup-linux-riscv64-gnu@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.4.tgz#ec9fce2a5d221517a4aad8e657ee2951d4709e8d" + integrity sha512-wcpCLHGM9yv+3Dql/CI4zrY2mpQ4WFergD3c9cpRowltEh5I84pRT/EuHZsG0In4eBPPYthXnuR++HrFkeqwkA== + "@rollup/rollup-linux-s390x-gnu@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.1.tgz#0c224baa3e1823f2b7b0e45dfaf43a99a18e8248" integrity sha512-QlIo8ndocWBEnfmkYqj8vVtIUpIqJjfqKggjy7IdUncnt8BGixte1wDON7NJEvLg3Kzvqxtbo8tk+U1acYEBlw== +"@rollup/rollup-linux-s390x-gnu@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.4.tgz#a6d303c937fb1a49b7aa44ab32be6d61bb571f59" + integrity sha512-nLbfQp2lbJYU8obhRQusXKbuiqm4jSJteLwfjnunDT5ugBKdxqw1X9KWwk8xp1OMC6P5d0WbzxzhWoznuVK6XA== + "@rollup/rollup-linux-x64-gnu@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.1.tgz#f5fba18eda523cbe04f82cbf3e0685e461e71613" integrity sha512-hzpleiKtq14GWjz3ahWvJXgU1DQC9DteiwcsY4HgqUJUGxZThlL66MotdUEK9zEo0PK/2ADeZGM9LIondE302A== +"@rollup/rollup-linux-x64-gnu@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.4.tgz#5d58ee6c68e160754a9b5950156308b8a5eaa18f" + integrity sha512-JGejzEfVzqc/XNiCKZj14eb6s5w8DdWlnQ5tWUbs99kkdvfq9btxxVX97AaxiUX7xJTKFA0LwoS0KU8C2faZRg== + "@rollup/rollup-linux-x64-musl@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.1.tgz#7439d15ffe62ac0468ef2d539d4c39b4686e1276" integrity sha512-jqtKrO715hDlvUcEsPn55tZt2TEiBvBtCMkUuU0R6fO/WPT7lO9AONjPbd8II7/asSiNVQHCMn4OLGigSuxVQA== +"@rollup/rollup-linux-x64-musl@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.4.tgz#ba3d117d0c36502b448936dba001579df9dc549a" + integrity sha512-/iFIbhzeyZZy49ozAWJ1ZR2KW6ZdYUbQXLT4O5n1cRZRoTpwExnHLjlurDXXPKEGxiAg0ujaR9JDYKljpr2fDg== + "@rollup/rollup-win32-arm64-msvc@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.1.tgz#125f09f40719ea7a02a76607428a0366ff9dca4d" integrity sha512-RnHy7yFf2Wz8Jj1+h8klB93N0NHNHXFhNwAmiy9zJdpY7DE01VbEVtPdrK1kkILeIbHGRJjvfBDBhnxBr8kD4g== +"@rollup/rollup-win32-arm64-msvc@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.4.tgz#33423f0b5e763aa79d9ef14aed9e22c3217a5051" + integrity sha512-qORc3UzoD5UUTneiP2Afg5n5Ti1GAW9Gp5vHPxzvAFFA3FBaum9WqGvYXGf+c7beFdOKNos31/41PRMUwh1tpA== + "@rollup/rollup-win32-ia32-msvc@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.1.tgz#04e36410a55fa36278a627ed769a60576c882d1d" integrity sha512-i7aT5HdiZIcd7quhzvwQ2oAuX7zPYrYfkrd1QFfs28Po/i0q6kas/oRrzGlDhAEyug+1UfUtkWdmoVlLJj5x9Q== +"@rollup/rollup-win32-ia32-msvc@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.4.tgz#6b31c29ae32721f422d03bfaf7a865a464d9c85b" + integrity sha512-5g7E2PHNK2uvoD5bASBD9aelm44nf1w4I5FEI7MPHLWcCSrR8JragXZWgKPXk5i2FU3JFfa6CGZLw2RrGBHs2Q== + "@rollup/rollup-win32-x64-msvc@4.34.1": version "4.34.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.1.tgz#37cddc33f8cd961a615f5f854d2b1994c90fe547" integrity sha512-k3MVFD9Oq+laHkw2N2v7ILgoa9017ZMF/inTtHzyTVZjYs9cSH18sdyAf6spBAJIGwJ5UaC7et2ZH1WCdlhkMw== +"@rollup/rollup-win32-x64-msvc@4.34.4": + version "4.34.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.4.tgz#21f0d5e44e4ac7d9b6510bef283faace629c6f7e" + integrity sha512-p0scwGkR4kZ242xLPBuhSckrJ734frz6v9xZzD+kHVYRAkSUmdSLCIJRfql6H5//aF8Q10K+i7q8DiPfZp0b7A== + "@rushstack/node-core-library@5.11.0": version "5.11.0" resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-5.11.0.tgz#8ceb980f3a591e1254167bb5ffdc200d1893b783" @@ -2222,10 +2202,10 @@ twoslash "^0.2.12" twoslash-protocol "^0.2.12" -"@sveltepress/vite@^1.1.2": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@sveltepress/vite/-/vite-1.1.4.tgz#92c021595c5a0b11ef364c0512ee0ecd81fbb0e6" - integrity sha512-NjKls1piIdFrBf/alMfnW8I/z24zq3bBNJIfJ8tQzgJWzth9rAMz1d9rGXONs97ibZbE4QAbZ1wZTkG8nnYhxw== +"@sveltepress/vite@^1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@sveltepress/vite/-/vite-1.1.5.tgz#76cb81e3031feffdb9664e61c606542a1732bfee" + integrity sha512-YVZ8XG377l1MW7dIVdt0D9PUpjP1a4hQyAO6U0JwuOrlQavTFAPdpn7MfvZJV/Q9N1cEWO1S2eX2HC4G0f0nxQ== dependencies: "@sveltejs/vite-plugin-svelte" "^4.0.1" cross-spawn "^7.0.3" @@ -2343,7 +2323,7 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/user-event@^14.5.2": +"@testing-library/user-event@^14.6.1": version "14.6.1" resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.6.1.tgz#13e09a32d7a8b7060fe38304788ebf4197cd2149" integrity sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw== @@ -2864,79 +2844,79 @@ kolorist "^1.8.0" tinyglobby "^0.2.9" -"@vitest/browser@^2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/browser/-/browser-2.1.9.tgz#88d639706160cf80bf7c2df43d6c0ca3b7c0539b" - integrity sha512-AHDanTP4Ed6J5R6wRBcWRQ+AxgMnNJxsbaa229nFQz5KOMFZqlW11QkIDoLgCjBOpQ1+c78lTN5jVxO8ME+S4w== +"@vitest/browser@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/browser/-/browser-3.0.5.tgz#d0497e44592fdd94bb477ab7adcf00989c9225ba" + integrity sha512-5WAWJoucuWcGYU5t0HPBY03k9uogbUEIu4pDmZHoB4Dt+6pXqzDbzEmxGjejZSitSYA3k/udYfuotKNxETVA3A== dependencies: "@testing-library/dom" "^10.4.0" - "@testing-library/user-event" "^14.5.2" - "@vitest/mocker" "2.1.9" - "@vitest/utils" "2.1.9" - magic-string "^0.30.12" - msw "^2.6.4" + "@testing-library/user-event" "^14.6.1" + "@vitest/mocker" "3.0.5" + "@vitest/utils" "3.0.5" + magic-string "^0.30.17" + msw "^2.7.0" sirv "^3.0.0" - tinyrainbow "^1.2.0" + tinyrainbow "^2.0.0" ws "^8.18.0" -"@vitest/expect@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.9.tgz#b566ea20d58ea6578d8dc37040d6c1a47ebe5ff8" - integrity sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw== +"@vitest/expect@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.0.5.tgz#aa0acd0976cf56842806e5dcaebd446543966b14" + integrity sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA== dependencies: - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" + "@vitest/spy" "3.0.5" + "@vitest/utils" "3.0.5" chai "^5.1.2" - tinyrainbow "^1.2.0" + tinyrainbow "^2.0.0" -"@vitest/mocker@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.9.tgz#36243b27351ca8f4d0bbc4ef91594ffd2dc25ef5" - integrity sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg== +"@vitest/mocker@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.0.5.tgz#8dce3dc4cb0adfd9d554531cea836244f8c36bcd" + integrity sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw== dependencies: - "@vitest/spy" "2.1.9" + "@vitest/spy" "3.0.5" estree-walker "^3.0.3" - magic-string "^0.30.12" + magic-string "^0.30.17" -"@vitest/pretty-format@2.1.9", "@vitest/pretty-format@^2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.9.tgz#434ff2f7611689f9ce70cd7d567eceb883653fdf" - integrity sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ== +"@vitest/pretty-format@3.0.5", "@vitest/pretty-format@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.0.5.tgz#10ae6a83ccc1a866e31b2d0c1a7a977ade02eff9" + integrity sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA== dependencies: - tinyrainbow "^1.2.0" + tinyrainbow "^2.0.0" -"@vitest/runner@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.9.tgz#cc18148d2d797fd1fd5908d1f1851d01459be2f6" - integrity sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g== +"@vitest/runner@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.0.5.tgz#c5960a1169465a2b9ac21f1d24a4cf1fe67c7501" + integrity sha512-BAiZFityFexZQi2yN4OX3OkJC6scwRo8EhRB0Z5HIGGgd2q+Nq29LgHU/+ovCtd0fOfXj5ZI6pwdlUmC5bpi8A== dependencies: - "@vitest/utils" "2.1.9" - pathe "^1.1.2" + "@vitest/utils" "3.0.5" + pathe "^2.0.2" -"@vitest/snapshot@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.9.tgz#24260b93f798afb102e2dcbd7e61c6dfa118df91" - integrity sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ== +"@vitest/snapshot@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.0.5.tgz#afd0ae472dc5893b0bb10e3e673ef649958663f4" + integrity sha512-GJPZYcd7v8QNUJ7vRvLDmRwl+a1fGg4T/54lZXe+UOGy47F9yUfE18hRCtXL5aHN/AONu29NGzIXSVFh9K0feA== dependencies: - "@vitest/pretty-format" "2.1.9" - magic-string "^0.30.12" - pathe "^1.1.2" + "@vitest/pretty-format" "3.0.5" + magic-string "^0.30.17" + pathe "^2.0.2" -"@vitest/spy@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.9.tgz#cb28538c5039d09818b8bfa8edb4043c94727c60" - integrity sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ== +"@vitest/spy@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.0.5.tgz#7bb5d84ec21cc0d62170fda4e31cd0b46c1aeb8b" + integrity sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg== dependencies: tinyspy "^3.0.2" -"@vitest/utils@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.9.tgz#4f2486de8a54acf7ecbf2c5c24ad7994a680a6c1" - integrity sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ== +"@vitest/utils@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.0.5.tgz#dc3eaefd3534598917e939af59d9a9b6a5be5082" + integrity sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg== dependencies: - "@vitest/pretty-format" "2.1.9" + "@vitest/pretty-format" "3.0.5" loupe "^3.1.2" - tinyrainbow "^1.2.0" + tinyrainbow "^2.0.0" "@volar/language-core@2.4.11", "@volar/language-core@~2.4.11": version "2.4.11" @@ -4274,7 +4254,7 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-module-lexer@^1.5.4: +es-module-lexer@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== @@ -4335,35 +4315,6 @@ es-to-primitive@^1.3.0: "@esbuild/win32-ia32" "0.23.1" "@esbuild/win32-x64" "0.23.1" -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - esbuild@^0.24.2: version "0.24.2" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d" @@ -6594,7 +6545,7 @@ ms@^2.1.1, ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msw@^2.6.4: +msw@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/msw/-/msw-2.7.0.tgz#d13ff87f7e018fc4c359800ff72ba5017033fb56" integrity sha512-BIodwZ19RWfCbYTxWTUfTXc+sg4OwjCAgxU1ZsgmggX/7S3LdUifsbUPJs61j0rWb19CZRGY5if77duhc0uXzw== @@ -6988,7 +6939,7 @@ pathe@^1.1.2: resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== -pathe@^2.0.1: +pathe@^2.0.1, pathe@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.2.tgz#5ed86644376915b3c7ee4d00ac8c348d671da3a5" integrity sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w== @@ -7123,7 +7074,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.31, postcss@^8.4.38, postcss@^8.4.39, postcss@^8.4.40, postcss@^8.4.43, postcss@^8.4.47, postcss@^8.4.49, postcss@^8.5.1: +postcss@^8.4.31, postcss@^8.4.38, postcss@^8.4.39, postcss@^8.4.40, postcss@^8.4.47, postcss@^8.5.1: version "8.5.1" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== @@ -7577,7 +7528,7 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -rollup@^4.20.0, rollup@^4.22.4, rollup@^4.23.0, rollup@^4.9.5: +rollup@^4.22.4, rollup@^4.9.5: version "4.34.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.1.tgz#dcc318abee12e23dae4003af733c1987d7baca8e" integrity sha512-iYZ/+PcdLYSGfH3S+dGahlW/RWmsqDhLgj1BT9DH/xXJ0ggZN7xkdP9wipPNjjNLczI+fmMLmTB9pye+d2r4GQ== @@ -7605,6 +7556,34 @@ rollup@^4.20.0, rollup@^4.22.4, rollup@^4.23.0, rollup@^4.9.5: "@rollup/rollup-win32-x64-msvc" "4.34.1" fsevents "~2.3.2" +rollup@^4.30.1: + version "4.34.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.4.tgz#b87a08a0c158e2f9d12bcd876221ef717ffa6bc2" + integrity sha512-spF66xoyD7rz3o08sHP7wogp1gZ6itSq22SGa/IZTcUDXDlOyrShwMwkVSB+BUxFRZZCUYqdb3KWDEOMVQZxuw== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.34.4" + "@rollup/rollup-android-arm64" "4.34.4" + "@rollup/rollup-darwin-arm64" "4.34.4" + "@rollup/rollup-darwin-x64" "4.34.4" + "@rollup/rollup-freebsd-arm64" "4.34.4" + "@rollup/rollup-freebsd-x64" "4.34.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.34.4" + "@rollup/rollup-linux-arm-musleabihf" "4.34.4" + "@rollup/rollup-linux-arm64-gnu" "4.34.4" + "@rollup/rollup-linux-arm64-musl" "4.34.4" + "@rollup/rollup-linux-loongarch64-gnu" "4.34.4" + "@rollup/rollup-linux-powerpc64le-gnu" "4.34.4" + "@rollup/rollup-linux-riscv64-gnu" "4.34.4" + "@rollup/rollup-linux-s390x-gnu" "4.34.4" + "@rollup/rollup-linux-x64-gnu" "4.34.4" + "@rollup/rollup-linux-x64-musl" "4.34.4" + "@rollup/rollup-win32-arm64-msvc" "4.34.4" + "@rollup/rollup-win32-ia32-msvc" "4.34.4" + "@rollup/rollup-win32-x64-msvc" "4.34.4" + fsevents "~2.3.2" + run-applescript@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" @@ -8363,7 +8342,7 @@ tinybench@^2.9.0: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== -tinyexec@^0.3.0, tinyexec@^0.3.1: +tinyexec@^0.3.0, tinyexec@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== @@ -8376,15 +8355,15 @@ tinyglobby@^0.2.10, tinyglobby@^0.2.9: fdir "^6.4.2" picomatch "^4.0.2" -tinypool@^1.0.1: +tinypool@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.2.tgz#706193cc532f4c100f66aa00b01c42173d9051b2" integrity sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA== -tinyrainbow@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5" - integrity sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ== +tinyrainbow@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" + integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== tinyspy@^3.0.2: version "3.0.2" @@ -8576,16 +8555,11 @@ typescript@5.7.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.2.tgz#3169cf8c4c8a828cde53ba9ecb3d2b1d5dd67be6" integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg== -typescript@^5.0.0, typescript@^5.4.5: +typescript@^5.7.3: version "5.7.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e" integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== -typescript@~5.6.2: - version "5.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" @@ -8823,16 +8797,16 @@ vfile@^6.0.0, vfile@^6.0.1: "@types/unist" "^3.0.0" vfile-message "^4.0.0" -vite-node@2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.9.tgz#549710f76a643f1c39ef34bdb5493a944e4f895f" - integrity sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA== +vite-node@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.0.5.tgz#6a0d06f7a4bdaae6ddcdedc12d910d886cf7d62f" + integrity sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A== dependencies: cac "^6.7.14" - debug "^4.3.7" - es-module-lexer "^1.5.4" - pathe "^1.1.2" - vite "^5.0.0" + debug "^4.4.0" + es-module-lexer "^1.6.0" + pathe "^2.0.2" + vite "^5.0.0 || ^6.0.0" vite-plugin-dts@^4.5.0: version "4.5.0" @@ -8889,30 +8863,19 @@ vite-plugin-virtual@^0.3.0: resolved "https://registry.yarnpkg.com/vite-plugin-virtual/-/vite-plugin-virtual-0.3.0.tgz#5831af99864db65b9c46b970a919ec9fc17b374d" integrity sha512-TOtrWw6jKrJNXfxhGRUiQzfAP1gRkYkVzMkJNjHUJ8idLuxf8eeeDKZKZHhdeYfaCc/87rv+KvWE2iCy1QInWA== -vite-plugin-wasm@^3.3.0: +vite-plugin-wasm@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/vite-plugin-wasm/-/vite-plugin-wasm-3.4.1.tgz#62b546ac7e25cc2a0e7b1331ed5c4ba1dd71b743" integrity sha512-ja3nSo2UCkVeitltJGkS3pfQHAanHv/DqGatdI39ja6McgABlpsZ5hVgl6wuR8Qx5etY3T5qgDQhOWzc5RReZA== -vite@^5.0.0, vite@^5.4.12: - version "5.4.14" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.14.tgz#ff8255edb02134df180dcfca1916c37a6abe8408" - integrity sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" - -vite@^6.0.9: - version "6.0.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.11.tgz#224497e93e940b34c3357c9ebf2ec20803091ed8" - integrity sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg== +"vite@^5.0.0 || ^6.0.0", vite@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.1.0.tgz#00a4e99a23751af98a2e4701c65ba89ce23858a6" + integrity sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ== dependencies: esbuild "^0.24.2" - postcss "^8.4.49" - rollup "^4.23.0" + postcss "^8.5.1" + rollup "^4.30.1" optionalDependencies: fsevents "~2.3.3" @@ -8921,30 +8884,30 @@ vitefu@^1.0.3, vitefu@^1.0.4: resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-1.0.5.tgz#eab501e07da167bbb68e957685823e6b425e7ce2" integrity sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA== -vitest@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.9.tgz#7d01ffd07a553a51c87170b5e80fea3da7fb41e7" - integrity sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q== - dependencies: - "@vitest/expect" "2.1.9" - "@vitest/mocker" "2.1.9" - "@vitest/pretty-format" "^2.1.9" - "@vitest/runner" "2.1.9" - "@vitest/snapshot" "2.1.9" - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" +vitest@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.0.5.tgz#a9a3fa1203d85869c9ba66f3ea990b72d00ddeb0" + integrity sha512-4dof+HvqONw9bvsYxtkfUp2uHsTN9bV2CZIi1pWgoFpL1Lld8LA1ka9q/ONSsoScAKG7NVGf2stJTI7XRkXb2Q== + dependencies: + "@vitest/expect" "3.0.5" + "@vitest/mocker" "3.0.5" + "@vitest/pretty-format" "^3.0.5" + "@vitest/runner" "3.0.5" + "@vitest/snapshot" "3.0.5" + "@vitest/spy" "3.0.5" + "@vitest/utils" "3.0.5" chai "^5.1.2" - debug "^4.3.7" + debug "^4.4.0" expect-type "^1.1.0" - magic-string "^0.30.12" - pathe "^1.1.2" + magic-string "^0.30.17" + pathe "^2.0.2" std-env "^3.8.0" tinybench "^2.9.0" - tinyexec "^0.3.1" - tinypool "^1.0.1" - tinyrainbow "^1.2.0" - vite "^5.0.0" - vite-node "2.1.9" + tinyexec "^0.3.2" + tinypool "^1.0.2" + tinyrainbow "^2.0.0" + vite "^5.0.0 || ^6.0.0" + vite-node "3.0.5" why-is-node-running "^2.3.0" vscode-jsonrpc@8.2.0: @@ -8981,6 +8944,7 @@ vscode-uri@^3.0.8: "wasm@link:../harper-wasm/pkg": version "0.0.0" + uid "" webidl-conversions@^4.0.2: version "4.0.2" From e866b4a9714c685cb3f1d7e4c59e6b795e336ff3 Mon Sep 17 00:00:00 2001 From: Asuka109 Date: Fri, 7 Feb 2025 00:03:11 +0800 Subject: [PATCH 02/20] feat: modify all the use cases --- packages/harper.js/api-extractor.json | 2 +- packages/harper.js/examples/raw-web/index.html | 1 + packages/harper.js/package.json | 8 ++++---- packages/harper.js/src/Linter.ts | 2 +- packages/harper.js/src/LocalLinter.ts | 4 ++-- .../src/WorkerLinter/communication.test.ts | 2 +- packages/harper.js/src/WorkerLinter/index.ts | 2 +- packages/harper.js/src/binary.ts | 15 ++++++++------- packages/harper.js/src/main.ts | 2 +- packages/harper.js/tsconfig.json | 2 +- packages/harper.js/vite.config.js | 2 +- packages/obsidian-plugin/src/index.ts | 8 ++++---- packages/package.json | 4 ++-- packages/vscode-plugin/package.json | 2 +- packages/web/package.json | 2 +- packages/web/src/lib/DefaultNeovimConfig.svelte | 4 ++-- packages/web/src/lib/Editor.svelte | 4 ++-- packages/web/src/lib/Underlines.svelte | 4 ++-- packages/web/src/routes/docs/rules/+page.svelte | 4 ++-- .../web/src/routes/languagedetection/+page.svelte | 4 ++-- packages/yarn.lock | 14 +++++++------- 21 files changed, 47 insertions(+), 45 deletions(-) diff --git a/packages/harper.js/api-extractor.json b/packages/harper.js/api-extractor.json index 9f9fbc4445..5663c502ea 100644 --- a/packages/harper.js/api-extractor.json +++ b/packages/harper.js/api-extractor.json @@ -9,7 +9,7 @@ "dtsRollup": { "enabled": false }, - "bundledPackages": ["wasm"], + "bundledPackages": ["harper-wasm"], "messages": { "extractorMessageReporting": { "ae-missing-release-tag": { diff --git a/packages/harper.js/examples/raw-web/index.html b/packages/harper.js/examples/raw-web/index.html index f73e21f0bc..87489a712f 100644 --- a/packages/harper.js/examples/raw-web/index.html +++ b/packages/harper.js/examples/raw-web/index.html @@ -4,6 +4,7 @@