diff --git a/.changeset/honest-jobs-compare.md b/.changeset/honest-jobs-compare.md new file mode 100644 index 0000000..72bdc04 --- /dev/null +++ b/.changeset/honest-jobs-compare.md @@ -0,0 +1,10 @@ +--- +"@diacritic/core": patch +"@diacritic/detector": patch +"@diacritic/parser": patch +"@diacritic/react": patch +"@diacritic/runtime": patch +"@diacritic/utilities": patch +--- + +Remove metro and add standalone mode diff --git a/packages/core/package.json b/packages/core/package.json index afd3574..9585f97 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -45,16 +45,6 @@ "default": "./dist/farm.cjs" } }, - "./metro": { - "import": { - "types": "./dist/metro.d.ts", - "default": "./dist/metro.js" - }, - "require": { - "types": "./dist/metro.d.cts", - "default": "./dist/metro.cjs" - } - }, "./rollup": { "import": { "types": "./dist/rollup.d.ts", @@ -75,6 +65,16 @@ "default": "./dist/rspack.cjs" } }, + "./standalone": { + "import": { + "types": "./dist/standalone.d.ts", + "default": "./dist/standalone.js" + }, + "require": { + "types": "./dist/standalone.d.cts", + "default": "./dist/standalone.cjs" + } + }, "./vite": { "import": { "types": "./dist/vite.d.ts", @@ -107,28 +107,22 @@ "lint": "eslint src" }, "peerDependencies": { - "metro-transform-worker": "^0.80.0", "vite": "^5.0.0" }, "peerDependenciesMeta": { - "metro-transform-worker": { - "optional": true - }, "vite": { "optional": true } }, "dependencies": { "@diacritic/utilities": "workspace:*", + "@parcel/watcher": "^2.4.1", "dset": "^3.1.3", "glob": "^10.3.15", "tiny-invariant": "^1.3.3", "unplugin": "^1.10.1" }, "devDependencies": { - "@chialab/esbuild-plugin-meta-url": "^0.18.2", - "metro-config": "^0.80.9", - "metro-transform-worker": "^0.80.9", "vite": "^5.2.11" } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index b59cf43..b19bae4 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -15,40 +15,35 @@ import { resourceWithoutPrefix, } from "./utilities/loader"; import { ResourceGraph } from "./utilities/resource"; +import { watchResources } from "./utilities/watcher"; export const diacritic = createUnplugin(({ defaultLanguage, generation, languages, parser, - reactNative, resources, }, meta) => { const resourceGraph = new ResourceGraph(languages, resources); const processedIDs = new Set(); - let ran = false; + let unsubscribe!: () => Promise; return { name: "diacritic", enforce: "pre", - buildStart() { + async buildStart() { if (meta.framework !== "esbuild") for (const file of resourceGraph.allFiles()) this.addWatchFile(file); - if (meta.framework !== "esbuild" || !ran) { - generateTypes({ defaultLanguage, generation, languages, parser, resourceGraph }); - - ran = true; - } + unsubscribe = await watchResources({ + resourceGraph, + resources, + onChange: async () => generateTypes({ defaultLanguage, generation, languages, parser, resourceGraph }), + }); }, - watchChange: (id, change) => { - if (!isResource(id, resources)) return; - - if (change.event === "create") resourceGraph.addFile(id, resources); - if (change.event === "delete") resourceGraph.removeFile(id, resources); - - generateTypes({ defaultLanguage, generation, languages, parser, resourceGraph }); + async buildEnd() { + await unsubscribe(); }, resolveId: (id) => { if (isTranslationPath(id)) return normalizeTranslationPath(id) + ".ts"; @@ -70,7 +65,7 @@ export const diacritic = createUnplugin(({ // import { defaultLanguage, languages } from "virtual:translations/registry"; // ``` if (extract.mode === "registry") - return { code: createRegistry(defaultLanguage, languages, resourceGraph.allNamespaces(), reactNative) }; + return { code: createRegistry(defaultLanguage, languages, resourceGraph.allNamespaces()) }; // In the language only mode, we want to export all namespaces from that language. // Example: diff --git a/packages/core/src/metro.ts b/packages/core/src/metro.ts deleted file mode 100644 index 3eee3b6..0000000 --- a/packages/core/src/metro.ts +++ /dev/null @@ -1,66 +0,0 @@ -import type { MetroDiacriticOptions } from "./utilities/metro/transformer"; -import type { IntermediateConfigT, TransformerConfigT } from "metro-config"; - -import { existsSync, mkdirSync, writeFileSync } from "node:fs"; -import { tmpdir } from "node:os"; -import { dirname, resolve } from "node:path"; - -import { generateTypes } from "./utilities/generator"; -import { isTranslationPath, normalizeTranslationPath } from "./utilities/loader"; -import { ResourceGraph } from "./utilities/resource"; - -export type ComposableTransformerConfigT = TransformerConfigT & { - transformerPath?: string; - diacriticOptions?: MetroDiacriticOptions; -} & Record; - -export type ComposableIntermediateConfigT = IntermediateConfigT & { - transformer: ComposableTransformerConfigT; -}; - -export function withDiacritic( - configuration: ComposableIntermediateConfigT, - options: Omit, -): ComposableIntermediateConfigT { - const tmp = resolve(tmpdir(), "metro-virtual-modules-diacritic"); - const resourceGraph = new ResourceGraph(options.languages, options.resources); - - generateTypes({ - defaultLanguage: options.defaultLanguage, - generation: options.generation, - languages: options.languages, - // eslint-disable-next-line ts/no-var-requires, ts/no-require-imports - parser: require(options.parserPath).default(), - resourceGraph, - }); - - const nextResolveRequest = configuration.resolver?.resolveRequest; - const resolveRequest: IntermediateConfigT["resolver"]["resolveRequest"] = (context, moduleName, platform) => { - if (isTranslationPath(moduleName)) { - const normalized = normalizeTranslationPath(moduleName) + ".ts"; - const modulePath = resolve(tmp, "." + normalized); - - const folder = dirname(modulePath); - if (!existsSync(folder)) mkdirSync(folder, { recursive: true }); - if (!existsSync(modulePath)) writeFileSync(modulePath, "{}"); - - return { filePath: modulePath, type: "sourceFile" }; - } - - return (nextResolveRequest ?? context.resolveRequest)(context, moduleName, platform); - }; - - return { - ...configuration, - resolver: { - ...configuration.resolver, - resolveRequest, - }, - transformerPath: new URL("./utilities/metro/transformer.ts", import.meta.url).pathname, - transformer: { - ...configuration.transformer, - diacriticOptions: { reactNative: true, ...options, resourceGraph: resourceGraph.allEntries() }, - transformerPath: configuration.transformerPath, - }, - }; -} diff --git a/packages/core/src/standalone.ts b/packages/core/src/standalone.ts new file mode 100644 index 0000000..11f6e3c --- /dev/null +++ b/packages/core/src/standalone.ts @@ -0,0 +1,65 @@ +import type { DiacriticGenerationOptions, DiacriticOptions } from "./utilities/types"; + +import { existsSync, readFileSync } from "node:fs"; +import { EOL } from "node:os"; +import { dirname, resolve } from "node:path"; + +import { createFunctionFromEntry, createRegistry, generateTypes } from "./utilities/generator"; +import { createFolderAndFile } from "./utilities/loader"; +import { ResourceGraph } from "./utilities/resource"; +import { watchResources } from "./utilities/watcher"; + +type StartDiacriticOptions = DiacriticOptions & { + runtimeGeneration: DiacriticGenerationOptions; +}; + +export async function startDiacritic({ + defaultLanguage, + generation, + languages, + parser, + resources, + runtimeGeneration, +}: StartDiacriticOptions) { + const resourceGraph = new ResourceGraph(languages, resources); + + const unsubscribe = await watchResources({ + resourceGraph, + resources, + onChange: async (event) => { + const shouldCreateRegistry = !event || event.type === "create" || event.type === "delete"; + + await generateTypes({ defaultLanguage, generation, languages, parser, resourceGraph }); + + if (shouldCreateRegistry) { + const registry = createRegistry(defaultLanguage, languages, resourceGraph.allNamespaces(), "./"); + await createFolderAndFile(runtimeGeneration.outFile, registry); + } + + for (const language of languages) { + for (const namespace of resourceGraph.allNamespaces()) { + const files = resourceGraph.allEntriesForLanguageAndNamespace(language, namespace) + .filter(file => existsSync(file)) + .map(file => readFileSync(file, "utf-8")); + + const entries = files.flatMap(item => parser.convertFile(item)); + const functions = entries.map(item => createFunctionFromEntry(item)); + + functions.unshift( + ...(runtimeGeneration?.banner ?? []), + `import type { Proxy } from "@diacritic/runtime"`, + "", + ); + + const dir = dirname(runtimeGeneration.outFile); + const out = resolve(dir, `${language}/${namespace}.ts`); + + await createFolderAndFile(out, functions.join(EOL)); + } + } + }, + }); + + process.on("SIGINT", async () => unsubscribe()); + process.on("SIGTERM", async () => unsubscribe()); +} diff --git a/packages/core/src/utilities/generator/modules.ts b/packages/core/src/utilities/generator/modules.ts index cb3d296..fb430cb 100644 --- a/packages/core/src/utilities/generator/modules.ts +++ b/packages/core/src/utilities/generator/modules.ts @@ -4,6 +4,10 @@ import { EOL } from "node:os"; import { prefixes } from "../loader"; +function toUnion(arr: string[]) { + return arr.map(item => `"${item}"`).join(" | "); +} + export function createFunctionFromEntry(entry: Entry) { const r = Array.isArray(entry.return) ? "[" + entry.return.map(item => `\`${item}\``).join(", ") + "]" @@ -24,26 +28,27 @@ export function createRegistry( defaultLanguage: string, languages: string[], namespaces: string[], - reactNative = false, + prefix = prefixes[0], ) { - const importType = reactNative ? "() => require" : "async () => import"; - return [ - `export const defaultLanguage = ${JSON.stringify(defaultLanguage)} as const;`, - `export const languages = ${JSON.stringify(languages)} as const;`, - `export const namespaces = ${JSON.stringify(namespaces)} as const;`, + `export const defaultLanguage: ${JSON.stringify(defaultLanguage)} = ${JSON.stringify(defaultLanguage)};`, + `export const languages: (${toUnion(languages)})[] = ${JSON.stringify(languages)};`, + `export const namespaces: (${toUnion(namespaces)})[] = ${JSON.stringify(namespaces)};`, "", `const modules = {`, languages.flatMap(language => [ `\t${language}: {`, namespaces - .map(namespace => `\t\t\t${namespace}: ${importType}("${prefixes[0]}${language}/${namespace}"),`) + .map(namespace => `\t\t${namespace}: async () => import("${prefix}${language}/${namespace}"),`) .join(EOL), `\t},`, ]).join(EOL), - `}`, + `} as const;`, "", - `export async function importTranslationModule(language: string, namespace: string) {`, + `export async function importTranslationModule(`, + `\tlanguage: (typeof languages)[number],`, + `\tnamespace: (typeof namespaces)[number]`, + `) {`, `\treturn modules[language][namespace]();`, `}`, ].join(EOL); diff --git a/packages/core/src/utilities/generator/types.ts b/packages/core/src/utilities/generator/types.ts index bea3dfa..7a92790 100644 --- a/packages/core/src/utilities/generator/types.ts +++ b/packages/core/src/utilities/generator/types.ts @@ -1,13 +1,12 @@ import type { ResourceGraph } from "../resource"; import type { DiacriticGenerationOptions, Entry, Parser } from "../types"; -import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; +import { readFile } from "node:fs/promises"; import { EOL } from "node:os"; -import { dirname } from "node:path"; import { dset } from "dset"; -import { prefixes } from "../loader"; +import { createFolderAndFile, prefixes } from "../loader"; /// keep-sorted type GenerateTypesOptions = { @@ -28,7 +27,7 @@ function functionFromEntry(entry: Entry) { return `(${args}) => ${Array.isArray(entry.return) ? "string[]" : "string"}`; } -export function generateTypes({ +export async function generateTypes({ defaultLanguage, generation, languages, @@ -38,7 +37,7 @@ export function generateTypes({ const entries = resourceGraph.allEntriesForLanguage(defaultLanguage); const namespaces = resourceGraph.allNamespaces(); - const declarations: string[] = generation?.banner ?? []; + const declarations: string[] = [...(generation?.banner ?? [])]; declarations.push( `declare module "${prefixes[1]}registry" {`, @@ -60,10 +59,12 @@ export function generateTypes({ ); for (const [namespace, files] of Object.entries(entries)) { - const contents = files.map(file => readFileSync(file, "utf-8")).flatMap(parser.convertFile); + const contents = await Promise.all(files.map(file => readFile(file, "utf-8"))); + const entries = contents.flatMap(parser.convertFile); + const structure = {}; - for (const entry of contents) dset(structure, entry.path, functionFromEntry(entry)); + for (const entry of entries) dset(structure, entry.path, functionFromEntry(entry)); declarations.push( `\t\t${namespace}: ${JSON.stringify(structure).replace(/"/g, "")};`, @@ -78,8 +79,5 @@ export function generateTypes({ `}`, ); - const folder = dirname(generation.outFile); - if (!existsSync(folder)) mkdirSync(folder, { recursive: true }); - - writeFileSync(generation.outFile, declarations.join(EOL), "utf-8"); + await createFolderAndFile(generation.outFile, declarations.join(EOL)); } diff --git a/packages/core/src/utilities/loader.ts b/packages/core/src/utilities/loader.ts index b977eb6..473cc8e 100644 --- a/packages/core/src/utilities/loader.ts +++ b/packages/core/src/utilities/loader.ts @@ -1,3 +1,7 @@ +import { existsSync } from "node:fs"; +import { mkdir, writeFile } from "node:fs/promises"; +import { dirname } from "node:path"; + import invariant from "tiny-invariant"; export const prefixes = ["/~translations/", "~translations/", "virtual:translations/", "virtual/translations/"]; @@ -42,3 +46,10 @@ export function isResource(file: string, resources: string[]) { return false; } + +export async function createFolderAndFile(path: string, content: string) { + const folder = dirname(path); + if (!existsSync(folder)) await mkdir(folder, { recursive: true }); + + await writeFile(path, content, "utf-8"); +} diff --git a/packages/core/src/utilities/metro/transformer.ts b/packages/core/src/utilities/metro/transformer.ts deleted file mode 100644 index abb400c..0000000 --- a/packages/core/src/utilities/metro/transformer.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* eslint-disable ts/no-var-requires, ts/no-require-imports */ -import type { DiacriticOptions, Parser } from "../types"; -import type { JsTransformOptions, JsTransformerConfig, TransformResponse } from "metro-transform-worker"; - -import { existsSync, readFileSync } from "node:fs"; -import { EOL } from "node:os"; -import { fileURLToPath } from "node:url"; - -import worker from "metro-transform-worker"; -import invariant from "tiny-invariant"; - -import { createExportFromLanguageAndNamespace, createFunctionFromEntry, createRegistry } from "../generator"; -import { extractLanguageAndNamespace, isTranslationPath, resourceWithoutPrefix } from "../loader"; - -export type MetroDiacriticOptions = Omit & { - parserPath: string; - resourceGraph: Record>; -}; - -export type DiacriticTransformerConfig = JsTransformerConfig & { - transformerPath?: string; - diacriticOptions: MetroDiacriticOptions; -}; - -export async function transform( - configuration: DiacriticTransformerConfig, - projectRoot: string, - filename: string, - data: Buffer | string, - options: JsTransformOptions, -): Promise { - const transformer = configuration.transformerPath && configuration.transformerPath !== fileURLToPath(import.meta.url) - ? require(configuration.transformerPath).transform - : worker.transform; - - if (!filename.includes("metro-virtual-modules-diacritic")) - return transformer(configuration, projectRoot, filename, data, options); - - const [, modulePath] = filename.split("metro-virtual-modules-diacritic"); - - if (!isTranslationPath(modulePath!)) - return transformer(configuration, projectRoot, filename, data, options); - - const parser: Parser = (await import(configuration.diacriticOptions.parserPath)).default(); - const { diacriticOptions } = configuration; - - const extraction = extractLanguageAndNamespace(diacriticOptions.languages, modulePath!); - const namespaces = [...new Set(Object.values(diacriticOptions.resourceGraph).flatMap(value => Object.keys(value)))]; - - if (extraction.mode === "registry") { - const data = createRegistry( - diacriticOptions.defaultLanguage, - diacriticOptions.languages, - namespaces, - diacriticOptions.reactNative, - ); - - return worker.transform(configuration, projectRoot, filename, Buffer.from(data), options); - } - - if (extraction.mode === "languageOnly") { - const { language } = extraction; - const namespaces = Object.keys(diacriticOptions.resourceGraph[language] ?? {}); - - const exports = namespaces.flatMap(item => createExportFromLanguageAndNamespace(language, item)); - return worker.transform(configuration, projectRoot, filename, Buffer.from(exports.join(EOL)), options); - } - - if (extraction.mode === "languageAndNamespace") { - const { language, namespace } = extraction; - - const files = (diacriticOptions.resourceGraph[language]?.[namespace] ?? []) - .filter(file => existsSync(file)) - .map(file => readFileSync(file, "utf-8")); - - const resource = resourceWithoutPrefix(modulePath!); - invariant(files.length > 0, `There's no language resource available [${resource}]`); - - const entries = files.flatMap(item => parser.convertFile(item)); - const functions = entries.map(item => createFunctionFromEntry(item)); - - return worker.transform(configuration, projectRoot, filename, Buffer.from(functions.join(EOL)), options); - } - - return transformer(configuration, projectRoot, filename, Buffer.from(data), options); -} diff --git a/packages/core/src/utilities/resource.ts b/packages/core/src/utilities/resource.ts index bf87eea..8266f3f 100644 --- a/packages/core/src/utilities/resource.ts +++ b/packages/core/src/utilities/resource.ts @@ -1,4 +1,4 @@ -import { resolve } from "node:path"; +import { dirname, resolve } from "node:path"; import { toCamelCase } from "@diacritic/utilities"; import { globSync } from "glob"; @@ -44,6 +44,12 @@ export class ResourceGraph { return [...new Set(Object.values(this.graph).flatMap(value => Object.keys(value)).flat())]; } + public allFolders() { + return [ + ...new Set(Object.values(this.graph).flatMap(value => Object.values(value)).flat().map(file => dirname(file))), + ]; + } + public hasFile(file: string) { return this.allFiles().includes(file); } @@ -60,6 +66,8 @@ export class ResourceGraph { public removeFile(file: string, resources: string[]) { const { language, namespace } = this.determineLanguageAndNamespaceFromResources(file, resources); this.graph[language]![namespace] = this.graph[language]![namespace]!.filter(f => f !== file); + + if (this.graph[language]![namespace]!.length === 0) delete this.graph[language]![namespace]; } private determineLanguageAndNamespaceFromResources(file: string, resources: string[]) { diff --git a/packages/core/src/utilities/types.ts b/packages/core/src/utilities/types.ts index a404d2a..18aa126 100644 --- a/packages/core/src/utilities/types.ts +++ b/packages/core/src/utilities/types.ts @@ -38,11 +38,6 @@ export type DiacriticOptions = { */ parser: Parser; - /** - * If project is a react-native project - */ - reactNative?: boolean; - /** * Glob containing all resources (translation files). * You may also want to specify `language` replacers diff --git a/packages/core/src/utilities/watcher.ts b/packages/core/src/utilities/watcher.ts new file mode 100644 index 0000000..73ad317 --- /dev/null +++ b/packages/core/src/utilities/watcher.ts @@ -0,0 +1,32 @@ +import type { ResourceGraph } from "./resource"; +import type { AsyncSubscription, Event } from "@parcel/watcher"; + +import { subscribe } from "@parcel/watcher"; + +type WatchResourcesOptions = { + resourceGraph: ResourceGraph; + resources: string[]; + onChange?: (event?: Event) => Promise; +}; + +export async function watchResources({ resourceGraph, resources, onChange }: WatchResourcesOptions) { + await onChange?.(); + + const subscriptions: AsyncSubscription[] = []; + for (const folder of resourceGraph.allFolders()) { + const subscription = await subscribe(folder, async (err, events) => { + if (err) throw err; + + for (const event of events) { + if (event.type === "create") resourceGraph.addFile(event.path, resources); + if (event.type === "delete") resourceGraph.removeFile(event.path, resources); + + await onChange?.(event); + } + }); + + subscriptions.push(subscription); + } + + return async () => await Promise.all(subscriptions.map(async subscription => subscription.unsubscribe())); +} diff --git a/packages/core/test/utilities/generator/__snapshots__/modules.test.ts.snap b/packages/core/test/utilities/generator/__snapshots__/modules.test.ts.snap index b92884f..98ea6de 100644 --- a/packages/core/test/utilities/generator/__snapshots__/modules.test.ts.snap +++ b/packages/core/test/utilities/generator/__snapshots__/modules.test.ts.snap @@ -9,43 +9,49 @@ exports[`createFunctionFromEntry > should create a function from an entry correc `; exports[`createRegistry > should create a registry correctly 1`] = ` -"export const defaultLanguage = "en" as const; -export const languages = ["en","pt"] as const; -export const namespaces = ["common","zod"] as const; +"export const defaultLanguage: "en" = "en"; +export const languages: ("en" | "pt")[] = ["en","pt"]; +export const namespaces: ("common" | "zod")[] = ["common","zod"]; const modules = { en: { - common: async () => import("/~translations/en/common"), - zod: async () => import("/~translations/en/zod"), + common: async () => import("/~translations/en/common"), + zod: async () => import("/~translations/en/zod"), }, pt: { - common: async () => import("/~translations/pt/common"), - zod: async () => import("/~translations/pt/zod"), + common: async () => import("/~translations/pt/common"), + zod: async () => import("/~translations/pt/zod"), }, -} +} as const; -export async function importTranslationModule(language: string, namespace: string) { +export async function importTranslationModule( + language: (typeof languages)[number], + namespace: (typeof namespaces)[number] +) { return modules[language][namespace](); }" `; -exports[`createRegistry > should create a registry for react-native correctly 1`] = ` -"export const defaultLanguage = "en" as const; -export const languages = ["en","pt"] as const; -export const namespaces = ["common","zod"] as const; +exports[`createRegistry > should create a registry with custom prefix correctly correctly 1`] = ` +"export const defaultLanguage: "en" = "en"; +export const languages: ("en" | "pt")[] = ["en","pt"]; +export const namespaces: ("common" | "zod")[] = ["common","zod"]; const modules = { en: { - common: () => require("/~translations/en/common"), - zod: () => require("/~translations/en/zod"), + common: async () => import("./en/common"), + zod: async () => import("./en/zod"), }, pt: { - common: () => require("/~translations/pt/common"), - zod: () => require("/~translations/pt/zod"), + common: async () => import("./pt/common"), + zod: async () => import("./pt/zod"), }, -} +} as const; -export async function importTranslationModule(language: string, namespace: string) { +export async function importTranslationModule( + language: (typeof languages)[number], + namespace: (typeof namespaces)[number] +) { return modules[language][namespace](); }" `; diff --git a/packages/core/test/utilities/generator/modules.test.ts b/packages/core/test/utilities/generator/modules.test.ts index 9fbff55..caf8a09 100644 --- a/packages/core/test/utilities/generator/modules.test.ts +++ b/packages/core/test/utilities/generator/modules.test.ts @@ -29,7 +29,7 @@ describe("createRegistry", () => { expect(createRegistry("en", ["en", "pt"], ["common", "zod"])).toMatchSnapshot(); }); - it("should create a registry for react-native correctly", () => { - expect(createRegistry("en", ["en", "pt"], ["common", "zod"], true)).toMatchSnapshot(); + it("should create a registry with custom prefix correctly correctly", () => { + expect(createRegistry("en", ["en", "pt"], ["common", "zod"], "./")).toMatchSnapshot(); }); }); diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index c9af5dd..14cee59 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,8 +1,6 @@ -import metaUrl from "@chialab/esbuild-plugin-meta-url"; import { defineConfig } from "tsup"; export default defineConfig({ - esbuildPlugins: [metaUrl()], entry: ["./src/*.ts"], format: ["cjs", "esm"], splitting: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf9b31f..fa6c151 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,6 +121,9 @@ importers: '@diacritic/utilities': specifier: workspace:* version: link:../utilities + '@parcel/watcher': + specifier: ^2.4.1 + version: 2.4.1 dset: specifier: ^3.1.3 version: 3.1.3 @@ -134,15 +137,6 @@ importers: specifier: ^1.10.1 version: 1.10.1 devDependencies: - '@chialab/esbuild-plugin-meta-url': - specifier: ^0.18.2 - version: 0.18.2 - metro-config: - specifier: ^0.80.9 - version: 0.80.9 - metro-transform-worker: - specifier: ^0.80.9 - version: 0.80.9 vite: specifier: ^5.2.11 version: 5.2.11(@types/node@20.12.12)(terser@5.31.0) @@ -509,22 +503,6 @@ packages: '@changesets/write@0.3.1': resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} - '@chialab/esbuild-plugin-meta-url@0.18.2': - resolution: {integrity: sha512-uIRIdLvYnw5mLrTRXY0BTgeZx6ANL2/OHkWFl8FaiTYNb7cyXmwEDRE1mh6kBXPRPtGuqv6XSpNX+koEkElu4g==} - engines: {node: '>=18'} - - '@chialab/esbuild-rna@0.18.2': - resolution: {integrity: sha512-ckzskez7bxstVQ4c5cxbx0DRP2teldzrcSGQl2KPh1VJGdO2ZmRrb6vNkBBD5K3dx9tgTyvskWp4dV+Fbg07Ag==} - engines: {node: '>=18'} - - '@chialab/estransform@0.18.1': - resolution: {integrity: sha512-W/WmjpQL2hndD0/XfR0FcPBAUj+aLNeoAVehOjV/Q9bSnioz0GVSAXXhzp59S33ZynxJBBfn8DNiMTVNJmk4Aw==} - engines: {node: '>=18'} - - '@chialab/node-resolve@0.18.0': - resolution: {integrity: sha512-eV1m70Qn9pLY9xwFmZ2FlcOzwiaUywsJ7NB/ud8VB7DouvCQtIHkQ3Om7uPX0ojXGEG1LCyO96kZkvbNTxNu0Q==} - engines: {node: '>=18'} - '@clack/core@0.3.4': resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} @@ -895,10 +873,6 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -959,9 +933,81 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@parcel/source-map@2.1.1': - resolution: {integrity: sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==} - engines: {node: ^12.18.3 || >=14} + '@parcel/watcher-android-arm64@2.4.1': + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.4.1': + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.4.1': + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.4.1': + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.4.1': + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.4.1': + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.4.1': + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.4.1': + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.4.1': + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.4.1': + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.4.1': + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.4.1': + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -1265,15 +1311,6 @@ packages: '@types/http-cache-semantics@4.0.4': resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1331,12 +1368,6 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - '@typescript-eslint/eslint-plugin@7.10.0': resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1541,10 +1572,6 @@ packages: accept-language-parser@1.5.0: resolution: {integrity: sha512-QhyTbMLYo0BBGg1aWbeMG4ekWtds/31BrEU+DONOg/7ax23vxpL03Pb7/zBmha2v7vdD3AyzZVWBVGEZxKOXWw==} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1672,9 +1699,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1710,18 +1734,6 @@ packages: call-me-maybe@1.0.2: resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} - caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - - caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - - callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1734,10 +1746,6 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - caniuse-lite@1.0.30001621: resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} @@ -1782,9 +1790,6 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -1844,23 +1849,12 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -1910,14 +1904,6 @@ packages: de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1976,9 +1962,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - denodeify@1.2.1: - resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2024,9 +2007,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.783: resolution: {integrity: sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==} @@ -2036,10 +2016,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - enhanced-resolve@5.16.1: resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} engines: {node: '>=10.13.0'} @@ -2055,9 +2031,6 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -2099,9 +2072,6 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2370,9 +2340,6 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2381,10 +2348,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2591,12 +2554,6 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hermes-estree@0.20.1: - resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} - - hermes-parser@0.20.1: - resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} - hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -2629,15 +2586,6 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - - import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -2664,9 +2612,6 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - is-alphabetical@1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} @@ -2713,10 +2658,6 @@ packages: is-decimal@1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2791,9 +2732,6 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -2804,22 +2742,6 @@ packages: resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} engines: {node: '>=14'} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -2841,9 +2763,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsc-safe-url@0.2.4: - resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} - jsdoc-type-pratt-parser@4.0.0: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} @@ -2865,9 +2784,6 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -2900,10 +2816,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2948,9 +2860,6 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -2985,9 +2894,6 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -3055,64 +2961,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - metro-babel-transformer@0.80.9: - resolution: {integrity: sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==} - engines: {node: '>=18'} - - metro-cache-key@0.80.9: - resolution: {integrity: sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==} - engines: {node: '>=18'} - - metro-cache@0.80.9: - resolution: {integrity: sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==} - engines: {node: '>=18'} - - metro-config@0.80.9: - resolution: {integrity: sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==} - engines: {node: '>=18'} - - metro-core@0.80.9: - resolution: {integrity: sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==} - engines: {node: '>=18'} - - metro-file-map@0.80.9: - resolution: {integrity: sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==} - engines: {node: '>=18'} - - metro-minify-terser@0.80.9: - resolution: {integrity: sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==} - engines: {node: '>=18'} - - metro-resolver@0.80.9: - resolution: {integrity: sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==} - engines: {node: '>=18'} - - metro-runtime@0.80.9: - resolution: {integrity: sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==} - engines: {node: '>=18'} - - metro-source-map@0.80.9: - resolution: {integrity: sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==} - engines: {node: '>=18'} - - metro-symbolicate@0.80.9: - resolution: {integrity: sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==} - engines: {node: '>=18'} - hasBin: true - - metro-transform-plugins@0.80.9: - resolution: {integrity: sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==} - engines: {node: '>=18'} - - metro-transform-worker@0.80.9: - resolution: {integrity: sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==} - engines: {node: '>=18'} - - metro@0.80.9: - resolution: {integrity: sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==} - engines: {node: '>=18'} - hasBin: true - micromark-core-commonmark@2.0.1: resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} @@ -3183,14 +3031,6 @@ packages: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -3242,9 +3082,6 @@ packages: mlly@1.7.0: resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -3268,12 +3105,9 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -3284,9 +3118,6 @@ packages: encoding: optional: true - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -3312,13 +3143,6 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nullthrows@1.1.1: - resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - - ob1@0.80.9: - resolution: {integrity: sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==} - engines: {node: '>=18'} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -3334,10 +3158,6 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -3424,18 +3244,10 @@ packages: resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} engines: {node: '>=14'} - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -3566,9 +3378,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -3582,9 +3391,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} @@ -3628,9 +3434,6 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -3680,10 +3483,6 @@ packages: resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3727,9 +3526,6 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -3763,10 +3559,6 @@ packages: engines: {node: '>=10'} hasBin: true - serialize-error@2.1.0: - resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} - engines: {node: '>=0.10.0'} - set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -3830,10 +3622,6 @@ packages: source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -3870,13 +3658,6 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} @@ -3906,9 +3687,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3957,10 +3735,6 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -3999,12 +3773,6 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - throat@5.0.0: - resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} - - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -4023,9 +3791,6 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -4228,10 +3993,6 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unplugin@1.10.1: resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} engines: {node: '>=14.0.0'} @@ -4248,10 +4009,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -4342,9 +4099,6 @@ packages: jsdom: optional: true - vlq@1.0.1: - resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} - vue-demi@0.14.7: resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} @@ -4378,9 +4132,6 @@ packages: typescript: optional: true - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -4458,26 +4209,10 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -4995,23 +4730,6 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 - '@chialab/esbuild-plugin-meta-url@0.18.2': - dependencies: - '@chialab/esbuild-rna': 0.18.2 - '@chialab/estransform': 0.18.1 - mime-types: 2.1.35 - - '@chialab/esbuild-rna@0.18.2': - dependencies: - '@chialab/estransform': 0.18.1 - '@chialab/node-resolve': 0.18.0 - - '@chialab/estransform@0.18.1': - dependencies: - '@parcel/source-map': 2.1.1 - - '@chialab/node-resolve@0.18.0': {} - '@clack/core@0.3.4': dependencies: picocolors: 1.0.1 @@ -5275,15 +4993,6 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.12 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -5298,6 +5007,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + optional: true '@jridgewell/sourcemap-codec@1.4.15': {} @@ -5375,9 +5085,61 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@parcel/source-map@2.1.1': + '@parcel/watcher-android-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-x64@2.4.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.4.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.4.1': + optional: true + + '@parcel/watcher-win32-arm64@2.4.1': + optional: true + + '@parcel/watcher-win32-ia32@2.4.1': + optional: true + + '@parcel/watcher-win32-x64@2.4.1': + optional: true + + '@parcel/watcher@2.4.1': dependencies: detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.7 + node-addon-api: 7.1.0 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 '@pkgjs/parseargs@0.11.0': optional: true @@ -5661,16 +5423,6 @@ snapshots: '@types/http-cache-semantics@4.0.4': {} - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - '@types/json-schema@7.0.15': {} '@types/linkify-it@5.0.0': {} @@ -5723,12 +5475,6 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.32': - dependencies: - '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 @@ -5996,11 +5742,6 @@ snapshots: accept-language-parser@1.5.0: {} - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.11.3): dependencies: acorn: 8.11.3 @@ -6138,11 +5879,8 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - - buffer-from@1.1.2: {} + buffer-from@1.1.2: + optional: true builtin-modules@3.3.0: {} @@ -6177,16 +5915,6 @@ snapshots: call-me-maybe@1.0.2: {} - caller-callsite@2.0.0: - dependencies: - callsites: 2.0.0 - - caller-path@2.0.0: - dependencies: - caller-callsite: 2.0.0 - - callsites@2.0.0: {} - callsites@3.1.0: {} camelcase-keys@6.2.2: @@ -6197,8 +5925,6 @@ snapshots: camelcase@5.3.1: {} - camelcase@6.3.0: {} - caniuse-lite@1.0.30001621: {} ccount@2.0.1: {} @@ -6255,8 +5981,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - ci-info@2.0.0: {} - ci-info@3.9.0: {} ci-info@4.0.0: {} @@ -6291,7 +6015,8 @@ snapshots: color-name@1.1.4: {} - commander@2.20.3: {} + commander@2.20.3: + optional: true commander@4.1.1: {} @@ -6308,30 +6033,12 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 - connect@3.7.0: - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - convert-source-map@2.0.0: {} core-js-compat@3.37.1: dependencies: browserslist: 4.23.0 - core-util-is@1.0.3: {} - - cosmiconfig@5.2.1: - dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 - cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 @@ -6385,10 +6092,6 @@ snapshots: de-indent@1.0.2: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@3.2.7: dependencies: ms: 2.1.3 @@ -6438,8 +6141,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - denodeify@1.2.1: {} - dequal@2.0.3: {} detect-indent@6.1.0: {} @@ -6470,16 +6171,12 @@ snapshots: eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - electron-to-chromium@1.4.783: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - enhanced-resolve@5.16.1: dependencies: graceful-fs: 4.2.11 @@ -6496,10 +6193,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - error-stack-parser@2.1.4: - dependencies: - stackframe: 1.3.4 - es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -6629,8 +6322,6 @@ snapshots: escalade@3.1.2: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -7007,10 +6698,6 @@ snapshots: dependencies: reusify: 1.0.4 - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -7019,18 +6706,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.1.2: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -7246,12 +6921,6 @@ snapshots: he@1.2.0: {} - hermes-estree@0.20.1: {} - - hermes-parser@0.20.1: - dependencies: - hermes-estree: 0.20.1 - hookable@5.5.3: {} hosted-git-info@2.8.9: {} @@ -7275,15 +6944,6 @@ snapshots: ignore@5.3.1: {} - image-size@1.1.1: - dependencies: - queue: 6.0.2 - - import-fresh@2.0.0: - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -7308,10 +6968,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - is-alphabetical@1.0.4: {} is-alphanumerical@1.0.4: @@ -7359,8 +7015,6 @@ snapshots: is-decimal@1.0.4: {} - is-directory@0.3.1: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -7418,8 +7072,6 @@ snapshots: is-windows@1.0.2: {} - isarray@1.0.0: {} - isarray@2.0.5: {} isexe@2.0.0: {} @@ -7430,33 +7082,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jest-get-type@29.6.3: {} - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.12.12 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - jest-worker@29.7.0: - dependencies: - '@types/node': 20.12.12 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jju@1.4.0: {} joycon@3.1.1: {} @@ -7474,8 +7099,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsc-safe-url@0.2.4: {} - jsdoc-type-pratt-parser@4.0.0: {} jsesc@0.5.0: {} @@ -7486,8 +7109,6 @@ snapshots: json-buffer@3.0.1: {} - json-parse-better-errors@1.0.2: {} - json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -7515,8 +7136,6 @@ snapshots: kleur@4.1.5: {} - leven@3.1.0: {} - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -7558,8 +7177,6 @@ snapshots: lodash.startcase@4.4.0: {} - lodash.throttle@4.1.1: {} - lodash@4.17.21: {} longest-streak@3.1.0: {} @@ -7591,10 +7208,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - map-obj@1.0.1: {} map-obj@4.3.0: {} @@ -7746,173 +7359,6 @@ snapshots: merge2@1.4.1: {} - metro-babel-transformer@0.80.9: - dependencies: - '@babel/core': 7.24.6 - hermes-parser: 0.20.1 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color - - metro-cache-key@0.80.9: {} - - metro-cache@0.80.9: - dependencies: - metro-core: 0.80.9 - rimraf: 3.0.2 - - metro-config@0.80.9: - dependencies: - connect: 3.7.0 - cosmiconfig: 5.2.1 - jest-validate: 29.7.0 - metro: 0.80.9 - metro-cache: 0.80.9 - metro-core: 0.80.9 - metro-runtime: 0.80.9 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - - metro-core@0.80.9: - dependencies: - lodash.throttle: 4.1.1 - metro-resolver: 0.80.9 - - metro-file-map@0.80.9: - dependencies: - anymatch: 3.1.3 - debug: 2.6.9 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - invariant: 2.2.4 - jest-worker: 29.7.0 - micromatch: 4.0.7 - node-abort-controller: 3.1.1 - nullthrows: 1.1.1 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - transitivePeerDependencies: - - supports-color - - metro-minify-terser@0.80.9: - dependencies: - terser: 5.31.0 - - metro-resolver@0.80.9: {} - - metro-runtime@0.80.9: - dependencies: - '@babel/runtime': 7.24.6 - - metro-source-map@0.80.9: - dependencies: - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 - invariant: 2.2.4 - metro-symbolicate: 0.80.9 - nullthrows: 1.1.1 - ob1: 0.80.9 - source-map: 0.5.7 - vlq: 1.0.1 - transitivePeerDependencies: - - supports-color - - metro-symbolicate@0.80.9: - dependencies: - invariant: 2.2.4 - metro-source-map: 0.80.9 - nullthrows: 1.1.1 - source-map: 0.5.7 - through2: 2.0.5 - vlq: 1.0.1 - transitivePeerDependencies: - - supports-color - - metro-transform-plugins@0.80.9: - dependencies: - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color - - metro-transform-worker@0.80.9: - dependencies: - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - metro: 0.80.9 - metro-babel-transformer: 0.80.9 - metro-cache: 0.80.9 - metro-cache-key: 0.80.9 - metro-minify-terser: 0.80.9 - metro-source-map: 0.80.9 - metro-transform-plugins: 0.80.9 - nullthrows: 1.1.1 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - - metro@0.80.9: - dependencies: - '@babel/code-frame': 7.24.6 - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 - accepts: 1.3.8 - chalk: 4.1.2 - ci-info: 2.0.0 - connect: 3.7.0 - debug: 2.6.9 - denodeify: 1.2.1 - error-stack-parser: 2.1.4 - graceful-fs: 4.2.11 - hermes-parser: 0.20.1 - image-size: 1.1.1 - invariant: 2.2.4 - jest-worker: 29.7.0 - jsc-safe-url: 0.2.4 - lodash.throttle: 4.1.1 - metro-babel-transformer: 0.80.9 - metro-cache: 0.80.9 - metro-cache-key: 0.80.9 - metro-config: 0.80.9 - metro-core: 0.80.9 - metro-file-map: 0.80.9 - metro-resolver: 0.80.9 - metro-runtime: 0.80.9 - metro-source-map: 0.80.9 - metro-symbolicate: 0.80.9 - metro-transform-plugins: 0.80.9 - metro-transform-worker: 0.80.9 - mime-types: 2.1.35 - node-fetch: 2.7.0 - nullthrows: 1.1.1 - rimraf: 3.0.2 - serialize-error: 2.1.0 - source-map: 0.5.7 - strip-ansi: 6.0.1 - throat: 5.0.0 - ws: 7.5.9 - yargs: 17.7.2 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - micromark-core-commonmark@2.0.1: dependencies: decode-named-character-reference: 1.0.2 @@ -8058,12 +7504,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -8105,8 +7545,6 @@ snapshots: pkg-types: 1.1.1 ufo: 1.5.3 - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} @@ -8125,16 +7563,12 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.3: {} - - node-abort-controller@3.1.1: {} + node-addon-api@7.1.0: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-int64@0.4.0: {} - node-releases@2.0.14: {} normalize-package-data@2.5.0: @@ -8160,10 +7594,6 @@ snapshots: dependencies: boolbase: 1.0.0 - nullthrows@1.1.1: {} - - ob1@0.80.9: {} - object-assign@4.1.1: {} object-inspect@1.13.1: {} @@ -8177,10 +7607,6 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - on-finished@2.3.0: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -8268,11 +7694,6 @@ snapshots: parse-gitignore@2.0.0: {} - parse-json@4.0.0: - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.6 @@ -8280,8 +7701,6 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parseurl@1.3.3: {} - path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -8382,8 +7801,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - process-nextick-args@2.0.1: {} - proto-list@1.2.4: {} pseudomap@1.0.2: {} @@ -8392,10 +7809,6 @@ snapshots: queue-microtask@1.2.3: {} - queue@6.0.2: - dependencies: - inherits: 2.0.4 - quick-lru@4.0.1: {} quick-lru@5.1.1: {} @@ -8443,16 +7856,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -8500,8 +7903,6 @@ snapshots: resolve-alpn@1.2.1: {} - resolve-from@3.0.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -8559,8 +7960,6 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 - safe-buffer@5.1.2: {} - safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 @@ -8592,8 +7991,6 @@ snapshots: semver@7.6.2: {} - serialize-error@2.1.0: {} - set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -8660,10 +8057,10 @@ snapshots: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + optional: true - source-map@0.5.7: {} - - source-map@0.6.1: {} + source-map@0.6.1: + optional: true source-map@0.8.0-beta.0: dependencies: @@ -8699,10 +8096,6 @@ snapshots: stackback@0.0.2: {} - stackframe@1.3.4: {} - - statuses@1.5.0: {} - std-env@3.7.0: {} stream-transform@2.1.3: @@ -8742,10 +8135,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -8790,10 +8179,6 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} synckit@0.6.2: @@ -8817,6 +8202,7 @@ snapshots: acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 + optional: true text-table@0.2.0: {} @@ -8828,13 +8214,6 @@ snapshots: dependencies: any-promise: 1.3.0 - throat@5.0.0: {} - - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - tiny-invariant@1.3.3: {} tinybench@2.8.0: {} @@ -8847,8 +8226,6 @@ snapshots: dependencies: os-tmpdir: 1.0.2 - tmpl@1.0.5: {} - to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -9053,8 +8430,6 @@ snapshots: universalify@0.1.2: {} - unpipe@1.0.0: {} - unplugin@1.10.1: dependencies: acorn: 8.11.3 @@ -9074,8 +8449,6 @@ snapshots: util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -9215,8 +8588,6 @@ snapshots: - supports-color - terser - vlq@1.0.1: {} - vue-demi@0.14.7(vue@3.4.27(typescript@5.4.5)): dependencies: vue: 3.4.27(typescript@5.4.5) @@ -9253,10 +8624,6 @@ snapshots: optionalDependencies: typescript: 5.4.5 - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -9342,12 +8709,8 @@ snapshots: wrappy@1.0.2: {} - ws@7.5.9: {} - xml-name-validator@4.0.0: {} - xtend@4.0.2: {} - y18n@4.0.3: {} y18n@5.0.8: {}