From 661e809bbb8795476469a8188b3090723be8feda Mon Sep 17 00:00:00 2001 From: Krasilnikov Roman Date: Sat, 26 Oct 2024 03:06:40 +0300 Subject: [PATCH 1/4] Add core package --- .gitignore | 1 + flake.nix | 1 + mkfilex | 12 +- package.json | 23 + packages/core/.gitignore | 24 + packages/core/package.json | 45 + .../src/__fixtures__/different-headers.json | 11 + .../core/src/__fixtures__/empty-arrays.json | 22 + .../core/src/__fixtures__/parsing-error.json | 10 + .../simple-headers-duplication.json | 5 + .../simple-indexes-deduplication.json | 5 + .../core/src/__fixtures__/uniq-headers.json | 13 + .../core/src/__fixtures__/wrong-sizes.json | 29 + packages/core/src/index.ts | 2 + packages/core/src/json-to-table.test.ts | 250 + packages/core/src/json-to-table.ts | 211 + packages/core/src/lib/array.ts | 56 + packages/core/src/lib/binary-tree.ts | 27 + packages/core/src/lib/guards.ts | 58 + packages/core/src/lib/json.ts | 142 + packages/core/src/lib/math.ts | 10 + packages/core/src/lib/object.ts | 33 + packages/core/src/lib/ord.ts | 1 + packages/core/src/model/block.test.ts | 497 ++ packages/core/src/model/block.ts | 350 ++ packages/core/src/model/core.ts | 119 + packages/core/src/model/index.ts | 4 + packages/core/src/model/row.ts | 33 + packages/core/src/model/table.ts | 279 + packages/core/tsconfig.json | 8 + packages/core/tsconfig.tsbuildinfo | 1 + pnpm-lock.yaml | 3563 +++++++++++++ pnpm-workspace.yaml | 7 + web/package-lock.json | 4514 ----------------- web/package.json | 6 +- web/vite.config.ts | 2 +- 36 files changed, 5853 insertions(+), 4521 deletions(-) create mode 100644 package.json create mode 100644 packages/core/.gitignore create mode 100644 packages/core/package.json create mode 100644 packages/core/src/__fixtures__/different-headers.json create mode 100644 packages/core/src/__fixtures__/empty-arrays.json create mode 100644 packages/core/src/__fixtures__/parsing-error.json create mode 100644 packages/core/src/__fixtures__/simple-headers-duplication.json create mode 100644 packages/core/src/__fixtures__/simple-indexes-deduplication.json create mode 100644 packages/core/src/__fixtures__/uniq-headers.json create mode 100644 packages/core/src/__fixtures__/wrong-sizes.json create mode 100644 packages/core/src/index.ts create mode 100644 packages/core/src/json-to-table.test.ts create mode 100644 packages/core/src/json-to-table.ts create mode 100644 packages/core/src/lib/array.ts create mode 100644 packages/core/src/lib/binary-tree.ts create mode 100644 packages/core/src/lib/guards.ts create mode 100644 packages/core/src/lib/json.ts create mode 100644 packages/core/src/lib/math.ts create mode 100644 packages/core/src/lib/object.ts create mode 100644 packages/core/src/lib/ord.ts create mode 100644 packages/core/src/model/block.test.ts create mode 100644 packages/core/src/model/block.ts create mode 100644 packages/core/src/model/core.ts create mode 100644 packages/core/src/model/index.ts create mode 100644 packages/core/src/model/row.ts create mode 100644 packages/core/src/model/table.ts create mode 100644 packages/core/tsconfig.json create mode 100644 packages/core/tsconfig.tsbuildinfo create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml delete mode 100644 web/package-lock.json diff --git a/.gitignore b/.gitignore index 4662664..2b1d02e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .direnv/ +node_modules \ No newline at end of file diff --git a/flake.nix b/flake.nix index 8e03def..f0299db 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ buildInputs = [ mk.packages.${system}.default pkgs.nodejs_22 + pkgs.pnpm ]; shellHook = '' source <(COMPLETE=bash mk) diff --git a/mkfilex b/mkfilex index 2e2252b..27750d8 100644 --- a/mkfilex +++ b/mkfilex @@ -8,7 +8,15 @@ w/: pushd web d: - npm run dev + pnpm run dev c: - npm run check + pnpm run check popd + +c/: + pushd packages/core + b: + pnpm run build + t: + pnpm run test + popd \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..39392f7 --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "json-table", + "private": true, + "author": "Roman Krasilnikov", + "license": "MIT", + "type": "module", + "version": "0.0.0", + "packageManager": "pnpm@9.12.1", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "devDependencies": { + "@changesets/changelog-github": "^0.5.0", + "@changesets/cli": "^2.27.9", + "@total-typescript/tsconfig": "^1.0.4", + "only-allow": "^1.2.1", + "publint": "^0.2.12", + "turbo": "^2.2.3", + "typescript": "~5.6.2" + } +} diff --git a/packages/core/.gitignore b/packages/core/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/packages/core/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..a501417 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,45 @@ +{ + "name": "@json-table/core", + "version": "0.0.0", + "description": "Library for creating tables from JSON", + "license": "MIT", + "keywords": [ + "json", + "table" + ], + "type": "module", + "files": [ + "dist", + "!dist/**/*.test.*", + "!dist/**/*.spec.*" + ], + "publishConfig": { + "provenance": true + }, + "repository": { + "type": "git", + "url": "https://github.com/x0k/json-table.git", + "directory": "packages/core" + }, + "bugs": "https://github.com/x0k/json-table/issues", + "homepage": "https://x0k.github.io/json-table/", + "scripts": { + "build": "tsc", + "test": "vitest --run" + }, + "types": "dist/index.d.ts", + "main": "dist/index.js", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./lib/*": { + "types": "./dist/lib/*.d.ts", + "import": "./dist/lib/*.js" + } + }, + "devDependencies": { + "vitest": "catalog:" + } +} diff --git a/packages/core/src/__fixtures__/different-headers.json b/packages/core/src/__fixtures__/different-headers.json new file mode 100644 index 0000000..ab4e9ec --- /dev/null +++ b/packages/core/src/__fixtures__/different-headers.json @@ -0,0 +1,11 @@ +[ + { + "character_id": "5428010618020694593", + "item_id": "95" + }, + { + "character_id": "5428010618020694593", + "item_id": "101", + "stack_count": "4" + } +] \ No newline at end of file diff --git a/packages/core/src/__fixtures__/empty-arrays.json b/packages/core/src/__fixtures__/empty-arrays.json new file mode 100644 index 0000000..3fc5abe --- /dev/null +++ b/packages/core/src/__fixtures__/empty-arrays.json @@ -0,0 +1,22 @@ +[ + { + "tasks": { + "n": [ + "UspYpi-8NwmZZR7FJprSb" + ], + "d": [], + "a": [ + "aCx8zMrOjqW6K55TMokHD" + ] + } + }, + { + "tasks": { + "n": [], + "d": [], + "a": [ + "gwT5xfbxgkPCq_VDyoBO3" + ] + } + } +] \ No newline at end of file diff --git a/packages/core/src/__fixtures__/parsing-error.json b/packages/core/src/__fixtures__/parsing-error.json new file mode 100644 index 0000000..f0bd6df --- /dev/null +++ b/packages/core/src/__fixtures__/parsing-error.json @@ -0,0 +1,10 @@ +{ + "weather": [ + { + "id": 800, + "main": "Clear", + "description": "clear sky", + "icon": "01n" + } + ] +} \ No newline at end of file diff --git a/packages/core/src/__fixtures__/simple-headers-duplication.json b/packages/core/src/__fixtures__/simple-headers-duplication.json new file mode 100644 index 0000000..e712d30 --- /dev/null +++ b/packages/core/src/__fixtures__/simple-headers-duplication.json @@ -0,0 +1,5 @@ +[ + { "a": 1, "b": 2, "c": 3 }, + { "a": 4, "b": 5, "c": 6 }, + { "a": 7, "b": 8, "c": 9 } +] \ No newline at end of file diff --git a/packages/core/src/__fixtures__/simple-indexes-deduplication.json b/packages/core/src/__fixtures__/simple-indexes-deduplication.json new file mode 100644 index 0000000..aed9ad6 --- /dev/null +++ b/packages/core/src/__fixtures__/simple-indexes-deduplication.json @@ -0,0 +1,5 @@ +{ + "a": [1, 4, 7], + "b": [2, 5, 8], + "c": [3, 6, 9] +} \ No newline at end of file diff --git a/packages/core/src/__fixtures__/uniq-headers.json b/packages/core/src/__fixtures__/uniq-headers.json new file mode 100644 index 0000000..9b46e91 --- /dev/null +++ b/packages/core/src/__fixtures__/uniq-headers.json @@ -0,0 +1,13 @@ +[ + { + "description": "name of the ComponentStatus", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } +] \ No newline at end of file diff --git a/packages/core/src/__fixtures__/wrong-sizes.json b/packages/core/src/__fixtures__/wrong-sizes.json new file mode 100644 index 0000000..e527e70 --- /dev/null +++ b/packages/core/src/__fixtures__/wrong-sizes.json @@ -0,0 +1,29 @@ +[ + { + "options": { + "reduceOptions": { + "values": false + } + }, + "pluginVersion": "7.3.1", + "targets": [ + { + "expr": "loki_build_info", + "format": "table" + } + ] + }, + { + "options": { + "reduceOptions": { + "values": false + } + }, + "pluginVersion": "7.3.1", + "targets": [ + { + "expr": "sum(log_messages_total)" + } + ] + } +] \ No newline at end of file diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 0000000..00b2160 --- /dev/null +++ b/packages/core/src/index.ts @@ -0,0 +1,2 @@ +export * from "./model/index.js"; +export * from "./json-to-table.js"; diff --git a/packages/core/src/json-to-table.test.ts b/packages/core/src/json-to-table.test.ts new file mode 100644 index 0000000..0d2e0b1 --- /dev/null +++ b/packages/core/src/json-to-table.test.ts @@ -0,0 +1,250 @@ +import { describe, expect, it } from 'vitest'; + +describe("makeTableFactory", () => { + it("Should work", () => { + expect(true).toBe(true); + }) +}) + +// // import { blockToASCII } from "./block-to-ascii"; +// import type { JSONPrimitiveOrNull } from "./lib/json.js"; +// import { makeTableInPlaceBaker } from "./model/index.js"; +// import { makeTableFactory } from "./json-to-table.js"; + +// import simpleHeadersDuplication from "./__fixtures__/simple-headers-duplication.json"; +// import simpleIndexesDeduplication from "./__fixtures__/simple-indexes-deduplication.json"; +// import parsingError from "./__fixtures__/parsing-error.json"; +// import differentHeaders from "./__fixtures__/different-headers.json"; +// import uniqueHeaders from "./__fixtures__/uniq-headers.json"; +// import wrongSizes from "./__fixtures__/wrong-sizes.json"; +// import emptyArrays from "./__fixtures__/empty-arrays.json" + +// describe("makeTableFactory", () => { +// const cornerCellValue = "№"; +// const factory = makeTableFactory({ cornerCellValue }); +// const bake = makeTableInPlaceBaker({ +// cornerCellValue, +// head: true, +// indexes: true, +// }); + +// it("Should create table for primitives", () => { +// const data = [false, 12345, "abcde"]; +// for (const value of data) { +// const table = factory(value); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}`).toBe(` +// +-------+ +// | ${value} | +// +-------+`); +// } +// }); + +// it("Should create table for objects", () => { +// const data = { +// a: 1, +// b: 2, +// c: { aa: 11, bb: 22 }, +// }; +// const table = factory(data); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+---+---------+ +// | a | b | c | +// +---+---+----+----+ +// | | | aa | bb | +// | 1 | 2 +----+----+ +// | | | 11 | 22 | +// +---+---+----+----+ +// `); +// }); + +// it("Should create table for arrays", () => { +// const data = [1, 2, [11, 22]]; +// const table = factory(data); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+--------+ +// | 1 | 1 | +// +---+--------+ +// | 2 | 2 | +// +---+---+----+ +// | | 1 | 11 | +// | 3 +---+----+ +// | | 2 | 22 | +// +---+---+----+ +// `); +// }); + +// it("Should create table for arrays with indexes collapse", () => { +// const factory = makeTableFactory({ +// cornerCellValue, +// collapseIndexes: true, +// }); +// const data = [ +// [1, 2], +// [11, 22], +// ]; +// const table = factory(data); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +-----+----+ +// | 1.1 | 1 | +// +-----+----+ +// | 1.2 | 2 | +// +-----+----+ +// | 2.1 | 11 | +// +-----+----+ +// | 2.2 | 22 | +// +-----+----+ +// `); +// }); + +// it("Should deduplicate table headers", () => { +// const table = factory(simpleHeadersDuplication); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+---+---+---+ +// | № | a | b | c | +// +---+---+---+---+ +// | 1 | 1 | 2 | 3 | +// +---+---+---+---+ +// | 2 | 4 | 5 | 6 | +// +---+---+---+---+ +// | 3 | 7 | 8 | 9 | +// +---+---+---+---+ +// `); +// }); + +// it("Should deduplicate table indexes", () => { +// const table = factory(simpleIndexesDeduplication); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+---+---+---+ +// | № | a | b | c | +// +---+---+---+---+ +// | 1 | 1 | 2 | 3 | +// +---+---+---+---+ +// | 2 | 4 | 5 | 6 | +// +---+---+---+---+ +// | 3 | 7 | 8 | 9 | +// +---+---+---+---+ +// `); +// }); + +// it("Should combine simple values should not affect objects values", () => { +// const factory = makeTableFactory({ +// cornerCellValue, +// joinPrimitiveArrayValues: true, +// }); +// const table = factory(parsingError); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+-----------------------------------+ +// | | weather | +// | № +------+-------+-------------+------+ +// | | id | main | description | icon | +// +---+------+-------+-------------+------+ +// | 1 | 800 | Clear | clear sky | 01n | +// +---+------+-------+-------------+------+ +// `); +// }); + +// it("Should not deduplicate objects with different headers", () => { +// const table = factory(differentHeaders as any); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+------------------------------+---------------------+ +// | | character_id | item_id | +// | 1 +------------------------------+---------------------+ +// | | 5428010618020694593 | 95 | +// +---+---------------------+--------+-------+-------------+ +// | | character_id | item_id | stack_count | +// | 2 +---------------------+----------------+-------------+ +// | | 5428010618020694593 | 101 | 4 | +// +---+---------------------+----------------+-------------+ +// `); +// }); + +// it("Should work with unique headers", () => { +// const table = factory(uniqueHeaders as any); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+-----------------------------+------+------+----------+--------+-------------+ +// | | description | in | name | required | type | uniqueItems | +// | 1 +-----------------------------+------+------+----------+--------+-------------+ +// | | name of the ComponentStatus | path | name | true | string | true | +// +---+-----------------------------+------+------+----------+--------+-------------+ +// | | $ref | +// | 2 +-----------------------------------------------------------------------------+ +// | | #/parameters/pretty-tJGM1-ng | +// +---+-----------------------------------------------------------------------------+ +// `); +// }); + +// it("Should create correct table", () => { +// const table = factory(wrongSizes as any); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+---------------+---------------+-----------------------------------------+ +// | № | options | pluginVersion | targets | +// +---+---------------+---------------+-------+------------------------+--------+ +// | | reduceOptions | | | | | +// | | | | № | expr | format | +// | +---------------+ | | | | +// | | | | | | | +// | 1 | values | 7.3.1 +-------+------------------------+--------+ +// | | | | | | | +// | +---------------+ | 1 | loki_build_info | table | +// | | false | | | | | +// | | | | | | | +// +---+---------------+---------------+-------+------------------------+--------+ +// | | reduceOptions | | | | +// | | | | № | expr | +// | +---------------+ | | | +// | | | | | | +// | 2 | values | 7.3.1 +-------+---------------------------------+ +// | | | | | | +// | +---------------+ | 1 | sum(log_messages_total) | +// | | false | | | | +// | | | | | | +// +---+---------------+---------------+-------+---------------------------------+ +// `); +// }); + +// it('Should deduplicate equal headers with different sizes', () => { +// const data = [ +// {a:1, b:2, c: 3}, +// {a:1, b:2, c: {d: 4, e: 5}} +// ] +// const table = factory(data); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+---+---+-------+ +// | № | a | b | c | +// +---+---+---+-------+ +// | 1 | 1 | 2 | 3 | +// +---+---+---+---+---+ +// | | | | d | e | +// | 2 | 1 | 2 +---+---+ +// | | | | 4 | 5 | +// +---+---+---+---+---+ +// `); +// }) +// // The original problem was in the modification of global `EMPTY` table +// it('Should handle empty arrays', () => { +// const table = factory(emptyArrays as any); +// const ascii = blockToASCII(bake(table)); +// expect(`\n${ascii}\n`).toBe(` +// +---+------------------------------------------------------------------------------+ +// | | tasks | +// | № +---------------------------+---+----------------------------------------------+ +// | | n | d | a | +// +---+---+-----------------------+---+----------------------+-----------------------+ +// | 1 | 1 | UspYpi-8NwmZZR7FJprSb | | 1 | aCx8zMrOjqW6K55TMokHD | +// +---+---+-----------------------+---+----------------------+-----------------------+ +// | 2 | | | 1 | gwT5xfbxgkPCq_VDyoBO3 | +// +---+---+-----------------------+---+----------------------------------------------+ +// `); +// }) +// }); diff --git a/packages/core/src/json-to-table.ts b/packages/core/src/json-to-table.ts new file mode 100644 index 0000000..1dcc907 --- /dev/null +++ b/packages/core/src/json-to-table.ts @@ -0,0 +1,211 @@ +import { + type JSONPrimitiveOrNull, + type JSONRecord, + type JSONValue, + isJsonPrimitiveOrNull, +} from "./lib/json.js"; +import { + type Table, + type Cells, + makeTableFromValue, + makeProportionalResizeGuard, + type ComposedTable, + CellType, + shiftPositionsInPlace, + makeTableInPlaceStacker, + mergeBlocksHorizontally, + type Block, +} from "./model/index.js"; +import { isRecord } from "./lib/guards.js"; +import { array } from "./lib/array.js"; +import { makeObjectPropertiesStabilizer } from "./lib/object.js"; + +export interface TableFactoryOptions { + joinPrimitiveArrayValues?: boolean; + /** combine arrays of objects into a single object */ + combineArraysOfObjects?: boolean; + /** proportional size adjustment threshold */ + proportionalSizeAdjustmentThreshold?: number; + collapseIndexes?: boolean; + cornerCellValue: V; + stabilizeOrderOfPropertiesInArraysOfObjects?: boolean; +} + +export function makeTableFactory({ + combineArraysOfObjects, + joinPrimitiveArrayValues, + proportionalSizeAdjustmentThreshold = 1, + stabilizeOrderOfPropertiesInArraysOfObjects = true, + cornerCellValue, + collapseIndexes, +}: TableFactoryOptions) { + const isProportionalResize = makeProportionalResizeGuard( + proportionalSizeAdjustmentThreshold + ); + const verticalTableInPlaceStacker = makeTableInPlaceStacker({ + deduplicationComponent: "head", + isProportionalResize, + cornerCellValue, + }); + const horizontalTableInPlaceStacker = makeTableInPlaceStacker({ + deduplicationComponent: "indexes", + isProportionalResize, + cornerCellValue, + }); + + function addIndexesInPlace(table: ComposedTable, titles: string[]): void { + const { baked, indexes: indexesBlock } = table; + const hasIndexes = indexesBlock !== null; + const collapse = hasIndexes && collapseIndexes; + if (collapse) { + let blockIndex = 0; + let h = baked[0]!.height; + const { rows, indexes } = indexesBlock.data; + for (let i = 0; i < rows.length; i++) { + const rawRow = rows[i]!; + const index = indexes[i]!; + if (index >= h) { + h += baked[++blockIndex]!.height; + } + const title = titles[blockIndex]; + rawRow.cells[0]!.value = `${title}.${rawRow.cells[0]!.value}`; + } + return; + } + const rawRows = array(baked.length, () => ({ + cells: [], + columns: [], + })); + const idx = new Array(0); + let index = 0; + for (let i = 0; i < baked.length; i++) { + const rawRow = rawRows[i]!; + const { height } = baked[i]!; + rawRow.cells.push({ + height: height, + width: 1, + value: titles[i]!, + type: CellType.Index, + }); + rawRow.columns.push(0); + idx.push(index); + index += height; + } + const newIndexes: Block = { + height: index, + width: 1, + data: { + rows: rawRows, + indexes: idx, + }, + }; + table.indexes = hasIndexes + ? mergeBlocksHorizontally([newIndexes, indexesBlock], index) + : newIndexes; + } + + function addHeaders(table: ComposedTable, titles: string[]): void { + const { baked, head } = table; + const hasHeaders = head !== null; + const newHead: Cells = { + cells: [], + columns: [], + }; + let w = 0; + for (let i = 0; i < baked.length; i++) { + const { width } = baked[i]!; + newHead.cells.push({ + height: 1, + width, + value: titles[i]!, + type: CellType.Header, + }); + newHead.columns.push(w); + w += width; + } + if (hasHeaders) { + head.data.rows.unshift(newHead); + shiftPositionsInPlace(head.data.indexes, 1); + head.data.indexes.unshift(0); + } + table.head = { + width: w, + height: hasHeaders ? head.height + 1 : 1, + data: hasHeaders ? head.data : { rows: [newHead], indexes: [0] }, + }; + } + + function stackTablesVertical(titles: string[], tables: Table[]): Table { + const stacked = verticalTableInPlaceStacker(tables); + addIndexesInPlace(stacked, titles); + // @ts-expect-error transform to regular table + delete stacked.baked; + return stacked; + } + function stackTablesHorizontal(titles: string[], tables: Table[]): Table { + const stacked = horizontalTableInPlaceStacker(tables); + addHeaders(stacked, titles); + // @ts-expect-error transform to regular table + delete stacked.baked; + return stacked; + } + function transformRecord(record: Record): Table { + const keys = Object.keys(record); + if (keys.length === 0) { + return makeTableFromValue(""); + } + return stackTablesHorizontal( + keys, + keys.map((key) => transformValue(record[key]!)) + ); + } + function transformArray( + value: V[], + transformValue: (value: V) => Table + ): Table { + const titles = new Array(value.length); + const tables = new Array(value.length); + for (let i = 0; i < value.length; i++) { + titles[i] = String(i + 1); + tables[i] = transformValue(value[i]!); + } + return stackTablesVertical(titles, tables); + } + function transformValue(value: JSONValue): Table { + if (isJsonPrimitiveOrNull(value)) { + return makeTableFromValue(value); + } + if (Array.isArray(value)) { + if (value.length === 0) { + return makeTableFromValue(""); + } + let isPrimitives = true; + let isRecords = true; + let i = 0; + while (i < value.length && (isPrimitives || isRecord)) { + isPrimitives = isPrimitives && isJsonPrimitiveOrNull(value[i]!); + isRecords = isRecords && isRecord(value[i]); + i++; + } + if (joinPrimitiveArrayValues && isPrimitives) { + return makeTableFromValue(value.join(", ")); + } + if (combineArraysOfObjects && isRecords) { + return transformRecord(Object.assign({}, ...value)); + } + if (stabilizeOrderOfPropertiesInArraysOfObjects && isRecords) { + const stabilize = makeObjectPropertiesStabilizer(); + return transformArray(value as JSONRecord[], (value) => { + const [keys, values] = stabilize(value); + if (keys.length === 0) { + return makeTableFromValue(""); + } + return stackTablesHorizontal(keys, values.map(transformValue)); + }); + } + return transformArray(value, transformValue); + } + return transformRecord(value); + } + return transformValue; +} diff --git a/packages/core/src/lib/array.ts b/packages/core/src/lib/array.ts new file mode 100644 index 0000000..b1b90de --- /dev/null +++ b/packages/core/src/lib/array.ts @@ -0,0 +1,56 @@ +export interface NonEmptyArray extends Array { + 0: T +} + +export const array = ( + count: number, + factory: (index: number) => R +): R[] => Array.from(new Array(count), (_, i) => factory(i)) + +export function isItemsEqual(compare: (a: T, b: T) => boolean) { + return (items: T[]): boolean => { + let i = 1 + while (i < items.length) { + if (compare(items[i - 1]!, items[i]!)) { + i++ + } else { + return false + } + } + return true + } +} + +export type Predicate = (value: T, index: number, arr: T[]) => boolean + +export type GuardPredicate = ( + value: T, + index: number, + arr: T[] +) => value is R + +export function filter(predicate: GuardPredicate) { + return (items: T[]): R[] => items.filter(predicate) +} + +export type Transform = (value: T, index: number) => R + +export function map(action: Transform) { + return (items: T[]): R[] => items.map(action) +} + +export function every(predicate: Predicate) { + return (items: T[]) => items.every(predicate) +} + +export function some(predicate: Predicate) { + return (items: T[]) => items.some(predicate) +} + +export function first(array: T[]) { + return array[0] +} + +export function last(array: T[]) { + return array[array.length - 1] +} diff --git a/packages/core/src/lib/binary-tree.ts b/packages/core/src/lib/binary-tree.ts new file mode 100644 index 0000000..b6b05b2 --- /dev/null +++ b/packages/core/src/lib/binary-tree.ts @@ -0,0 +1,27 @@ +export interface Node> { + value: V + left?: C + right?: C +} + +export type Tree> = T | undefined + +export function insert>(tree: Tree, node: N) { + if (tree === undefined) { + return node + } + if (node.value < tree.value) { + tree.left = insert(tree.left, node) + } else { + tree.right = insert(tree.right, node) + } + return tree +} + +export function traverse>(tree: Tree, cb: (node: N) => void) { + if (tree !== undefined) { + traverse(tree.left, cb) + cb(tree) + traverse(tree.right, cb) + } +} diff --git a/packages/core/src/lib/guards.ts b/packages/core/src/lib/guards.ts new file mode 100644 index 0000000..fe6b75d --- /dev/null +++ b/packages/core/src/lib/guards.ts @@ -0,0 +1,58 @@ +export type Nothing = null | undefined + +export type Falsy = 0 | '' | false | Nothing + +export function neverError(value: never, message: string) { + return new Error(`${message}: ${value}`); +} + +export function isDefined(value: T | undefined): value is T { + return value !== undefined +} + +export function isSomething(value: T | Nothing): value is T { + return value !== null && value !== undefined +} + +export function isTruly(value: T | Falsy): value is T { + return Boolean(value) +} + +export function isString(value: unknown): value is string { + return typeof value === 'string' +} + +export function isBoolean(value: unknown): value is boolean { + return typeof value === 'boolean' +} + +export function isNumber(value: unknown): value is number { + return typeof value === 'number' +} + +export function isObject(value: unknown): value is Record { + return typeof value === 'object' && value !== null +} + +export function isArray(value: unknown): value is T[] { + return Array.isArray(value) +} + +export function isRecord( + value: unknown +): value is Record { + return isObject(value) && !isArray(value) +} + +export function isFunction(value: unknown): value is T { + return typeof value === 'function' +} + +export function makeIsArrayOf(guard: (value: I) => value is T) { + return (value: unknown): value is Array => + isArray(value) && value.every(guard) +} + +export function isDate(value: unknown): value is Date { + return value instanceof Date +} diff --git a/packages/core/src/lib/json.ts b/packages/core/src/lib/json.ts new file mode 100644 index 0000000..3a6f2d1 --- /dev/null +++ b/packages/core/src/lib/json.ts @@ -0,0 +1,142 @@ +import type { CompareResult } from "./ord.js"; + +export type JSONPrimitive = string | number | boolean; + +export type JSONPrimitiveOrNull = JSONPrimitive | null; + +export type JSONPrimitiveLiterals = "string" | "number" | "boolean"; + +export type JSONRecord = { [k: string]: JSONValue }; + +export type JSONArray = JSONValue[]; + +export type JSONObject = JSONRecord | JSONArray; + +export type JSONValue = JSONPrimitive | null | JSONObject; + +export const isJsonPrimitive = (value: JSONValue): value is JSONPrimitive => + typeof value !== "object"; + +export const isJsonPrimitiveOrNull = ( + value: JSONValue +): value is JSONPrimitive | null => value === null || typeof value !== "object"; + +const primitiveTypeOrder: Record = { + boolean: 0, + number: 1, + string: 2, +}; + +type CmpRow = [CompareResult, CompareResult, CompareResult]; + +const cmpTable: [CmpRow, CmpRow, CmpRow] = [ + [0, -1, -1], + [1, 0, -1], + [1, 1, 0], +]; + +export function compareSameTypeJsonPrimitive( + a: T, + b: T +): CompareResult { + return a > b ? 1 : a < b ? -1 : 0; +} + +export function compareJsonPrimitive( + a: JSONPrimitive, + b: JSONPrimitive +): CompareResult { + if (a === b) { + return 0; + } + const ta = typeof a as JSONPrimitiveLiterals; + const tb = typeof b as JSONPrimitiveLiterals; + return ta === tb + ? compareSameTypeJsonPrimitive(a, b) + : cmpTable[primitiveTypeOrder[ta]][primitiveTypeOrder[tb]]; +} + +export function compareJsonArray(a: JSONArray, b: JSONArray): CompareResult { + if (a.length < b.length) { + return -1; + } + if (a.length > b.length) { + return 1; + } + const len = a.length; + let i = 0; + while (i < len) { + const result = compareJsonValue(a[i]!, b[i]!); + if (result !== 0) { + return result; + } + i++; + } + return 0; +} + +export function compareJsonRecords( + a: JSONRecord, + b: JSONRecord +): CompareResult { + const aKeys = Object.keys(a); + const bKeys = Object.keys(b); + const result = compareSameTypeJsonPrimitive(aKeys.length, bKeys.length); + if (result !== 0) { + return result; + } + let aMaxMissingKey = ""; + let bMaxMissingKey = ""; + const commonKeys: string[] = []; + for (let i = 0; i < aKeys.length; i++) { + const aKey = aKeys[i]!; + if (aKey in b) { + commonKeys.push(aKey); + } else if (aKey > aMaxMissingKey) { + aMaxMissingKey = aKey; + } + const bKey = bKeys[i]!; + if (!(bKey in a) && bKey > bMaxMissingKey) { + bMaxMissingKey = bKey; + } + } + const diff = compareSameTypeJsonPrimitive(aMaxMissingKey, bMaxMissingKey); + if (diff !== 0) { + return diff; + } + commonKeys.sort(); + for (let i = 0; i < commonKeys.length; i++) { + const key = commonKeys[i]!; + const result = compareJsonValue(a[key]!, b[key]!); + if (result !== 0) { + return result; + } + } + return 0; +} + +export function compareJsonObjects( + a: JSONObject, + b: JSONObject +): CompareResult { + if (Array.isArray(a)) { + return Array.isArray(b) ? compareJsonArray(a, b) : -1; + } + return Array.isArray(b) ? 1 : compareJsonRecords(a, b); +} + +export function compareJsonValue(a: JSONValue, b: JSONValue): CompareResult { + if (a === null) { + if (b === null) { + return 0; + } + return -1; + } + if (b === null) { + return 1; + } + if (isJsonPrimitive(a)) { + return isJsonPrimitive(b) ? compareJsonPrimitive(a, b) : -1; + } + return isJsonPrimitive(b) ? 1 : compareJsonObjects(a, b); +} diff --git a/packages/core/src/lib/math.ts b/packages/core/src/lib/math.ts new file mode 100644 index 0000000..6c07649 --- /dev/null +++ b/packages/core/src/lib/math.ts @@ -0,0 +1,10 @@ +export const sum = (a: number, b: number): number => a + b +export const subtract = (a: number, b: number): number => a - b +export const multiply = (a: number, b: number): number => a * b +export const divide = (a: number, b: number): number => a / b + +export const max = (a: number, b: number): number => (a > b ? a : b) +export const min = (a: number, b: number): number => (a < b ? a : b) + +export const gcd = (a: number, b: number): number => (a ? gcd(b % a, a) : b) +export const lcm = (a: number, b: number): number => (a * b) / gcd(a, b) diff --git a/packages/core/src/lib/object.ts b/packages/core/src/lib/object.ts new file mode 100644 index 0000000..2ea4f37 --- /dev/null +++ b/packages/core/src/lib/object.ts @@ -0,0 +1,33 @@ +import { type Node, type Tree, insert, traverse } from "./binary-tree.js"; + +interface KeyNode extends Node> { + key: string; + val: V; +} + +export function makeObjectPropertiesStabilizer() { + let index = 0; + const order: Record> = {}; + return (obj: Record) => { + const entries = Object.entries(obj); + let tree: Tree> = undefined; + for (const [key, val] of entries) { + const node = (order[key] ??= { + key, + val, + value: index++, + }); + node.val = val; + node.left = undefined + node.right = undefined + tree = insert(tree, node); + } + const keys: string[] = []; + const values: V[] = []; + traverse(tree, (node) => { + keys.push(node.key); + values.push(node.val); + }); + return [keys, values] as const; + }; +} diff --git a/packages/core/src/lib/ord.ts b/packages/core/src/lib/ord.ts new file mode 100644 index 0000000..1832046 --- /dev/null +++ b/packages/core/src/lib/ord.ts @@ -0,0 +1 @@ +export type CompareResult = -1 | 0 | 1 diff --git a/packages/core/src/model/block.test.ts b/packages/core/src/model/block.test.ts new file mode 100644 index 0000000..17db9fd --- /dev/null +++ b/packages/core/src/model/block.test.ts @@ -0,0 +1,497 @@ +import { describe, it, expect } from 'vitest' + +import { type Block, CellType } from "./core.js"; +import { + stretchCellsToBottomInPlace, + stretchCellsToRightInPlace, + makeBlockInPlaceScaler, + areBlocksEqual, +} from "./block.js"; + +describe("stretchCellsToBottom", () => { + it("Should work with shifted bottom cell", () => { + const data: Block = { + height: 2, + width: 3, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 3, + type: CellType.Value, + }, + ], + columns: [0, 1, 2], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 4, + type: CellType.Value, + }, + ], + columns: [1], + }, + ], + indexes: [0, 1], + }, + }; + const expected: Block = { + height: 2, + width: 3, + data: { + rows: [ + { + cells: [ + { + height: 2, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + { + height: 2, + width: 1, + value: 3, + type: CellType.Value, + }, + ], + columns: [0, 1, 2], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 4, + type: CellType.Value, + }, + ], + columns: [1], + }, + ], + indexes: [0, 1], + }, + }; + stretchCellsToBottomInPlace(data); + expect(data).toEqual(expected); + }); +}); + +describe("stretchCellsToRight", () => { + it("Should work with shifted right cell", () => { + const data: Block = { + height: 3, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + ], + columns: [0], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 4, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 3, + type: CellType.Value, + }, + ], + columns: [0], + }, + ], + indexes: [0, 1, 2], + }, + }; + const expected: Block = { + height: 3, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 2, + value: 1, + type: CellType.Value, + }, + ], + columns: [0], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 4, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + { + cells: [ + { + height: 1, + width: 2, + value: 3, + type: CellType.Value, + }, + ], + columns: [0], + }, + ], + indexes: [0, 1, 2], + }, + }; + stretchCellsToRightInPlace(data); + expect(data).toEqual(expected); + }); +}); + +describe("makeBlockScaler", () => { + it("Should scale correctly height and fill empty cells", () => { + const scale = makeBlockInPlaceScaler("height", 5); + const data: Block = { + height: 2, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 3, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 4, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + ], + indexes: [0, 1], + }, + }; + const expected: Block = { + height: 5, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 2, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 2, + width: 1, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + { + cells: [ + { + height: 3, + width: 1, + value: 3, + type: CellType.Value, + }, + { + height: 3, + width: 1, + value: 4, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + ], + indexes: [0, 2], + }, + }; + scale(data); + expect(data).toEqual(expected); + }); +}); + +describe("areBlocksEqual", () => { + it("Should return true for equal blocks", () => { + expect( + areBlocksEqual({ + blocks: [ + { + height: 1, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + ], + indexes: [0], + }, + }, + { + height: 2, + width: 4, + data: { + rows: [ + { + cells: [ + { + height: 2, + width: 2, + value: 1, + type: CellType.Value, + }, + { + height: 2, + width: 2, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 2], + }, + ], + indexes: [0], + }, + }, + ], + height: 2, + width: 4, + }) + ).toBe(true); + }); + + it("Should return false for unequal blocks", () => { + expect( + areBlocksEqual({ + blocks: [ + { + height: 1, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + ], + indexes: [0], + }, + }, + { + height: 1, + width: 3, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 3, + type: CellType.Value, + }, + ], + columns: [0, 1, 2], + }, + ], + indexes: [0], + }, + }, + ], + width: 6, + height: 1, + }) + ).toBe(false); + }); + + it("Should return true for equal blocks with different sizes", () => { + expect( + areBlocksEqual({ + blocks: [ + { + height: 1, + width: 2, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + ], + indexes: [0], + }, + }, + { + height: 1, + width: 3, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 1, + width: 2, + value: 2, + type: CellType.Value, + }, + ], + columns: [0, 1], + }, + ], + indexes: [0], + }, + }, + ], + width: 3, + widthIsLcm: false, + height: 1, + }) + ).toBe(true); + }); +}); diff --git a/packages/core/src/model/block.ts b/packages/core/src/model/block.ts new file mode 100644 index 0000000..a6dee02 --- /dev/null +++ b/packages/core/src/model/block.ts @@ -0,0 +1,350 @@ +import { lcm, max } from "../lib/math.js"; +import { array } from "../lib/array.js"; + +import type { + Block, + BlockCompositor, + BlockSizeAspect, + Cell, + ProportionalResizeGuard, + Cells, + RowsScaler, + Rows, + BlockTransformInPlace, +} from "./core.js"; +import { + scaleRowsHorizontallyInPlace, + scaleRowsVerticallyInPlace, +} from "./row.js"; + +export interface AreBlocksEqualOptions { + blocks: Block[]; + width: number; + height: number; + widthIsLcm?: boolean; + heightIsLcm?: boolean; +} + +export function areBlocksEqual({ + blocks, + width, + heightIsLcm = true, + height, + widthIsLcm = true, +}: AreBlocksEqualOptions): boolean { + const blocksRows = blocks.map((b) => { + const wMultiplier = widthIsLcm ? width / b.width : 1; + const hMultiplier = heightIsLcm ? height / b.height : 1; + const { rows, indexes } = b.data; + const newRows = array(height, () => new Array>(width)); + for (let i = 0; i < rows.length; i++) { + const index = indexes[i]!; + const { cells, columns } = rows[i]!; + for (let j = 0; j < cells.length; j++) { + const cell = cells[j]!; + const row = index * hMultiplier; + let rowEnd = row + cell.height * hMultiplier; + if (!heightIsLcm && rowEnd === b.height && rowEnd < height) { + rowEnd = height; + } + const col = columns[j]! * wMultiplier; + let colEnd = col + cell.width * wMultiplier; + if (!widthIsLcm && colEnd === b.width && colEnd < width) { + colEnd = width; + } + for (let k = row; k < rowEnd; k++) { + const newRow = newRows[k]!; + for (let l = col; l < colEnd; l++) { + newRow[l] = cell; + } + } + } + } + return newRows; + }); + // Loop over rows + for (let i = 0; i < height; i++) { + const firstBlockRow = blocksRows[0]![i]!; + // Loop over cells + for (let j = 0; j < width; j++) { + const firstBlockCell = firstBlockRow[j]!; + // Loop over other blocks + for (let k = 1; k < blocks.length; k++) { + const cell = blocksRows[k]![i]![j]; + if (!cell || firstBlockCell.value !== cell.value) { + return false; + } + } + } + i++; + } + return true; +} + +function applyResizeInPlace( + { rows }: Rows, + toResize: Map>, + sizeAspect: BlockSizeAspect +): void { + for (const [rowId, cells] of toResize) { + const rowCells = rows[rowId]!.cells; + for (const [cellId, diff] of cells) { + rowCells[cellId]![sizeAspect] += diff; + } + } +} + +export function stretchCellsToBottomInPlace({ + data, + height, + width, +}: Block): void { + // TODO: Calculate yShift by row index and cell height + const yShift = array(width, () => 0); + const bottomPositions = new Array< + | { + cell: Cell; + rowIndex: number; + colIndex: number; + } + | null + | undefined + >(width); + const { rows } = data; + for (let i = 0; i < rows.length; i++) { + const { cells, columns } = rows[i]!; + for (let j = 0; j < cells.length; j++) { + const cell = cells[j]!; + const x = columns[j]!; + yShift[x]! += cell.height; + bottomPositions[x] = { cell, rowIndex: i, colIndex: j }; + for (let k = 1; k < cell.width; k++) { + yShift[x + k]! += cell.height; + bottomPositions[x + k] = null; + } + } + } + // rowId: { cellId: diff } + const toResize = new Map>(); + for (let i = 0; i < width; i++) { + const position = bottomPositions[i]; + if (!position) { + continue; + } + const diff = height - yShift[i]!; + if (diff <= 0) { + continue; + } + const cells = toResize.get(position.rowIndex) || new Map(); + toResize.set(position.rowIndex, cells.set(position.colIndex, diff)); + } + applyResizeInPlace(data, toResize, "height"); +} + +export function stretchCellsToRightInPlace({ + data, + height, + width, +}: Block) { + const rightPositions = new Array< + | { + cell: Cell; + indexInRow: number; + xTopRightCorner: number; + } + | undefined + >(height); + const { rows, indexes } = data; + for (let i = 0; i < rows.length; i++) { + const { cells, columns } = rows[i]!; + if (cells.length === 0) { + continue; + } + const indexInRow = cells.length - 1; + const cell = cells[indexInRow]!; + const xTopRightCorner = columns[indexInRow]! + cell.width; + const point = { + cell, + indexInRow, + xTopRightCorner, + }; + const index = indexes[i]!; + for (let j = index; j < index + cell.height; j++) { + const rp = rightPositions[j]; + if (!rp || xTopRightCorner > rp.xTopRightCorner) { + rightPositions[j] = point; + } + } + } + // TODO: this algorithm can be implemented without `set` of cells + const addedToResize = new Set>(); + const toResize = new Map>(); + for (let i = 0; i < rows.length; i++) { + const index = indexes[i]!; + const position = rightPositions[index]; + if (!position || addedToResize.has(position.cell)) { + continue; + } + addedToResize.add(position.cell); + const diff = width - position.xTopRightCorner; + if (diff <= 0) { + continue; + } + const cells = toResize.get(i) || new Map(); + toResize.set(i, cells.set(position.indexInRow, diff)); + } + applyResizeInPlace(data, toResize, "width"); +} + +const SIZE_ASPECT_TO_ROWS_IN_PLACE_SCALER: Record< + BlockSizeAspect, + RowsScaler +> = { + width: scaleRowsHorizontallyInPlace, + height: scaleRowsVerticallyInPlace, +}; + +const SIZE_ASPECT_TO_CELLS_IN_PLACE_STRETCHER: Record< + BlockSizeAspect, + BlockTransformInPlace +> = { + width: stretchCellsToRightInPlace, + height: stretchCellsToBottomInPlace, +}; + +export function makeBlockInPlaceScaler( + sizeAspect: BlockSizeAspect, + finalSize: number +): BlockTransformInPlace { + const scaleRowsInPlace = SIZE_ASPECT_TO_ROWS_IN_PLACE_SCALER[sizeAspect]; + const stretchCellsInPlace = + SIZE_ASPECT_TO_CELLS_IN_PLACE_STRETCHER[sizeAspect]; + return (table) => { + const multiplier = Math.floor(finalSize / table[sizeAspect]); + if (multiplier > 1) { + scaleRowsInPlace(table.data, multiplier); + } + let oldSize = table[sizeAspect]; + table[sizeAspect] = finalSize; + if (finalSize - oldSize * multiplier > 0) { + stretchCellsInPlace(table); + } + }; +} + +export function mergeBlocksVertically( + blocks: Block[], + width: number +): Block { + // TODO: first block can be used as accumulator + const rows = new Array>(0); + const indexes = new Array(0); + let index = 0; + for (let i = 0; i < blocks.length; i++) { + const { data, height } = blocks[i]!; + for (let j = 0; j < data.rows.length; j++) { + indexes.push(index + data.indexes[j]!); + rows.push(data.rows[j]!); + } + index += height; + } + return { + width, + height: index, + data: { rows, indexes }, + }; +} + +export function compressRawRowsInPlaceAndMakeIndexes( + rows: Cells[] +): number[] { + const indexes = new Array(rows.length); + let shift = 0; + for (let i = 0; i < rows.length; i++) { + if (rows[i]!.cells.length === 0) { + shift++; + continue; + } + rows[i - shift] = rows[i]!; + indexes[i - shift] = i; + } + rows.length -= shift; + indexes.length -= shift; + return indexes; +} + +export function mergeBlocksHorizontally( + blocks: Block[], + height: number +): Block { + const newRows = array(height, (): Cells => ({ cells: [], columns: [] })); + let width = 0; + for (let i = 0; i < blocks.length; i++) { + const { + data: { rows, indexes }, + width: blockWidth, + } = blocks[i]!; + for (let j = 0; j < rows.length; j++) { + const { cells, columns } = rows[j]!; + const row = newRows[indexes[j]!]!; + for (let k = 0; k < cells.length; k++) { + row.cells.push(cells[k]!); + row.columns.push(columns[k]! + width); + } + } + width += blockWidth; + } + // Rows created locally, so no mutations + const indexes = compressRawRowsInPlaceAndMakeIndexes(newRows); + return { + width, + height, + data: { + rows: newRows, + indexes, + }, + }; +} + +// TODO: combine into one function `makeBlockStacker` +export function makeVerticalBlockInPlaceStacker( + isProportionalResize: ProportionalResizeGuard +): BlockCompositor { + return function stackBlocksVertically(blocks) { + let lcmWidth = blocks[0]!.width; + let maxWidth = lcmWidth; + for (let i = 1; i < blocks.length; i++) { + const block = blocks[i]!; + lcmWidth = lcm(lcmWidth, block.width); + maxWidth = max(maxWidth, block.width); + } + const width = isProportionalResize(lcmWidth, maxWidth) + ? lcmWidth + : maxWidth; + const scale = makeBlockInPlaceScaler("width", width); + for (let i = 0; i < blocks.length; i++) { + scale(blocks[i]!); + } + return mergeBlocksVertically(blocks, width); + }; +} +export function makeHorizontalBlockInPlaceStacker( + isProportionalResize: ProportionalResizeGuard +): BlockCompositor { + return (blocks) => { + let lcmHeight = blocks[0]!.height; + let maxHeight = lcmHeight; + for (let i = 1; i < blocks.length; i++) { + lcmHeight = lcm(lcmHeight, blocks[i]!.height); + maxHeight = max(maxHeight, blocks[i]!.height); + } + const height = isProportionalResize(lcmHeight, maxHeight) + ? lcmHeight + : maxHeight; + const scale = makeBlockInPlaceScaler("height", height); + for (let i = 0; i < blocks.length; i++) { + scale(blocks[i]!); + } + return mergeBlocksHorizontally(blocks, height); + }; +} diff --git a/packages/core/src/model/core.ts b/packages/core/src/model/core.ts new file mode 100644 index 0000000..b39ea31 --- /dev/null +++ b/packages/core/src/model/core.ts @@ -0,0 +1,119 @@ +import type { JSONPrimitiveOrNull } from "../lib/json.js"; + +export interface Height { + height: number; +} + +export interface Width { + width: number; +} + +export interface Sized extends Height, Width {} + +export enum CellType { + Header = "header", + Index = "index", + Value = "value", + Corner = "corner", +} + +export interface Cell extends Sized { + value: V; + type: CellType; +} + +export interface Cells { + cells: Cell[]; + /** Absolute position in row for each cell */ + columns: number[]; +} + +export interface Rows { + rows: Cells[]; + /** Absolute position in column for each row */ + indexes: number[]; +} + +export interface Block extends Sized { + data: Rows; +} + +export interface Table { + head: Block | null; + indexes: Block | null; + body: Block; +} + +export type ProportionalResizeGuard = ( + lcmValue: number, + maxValue: number +) => boolean; + +export type RowsScaler = ( + rows: Rows, + multiplier: number, +) => void; + +export type BlockTransformInPlace = (block: Block) => void; + +export type BlockTransform = (block: Block) => Block; + +export type BlockCompositor = (blocks: Block[]) => Block; + +export interface ComposedTable extends Table { + baked: Block[]; +} + +export type TableCompositor = (tables: Table[]) => ComposedTable; + +export type TableComponent = "head" | "indexes"; +export type BlockSizeAspect = "height" | "width"; + +export const BLOCK_SIZE_ASPECT_OPPOSITES: Record< + BlockSizeAspect, + BlockSizeAspect +> = { + height: "width", + width: "height", +}; + +export const TABLE_COMPONENT_SIZE_ASPECTS: Record< + TableComponent, + BlockSizeAspect +> = { + head: "height", + indexes: "width", +}; + +export const TABLE_COMPONENT_OPPOSITES: Record = + { + head: "indexes", + indexes: "head", + }; + +export function makeTableFromValue(value: V): Table { + return { + head: null, + indexes: null, + body: { + height: 1, + width: 1, + data: { + rows: [ + { + cells: [{ height: 1, width: 1, value, type: CellType.Value }], + columns: [0], + }, + ], + indexes: [0], + }, + }, + }; +} + +export function makeProportionalResizeGuard( + threshold: number +): ProportionalResizeGuard { + return (lcmValue: number, maxValue: number) => + (lcmValue - maxValue) / maxValue <= threshold; +} diff --git a/packages/core/src/model/index.ts b/packages/core/src/model/index.ts new file mode 100644 index 0000000..928beb7 --- /dev/null +++ b/packages/core/src/model/index.ts @@ -0,0 +1,4 @@ +export * from './core.js' +export * from './row.js' +export * from './block.js' +export * from './table.js' diff --git a/packages/core/src/model/row.ts b/packages/core/src/model/row.ts new file mode 100644 index 0000000..57c2835 --- /dev/null +++ b/packages/core/src/model/row.ts @@ -0,0 +1,33 @@ +import type { Rows } from "./core.js"; + +export function shiftPositionsInPlace(columns: number[], offset: number): void { + for (let i = 0; i < columns.length; i++) { + columns[i]! += offset; + } +} + +export function scaleRowsVerticallyInPlace( + { rows, indexes }: Rows, + multiplier: number +): void { + for (let i = 0; i < rows.length; i++) { + indexes[i] = indexes[i]! * multiplier; + const cells = rows[i]!.cells; + for (let j = 0; j < cells.length; j++) { + cells[j]!.height = cells[j]!.height * multiplier; + } + } +} + +export function scaleRowsHorizontallyInPlace( + { rows }: Rows, + multiplier: number +): void { + for (let i = 0; i < rows.length; i++) { + const { cells, columns } = rows[i]!; + for (let j = 0; j < cells.length; j++) { + cells[j]!.width = cells[j]!.width * multiplier; + columns[j] = columns[j]! * multiplier; + } + } +} diff --git a/packages/core/src/model/table.ts b/packages/core/src/model/table.ts new file mode 100644 index 0000000..51ef633 --- /dev/null +++ b/packages/core/src/model/table.ts @@ -0,0 +1,279 @@ +import { lcm, max } from "../lib/math.js"; + +import { + type Block, + type BlockCompositor, + CellType, + type ProportionalResizeGuard, + TABLE_COMPONENT_SIZE_ASPECTS, + TABLE_COMPONENT_OPPOSITES, + type Table, + type TableComponent, + type TableCompositor, + type ComposedTable, +} from "./core.js"; +import { shiftPositionsInPlace } from "./row.js"; +import { + areBlocksEqual, + makeBlockInPlaceScaler, + makeHorizontalBlockInPlaceStacker, + makeVerticalBlockInPlaceStacker, + mergeBlocksHorizontally, + mergeBlocksVertically, +} from "./block.js"; + +export interface BakeOptions { + head?: boolean; + indexes?: boolean; + cornerCellValue: V; +} + +function bestHead(a: Block, b: Block) { + if (a.width === b.width) { + return a.height < b.height ? a : b; + } + return a.width > b.width ? a : b; +} + +function bestIndexes(a: Block, b: Block) { + if (a.height === b.height) { + return a.width < b.width ? a : b; + } + return a.height > b.height ? a : b; +} + +const TABLE_COMPONENT_SELECTORS: Record< + TableComponent, + (a: Block, b: Block) => Block +> = { + head: bestHead, + indexes: bestIndexes, +}; + +export function tryDeduplicateComponent( + tables: Table[], + component: TableComponent, + proportionalResizeGuard: ProportionalResizeGuard +): Block | null { + const { [component]: cmp } = tables[0]!; + if (!cmp) { + return null; + } + const select = TABLE_COMPONENT_SELECTORS[component]; + const blocks = [cmp]; + let bestCmp = cmp; + let lcmHeight = cmp.height; + let lcmWidth = cmp.width; + let maxHeight = cmp.height; + let maxWidth = cmp.width; + for (let i = 1; i < tables.length; i++) { + const cmp = tables[i]![component]; + if (!cmp) { + return null; + } + bestCmp = select(bestCmp, cmp); + maxHeight = max(maxHeight, cmp.height); + maxWidth = max(maxWidth, cmp.width); + lcmHeight = lcm(lcmHeight, cmp.height); + lcmWidth = lcm(lcmWidth, cmp.width); + blocks.push(cmp); + } + const isHeightProportional = proportionalResizeGuard(lcmHeight, maxHeight); + const isWidthProportional = proportionalResizeGuard(lcmWidth, maxWidth); + if ( + !(component === "head" ? isHeightProportional : isWidthProportional) || + !areBlocksEqual({ + blocks, + width: isWidthProportional ? lcmWidth : maxWidth, + widthIsLcm: isWidthProportional, + height: isHeightProportional ? lcmHeight : maxHeight, + heightIsLcm: isHeightProportional, + }) + ) { + return null; + } + return bestCmp; +} + +export function makeTableInPlaceBaker({ + head: bakeHead, + indexes: bakeIndexes, + cornerCellValue, +}: BakeOptions) { + return ({ body, head, indexes }: Table) => { + if (!bakeHead && !bakeIndexes) { + return body; + } + const useHead = bakeHead && head !== null; + const useIndexes = bakeIndexes && indexes !== null; + const withIndexes = useIndexes + ? mergeBlocksHorizontally([indexes, body], body.height) + : body; + const width = body.width + (useIndexes ? indexes.width : 0); + if (!useHead) { + return withIndexes; + } + if (!useIndexes) { + return mergeBlocksVertically([head, withIndexes], width); + } + // TODO: factor out `prependCell(Block, Cell)` ? + for (let i = 0; i < head.data.rows.length; i++) { + shiftPositionsInPlace(head.data.rows[i]!.columns, indexes.width); + } + const firstHeadRow = head.data.rows[0]!; + firstHeadRow.cells.unshift({ + height: head.height, + width: indexes.width, + value: cornerCellValue, + type: CellType.Corner, + }); + firstHeadRow.columns.unshift(0); + return mergeBlocksVertically([head, withIndexes], width); + }; +} + +export function tryPrepareTablesToStack( + tables: Table[], + component: TableComponent, + bake: boolean, + cornerCellValue: V +) { + const blocks: Block[] = []; + for (let i = 0; i < tables.length; i++) { + const table = tables[i]!; + const { + [component]: cmp, + [TABLE_COMPONENT_OPPOSITES[component]]: opposite, + } = table; + if (cmp === null) { + return null; + } + if (!bake || !opposite) { + blocks.push(cmp); + continue; + } + switch (component) { + case "indexes": { + const shifted = cmp.data.indexes.slice(); + // mutation of local copy + shiftPositionsInPlace(shifted, opposite.height); + shifted.unshift(0); + blocks.push({ + height: cmp.height + opposite.height, + width: cmp.width, + data: { + rows: [ + { + cells: [ + { + height: opposite.height, + width: cmp.width, + value: cornerCellValue, + type: CellType.Corner, + }, + ], + columns: [0], + }, + ...cmp.data.rows, + ], + indexes: shifted, + }, + }); + break; + } + case "head": { + const shifted = cmp.data.rows[0]!.columns.slice(); + // mutation of local copy + shiftPositionsInPlace(shifted, opposite.width); + shifted.unshift(0); + blocks.push({ + height: cmp.height, + width: cmp.width + opposite.width, + data: { + rows: [ + { + cells: [ + { + height: cmp.height, + width: opposite.width, + value: cornerCellValue, + type: CellType.Corner, + }, + ...cmp.data.rows[0]!.cells, + ], + columns: shifted, + }, + ...cmp.data.rows.slice(1), + ], + indexes: cmp.data.indexes, + }, + }); + break; + } + default: + throw new Error(`Unknown table component: ${component}`); + } + } + return blocks; +} + +export interface TableStackerOptions { + isProportionalResize: ProportionalResizeGuard; + cornerCellValue: V; + deduplicationComponent: C; +} + +const TABLE_COMPONENT_TO_BLOCK_IN_PLACE_STACKERS: Record< + TableComponent, + (guard: ProportionalResizeGuard) => BlockCompositor +> = { + head: makeVerticalBlockInPlaceStacker, + indexes: makeHorizontalBlockInPlaceStacker, +}; + +export function makeTableInPlaceStacker({ + deduplicationComponent, + isProportionalResize, + cornerCellValue, +}: TableStackerOptions): TableCompositor { + const blockInPlaceStacker = + TABLE_COMPONENT_TO_BLOCK_IN_PLACE_STACKERS[deduplicationComponent]( + isProportionalResize + ); + const opposite = TABLE_COMPONENT_OPPOSITES[deduplicationComponent]; + return (tables) => { + const deduplicated = tryDeduplicateComponent( + tables, + deduplicationComponent, + isProportionalResize + ); + const bake = deduplicated === null; + const blocksToStack = tryPrepareTablesToStack( + tables, + opposite, + bake, + cornerCellValue + ); + const baked = tables.map( + makeTableInPlaceBaker({ + [deduplicationComponent]: bake, + [opposite]: blocksToStack === null, + cornerCellValue, + }) + ); + const body = blockInPlaceStacker(baked); + const aspect = TABLE_COMPONENT_SIZE_ASPECTS[opposite]; + if (deduplicated) { + const scale = makeBlockInPlaceScaler(aspect, body[aspect]); + scale(deduplicated); + } + const composedTable: ComposedTable = { + body, + baked, + [deduplicationComponent as "head"]: deduplicated, + [opposite as "indexes"]: + blocksToStack && blockInPlaceStacker(blocksToStack), + }; + return composedTable; + }; +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..2859968 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@total-typescript/tsconfig/tsc/dom/library-monorepo", + "compilerOptions": { + "moduleResolution": "NodeNext", + "outDir": "./dist", + "rootDir": "./src", + } +} \ No newline at end of file diff --git a/packages/core/tsconfig.tsbuildinfo b/packages/core/tsconfig.tsbuildinfo new file mode 100644 index 0000000..ee68a58 --- /dev/null +++ b/packages/core/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/model/core.ts","./src/model/row.ts","./src/lib/math.ts","./src/lib/array.ts","./src/model/block.ts","./src/model/table.ts","./src/model/index.ts","./src/lib/guards.ts","./src/lib/binary-tree.ts","./src/lib/object.ts","./src/json-to-table.ts","./src/index.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+pretty-format@2.1.3/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/index-c1cfc5e9.d.ts","../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/node.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/tasks-SNKRxoD7.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/types-Bxe-2Udy.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/error.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.6/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/rollup@4.24.0/node_modules/rollup/dist/rollup.d.ts","../../node_modules/.pnpm/rollup@4.24.0/node_modules/rollup/dist/parseAst.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/hmrPayload.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/customEvent.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/dist/node/types.d-aGj9QkWt.d.ts","../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/previous-map.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/input.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/css-syntax-error.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/declaration.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/root.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/warning.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/lazy-result.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/no-work-result.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/processor.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/document.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/rule.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/node.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/comment.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/container.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/at-rule.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/list.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss.d.mts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/dist/node/runtime.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/importGlob.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/metadata.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/dist/node/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/environment-Ddx0EDtY.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/index-Y6kQUiCB.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/environment.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/config.Crbj2GAb.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/trace-mapping.d-DLVdEqOp.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/index-z0R8hVRu.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/environment.CzISCQ7o.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/client.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/manager.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/server.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/source-map.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/benchmark.JVlTzojj.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/reporters.C4ZHgdxQ.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/vite.YH7MrecS.d.ts","../../node_modules/.pnpm/@vitest+expect@2.1.3/node_modules/@vitest/expect/dist/chai.d.cts","../../node_modules/.pnpm/@vitest+expect@2.1.3/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+expect@2.1.3/node_modules/@vitest/expect/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/worker.B6RjTtbk.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/worker.CcJLfX8w.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/suite.BMWOKiTe.d.ts","../../node_modules/.pnpm/@vitest+mocker@2.1.3_@vitest+spy@2.1.3_vite@5.4.10/node_modules/@vitest/mocker/dist/types-yDMq238q.d.ts","../../node_modules/.pnpm/@vitest+mocker@2.1.3_@vitest+spy@2.1.3_vite@5.4.10/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/mocker.cRtM890J.d.ts","../../node_modules/.pnpm/@vitest+spy@2.1.3/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/index.d.ts","./src/json-to-table.test.ts","./src/model/block.test.ts"],"fileIdsList":[[87],[89],[90,95],[91,99,100,107,116],[91,92,99,107],[93,123],[94,95,100,108],[95,116],[96,97,99,107],[97],[98,99],[99],[99,100,101,116,122],[100,101],[99,102,107,116,122],[99,100,102,103,107,116,119,122],[102,104,116,119,122],[87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[99,105],[106,122],[97,99,107,116],[108],[109],[89,110],[111,121],[112],[113],[99,114],[114,115,123,125],[99,116],[117],[118],[107,116,119],[120],[107,121],[102,113,122],[123],[116,124],[125],[126],[99,101,116,122,125,127],[116,128],[79,80,83],[182],[187],[80,81,83,84,85],[80],[80,81,83],[80,81],[163],[77,163],[77,163,164],[77,82],[75],[75,76,77,79],[77],[154],[152,154],[143,151,152,153,155],[141],[144,149,154,157],[140,157],[144,145,148,149,150,157],[144,145,146,148,149,157],[141,142,143,144,145,149,150,151,153,154,155,157],[157],[139,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156],[139,157],[144,146,147,149,150,157],[148,157],[149,150,154,157],[142,152],[132,161],[131,132],[78],[168,169],[168],[162,168,169,180],[99,100,102,103,104,107,116,119,122,128,130,132,133,134,135,136,137,138,158,159,160,161],[134,135,136,137],[134,135,136],[134],[135],[132],[86,176,177,191],[77,86,165,166,191],[188],[77,80,86,100,116,162,165,167,170,171,172,173,174,175,178,180,181,191],[86,176,177,178,191],[162,179],[86,165,167,170,171,191],[127,184],[77,80,83,86,100,116,127,162,165,166,167,170,171,172,173,174,175,176,177,178,179,180,181,183,184,185,186,188,189,190,191],[69,73],[191],[62,66,69,70,72],[61],[71],[63,67,191],[63,64,65,66],[62],[63,64,67,68],[63],[63,64,65,67]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"3ee537745b200642e38f56f73c0ca5f16746c75dbd35835e14f21129566161cb","signature":"ad71442fca3dda47af60aea68e5341272bc5cefdaebe149739d6d6f2d486014c","impliedFormat":99},{"version":"37c986a0c155e69564f7df99b17d163bc52eba91107221efe1f977399379a5c2","signature":"632937b32122fe21f4bd149bb837e5f3658bf8f7795d351a3f9fbe40e85a10c1","impliedFormat":99},{"version":"30fe3754d6f391599ac6aeae0b9464d066f3223d75f5e18dc01f986714dc45f1","signature":"fbb3d1d9fcc8f4d52232c8229febbfc9d9b8a87a4fb227a4b229f5b6cc2f2b1e","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"2ec6d59df49b754bfbf824202a8a2e91176daa8b5d7e341bb86b7b956c521f8d","signature":"422df278f7356cec707c23a2552d2273067537f4ab78e2763af19c90ac1d8d09","impliedFormat":99},{"version":"4edf370070c96393991b622bb6b452f3a657771e0ebd7880eef4f2fa139a852c","signature":"e69d2b7ea04d8c4154aed34ded6ce7379f5d472bc8820f2498167cd27abf8905","impliedFormat":99},{"version":"3c91d7b7497bba365ce8fc60b8d6806eebb9459b72bf7d5dc0ae94b98e252def","signature":"4133afa93400422465d51f9a50466144cdf92425cf611361ec84a465ebc6d1e1","impliedFormat":99},{"version":"f89e03f1f9d9fb8507a0c2ca67c68939fe66b97de30bb3784f94fd379ece164b","signature":"09273985de88b2c488c58a9122099f863ce0c762713c2c59ef657dca0b045ab7","impliedFormat":99},{"version":"5f78c46a1ae612c0d765ce4bcee086e70926cf614f8a266db7b878a7b5e774b0","signature":"ededdc6dbbbe1d3f825e77e409d34dbb53fd87d2a8be501b3bf7e2c8e42568d3","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"b4e097e708b6162b5886ff426a1efdcbdadb16cf10f3f6518722ddf33d1743f7","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"1289d631fec13c960866df27cbd8d064c727cd5346931b0bcb670c265b4fb5a0","signature":"7ba6c80f0a35f719e21776a9552b215b1a917cd001aedd293e0745bc470290e5","impliedFormat":99},{"version":"085f98e316b4e94fb96c5cbf6ac475d8c71e0ab881a3923b691aab580090504e","impliedFormat":99},{"version":"369ba5259e66ca8c7d35e3234f7a2a0863a770fdb8266505747c65cf346a0804","impliedFormat":99},{"version":"86ecd6bc8313be39460480af6e8eed773e411781a606b1ac4354d4d16a32ed69","impliedFormat":99},{"version":"d2e64a6f25013b099e83bfadb2c388d7bef3e8f3fdb25528225bbc841e7e7e3a","impliedFormat":99},{"version":"f147b6710441cf3ec3234adf63b0593ce5e8c9b692959d21d3babc8454bcf743","impliedFormat":99},{"version":"e96d5373a66c2cfbbc7e6642cf274055aa2c7ff6bd37be7480c66faf9804db6d","impliedFormat":99},{"version":"dfff4c4041d7f80ff6d115aff809f2e5f0083b08ad2bb36630d7343227840445","impliedFormat":99},{"version":"2336cce4306070beaa63d884a5c0f12da185276171b0fa125116459af53393ed","impliedFormat":99},{"version":"7c553fc9e34773ddbaabe0fa1367d4b109101d0868a008f11042bee24b5a925d","impliedFormat":99},{"version":"9962ce696fbdce2421d883ca4b062a54f982496625437ae4d3633376c5ad4a80","impliedFormat":99},{"version":"d81207db663d8a11e88e1f0c3327e2113a39126574dd1006322f7786044b0ced","impliedFormat":99},{"version":"4c17183a07a63bea2653fbfc0a942b027160ddbee823024789a415f9589de327","impliedFormat":99},{"version":"8e3d01be99d25768dda7179881de842f523e525c9213e272dadacbbee799efb3","impliedFormat":99},{"version":"f5331cb9cc00970e4831e7f0de9688e04986bcde808cac10caa3e7005e203907","impliedFormat":1},{"version":"d20bbe9029b614c171212c50c842fa7ddfc61a6bbc697710ac70e4f7f0c77d15","affectsGlobalScope":true,"impliedFormat":1},{"version":"a9d67f9ae6bb38f732c51d1081af6a0ac6cae5e122472cacc2d54db178013699","impliedFormat":1},{"version":"1296a364908ba9c646372edc18ee0e140d9a388956b0e9510eec906b19fa5b36","impliedFormat":1},{"version":"1c863a53fb796e962c4b3e54bc7b77fd04a518444263d307290ff04f619c275e","impliedFormat":1},{"version":"ff98afc32b01e580077faf85b60232b65c40df0c3ecaa765fabc347a639b4225","impliedFormat":1},{"version":"30133f9ceaa46c9a20092c382fed7b8d09393cf1934392149ea8202991edb3ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"30c05e45ec7e1247ba9b87ad2acfae4fda401737f0e8a59f78beda8a4e22b110","impliedFormat":1},{"version":"2da83cc57a94f7aee832f2a71e1a294d857492761c1f5db717ea42c1a22467bc","impliedFormat":1},{"version":"aa5cc73a5f548f5bc1b4279a730c03294dfa6e98bed228d4ed6322a4183b26ad","impliedFormat":1},{"version":"b3f1ac9fe3d18d6cd04ab1e67a5da8c33ceb47f26b47e67896a5b2f8293c8a32","impliedFormat":1},{"version":"ca88e8b07c8186ef3180bf9b6b4456311ae41bf3fe5652c27a2a3feba04136b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"592d937b7df1b74af7fa81656503fc268fee50f0e882178e851b667def34414b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fdfdf2eab2bded61ee321ec88b8e083fe8d9fedad25a16ae040740869bc64e48","impliedFormat":1},{"version":"e8067fc8b0247f8b5ad781bd22f5dd19f6a39961ba60fa6fc13cfe9e624ca92f","impliedFormat":1},{"version":"842ef57ce3043fba0b0fb7eece785140af9d2381e4bed4f2744d3060352f2fd5","impliedFormat":1},{"version":"9095b6f13d9e48704b919d9b4162c48b04236a4ce664dc07549a435d8f4e612e","impliedFormat":1},{"version":"111b4c048fe89d25bb4d2a0646623ff4c456a313ed5bfb647b2262dda69a4ff8","impliedFormat":1},{"version":"f70f62f5f87ff8900090069554f79d9757f8e385322d0e26268463e27c098204","impliedFormat":1},{"version":"0932ed41e23d22fa5359f74805c687314e4b707b3428e52419d0fbefc0d66661","impliedFormat":1},{"version":"af07f4baaca7e5cf70cb8887e7d4f23d6bb0c0dd6ca1329c3d959ea749b7a14d","impliedFormat":1},{"version":"c80402af7b0420f57372ac99885f1ab058121db72418e43d25f440abda7bbe23","impliedFormat":1},{"version":"71aba6ce66e76ccfd3ba92b8b5c6658bad293f1313f012821c4bff1dd64ca278","impliedFormat":1},{"version":"17d944cab17bc9e32975250e8abe8073702f9493582d847805e446641bd7798f","impliedFormat":1},{"version":"c6bfc70bbdee282436ee11e887cceaa5988ac4eec60d5eb9b3711748c811831a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9ca5159f56c1fe99cdfc5f942585de20695a2a343db8543383b239c050f6aa4","impliedFormat":1},{"version":"84634ac706042ac8ee3a1e141bcdee03621725ab55455dba878a5503c6c7e037","impliedFormat":1},{"version":"d796c62c3c91c22c331b7465be89d009459eb1eb689304c476275f48676eaf9e","impliedFormat":1},{"version":"51cbf03ad34c3e84d1998bd57d1fd8da333d66dd65904625d22dc01b751d99c7","impliedFormat":1},{"version":"c31bbdc27ef936061eaa9d423c5da7c5b439a4ff6b5f1b18f89b30cf119d5a56","impliedFormat":1},{"version":"2a4ae2a8f834858602089792c9e8bab00075f5c4b1708bd49c298a3e6c95a30c","impliedFormat":1},{"version":"71e29ae391229f876d8628987640c3c51c89a1c2fd980d1a72d69aeee4239f80","impliedFormat":1},{"version":"51c74d73649a4d788ed97b38bd55ebac57d85b35cbf4a0357e3382324e10bbe9","impliedFormat":1},{"version":"c8641524781fa803006a144fd3024d5273ab0c531d8a13bbeaa8c81d8241529f","impliedFormat":1},{"version":"73e218d8914afc428a24b7d1de42a2cb37f0be7ac1f5c32c4a66379572700b52","impliedFormat":1},{"version":"56ff5262d76c01b3637ca82f9749d3ec0d70cf57d87964bf3e9ba4204241849e","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e3a18040e5a95f61556e09c932393b49c3b21ce42abe0f4ed74b97173f320db","impliedFormat":1},{"version":"344922fac39b5732179b606e16781b354c160f0e9bd7f5921a0fdc9fe4ede1fb","impliedFormat":1},{"version":"c1449f51f9496bb23f33ee48ff590b815393ef560a9e80493614869fe50915da","impliedFormat":1},{"version":"87a49241df2b37e59f86619091dec2beb9ad8126d7649f0b0edb8fc99eca2499","impliedFormat":1},{"version":"07efd1f649e91967fada88d53ad64b61c1b2853d212f3eaffc946e7e13d03d67","impliedFormat":1},{"version":"6d79a0938f4b89c1c1fee2c3426754929173c8888fdfaab6b6d645269945f7bf","impliedFormat":1},{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true,"impliedFormat":1},{"version":"c6c0bd221bb1e94768e94218f8298e47633495529d60cae7d8da9374247a1cf5","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"e58a3ce75105c1557e34fab7408942d77374e047c16383e80880ed1220166dfa","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"8b96046bf5fb0a815cba6b0880d9f97b7f3a93cf187e8dcfe8e2792e97f38f87","impliedFormat":99},{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"4d979e3c12ffb6497d2b1dc5613130196d986fff764c4526360c0716a162e7e7","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"80781460eca408fe8d2937d9fdbbb780d6aac35f549621e6200c9bee1da5b8fe","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","impliedFormat":1},{"version":"c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"2ed6489ef46eb61442d067c08e87e3db501c0bfb2837eee4041a27bf3e792bb0","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"d60fe6d59d4e19ecc65359490b8535e359ca4b760d2cdb56897ca75d09d41ba3","impliedFormat":1},{"version":"f45a2a8b1777ecb50ed65e1a04bb899d4b676529b7921bd5d69b08573a00c832","impliedFormat":1},{"version":"774b783046ba3d473948132d28a69f52a295b2f378f2939304118ba571b1355e","impliedFormat":1},{"version":"b5734e05c787a40e4f9efe71f16683c5f7dc3bdb0de7c04440c855bd000f8fa7","impliedFormat":1},{"version":"14ba97f0907144771331e1349fdccb5a13526eba0647e6b447e572376d811b6f","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"7165050eddaed878c2d2cd3cafcaf171072ac39e586a048c0603712b5555f536","impliedFormat":1},{"version":"26e629be9bbd94ea1d465af83ce5a3306890520695f07be6eb016f8d734d02be","impliedFormat":99},{"version":"82e687ebd99518bc63ea04b0c3810fb6e50aa6942decd0ca6f7a56d9b9a212a6","impliedFormat":99},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","impliedFormat":1},{"version":"9ae0ca65717af0d3b554a26fd333ad9c78ad3910ad4b22140ff02acb63076927","impliedFormat":99},{"version":"e01ea380015ed698c3c0e2ccd0db72f3fc3ef1abc4519f122aa1c1a8d419a505","impliedFormat":99},{"version":"9e2534be8a9338e750d24acc6076680d49b1643ae993c74510776a92af0c1604","impliedFormat":99},{"version":"c266ab6ddc3c29b4dd77a6f0d0eb4df7dab76d066e385171d88cb97c1120e747","impliedFormat":99},{"version":"e3225dc0bec183183509d290f641786245e6652bc3dce755f7ef404060693c35","impliedFormat":99},{"version":"676ee18819ba49ed188477aa451d24c727273e54e52ce1f285f6e510aa1ad257","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"2cdd50ddc49e2d608ee848fc4ab0db9a2716624fabb4209c7c683d87e54d79c5","impliedFormat":99},{"version":"e431d664338b8470abb1750d699c7dfcebb1a25434559ef85bb96f1e82de5972","impliedFormat":99},{"version":"97c77e6bee16334203cb776e6a2c0ccd4d8b9f1f584a1e3f5aacbf9e8fb618a8","impliedFormat":99},{"version":"e1d50212cc445ba7ecf6900d3093a5e4996c1b5ce26acf96ff368bbe6e2ce136","impliedFormat":99},{"version":"a0e40a10412a69609cbd9b157169c3011b080e66ef46a6370cd1d069a53eb52b","impliedFormat":99},{"version":"d2f8dee457ef7660b604226d471d55d927c3051766bdd80353553837492635c3","impliedFormat":99},{"version":"9f3e99401b5bfdcb2ff75be940e02402b5c23cf8b4f8d0ba552c7d2d97c36568","impliedFormat":99},{"version":"a1da4169aa8ca1bc4349cf44343ffde9b8be27fd5da6137ea627b9e1e5773eba","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"112c59da5f9cf6c54a36f669ece3901164dd3c8d45a7481b21ee96dc7bc814a2","impliedFormat":99},{"version":"85e1eef97ac647e5554834bb073d5bb6bba5c0ba044fdc4232a035ada20c6ec1","impliedFormat":99},{"version":"936563dd150f5972ec0d90c2df4ca83b00b0ab770154a7c5a34ef18645c9cd6b","impliedFormat":99},{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c2bac539238be5c1676655f81b979e85d5ca932ed6bcd8ccf82612388d2f8e4","affectsGlobalScope":true,"impliedFormat":99},{"version":"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","impliedFormat":99},{"version":"95c5341fa0f95514b2eb69a7edd47f984d26517d899e71df388ddce8abb31330","impliedFormat":99},{"version":"4ff150b5a6b35b10f4b243d1b458becbba44f40ab5f0379b08cef7cdeb2f803e","impliedFormat":99},{"version":"9e2aab1f07250281a63148e3119cc145cba997be2a71850a1afb62c8ba25ea5f","impliedFormat":99},{"version":"deb6818c1889c5da9bc37d171db5855ca9b61f0caa84c734d41a678dfa931900","impliedFormat":99},{"version":"b4bb4551aea38feeb6dae35133789e8f00cc507da74c5c8627bc9170269eed5e","impliedFormat":99},{"version":"ac2414a284bdecfd6ab7b87578744ab056cd04dd574b17853cd76830ef5b72f2","impliedFormat":99},{"version":"83d63d0ede869e5c7e5659f678f6ae7082f2246e62b4640318da47e343137feb","impliedFormat":99},{"version":"21bf82cf37616d6a583ca95019daa15e278face4c73ebecda0700027c1bcce23","affectsGlobalScope":true,"impliedFormat":99},{"version":"301a6f33dcf48c99950275a3e6e589fab085bc8fcb9b46a3301051ae8edf3465","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"6ac2f74f8643fc3d0acdc315f8197a8d36900ec80e681fe389297b206b6171a8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99}],"root":[[61,74],192,193],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[87,1],[89,2],[90,3],[91,4],[92,5],[93,6],[94,7],[95,8],[96,9],[97,10],[98,11],[99,12],[100,13],[101,14],[102,15],[103,16],[104,17],[130,18],[105,19],[106,20],[107,21],[108,22],[109,23],[110,24],[111,25],[112,26],[113,27],[114,28],[115,29],[116,30],[117,31],[118,32],[119,33],[120,34],[121,35],[122,36],[123,37],[124,38],[125,39],[126,40],[127,41],[128,42],[182,43],[183,44],[188,45],[86,46],[81,47],[84,48],[176,49],[166,50],[164,51],[165,52],[173,52],[83,53],[85,53],[76,54],[80,55],[175,54],[82,56],[155,57],[153,58],[154,59],[142,60],[143,58],[150,61],[141,62],[146,63],[147,64],[152,65],[158,66],[157,67],[140,68],[148,69],[149,70],[144,71],[151,57],[145,72],[133,73],[132,74],[79,75],[172,76],[169,77],[170,76],[174,78],[162,79],[159,80],[137,81],[135,82],[136,83],[161,84],[178,85],[167,86],[189,87],[179,88],[186,89],[180,90],[184,91],[185,92],[191,93],[74,94],[192,95],[73,96],[62,97],[72,98],[193,99],[67,100],[63,101],[69,102],[64,103],[68,104]],"latestChangedDtsFile":"./dist/model/block.test.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..9e6e4b7 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3563 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +catalogs: + default: + vitest: + specifier: ^2.1.3 + version: 2.1.3 + +importers: + + .: + devDependencies: + '@changesets/changelog-github': + specifier: ^0.5.0 + version: 0.5.0 + '@changesets/cli': + specifier: ^2.27.9 + version: 2.27.9 + '@total-typescript/tsconfig': + specifier: ^1.0.4 + version: 1.0.4 + only-allow: + specifier: ^1.2.1 + version: 1.2.1 + publint: + specifier: ^0.2.12 + version: 0.2.12 + turbo: + specifier: ^2.2.3 + version: 2.2.3 + typescript: + specifier: ~5.6.2 + version: 5.6.3 + + packages/core: + devDependencies: + vitest: + specifier: 'catalog:' + version: 2.1.3 + + web: + dependencies: + '@sjsf/ajv8-validator': + specifier: ^1.1.1 + version: 1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(ajv@8.17.1) + '@sjsf/daisyui-theme': + specifier: ^1.1.1 + version: 1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(daisyui@4.12.13(postcss@8.4.47))(svelte@5.1.3) + '@sjsf/form': + specifier: ^1.1.1 + version: 1.1.2(svelte@5.1.3) + ajv: + specifier: ^8.17.1 + version: 8.17.1 + browser-fs-access: + specifier: ^0.35.0 + version: 0.35.0 + exceljs: + specifier: ^4.4.0 + version: 4.4.0 + lz-string: + specifier: ^1.5.0 + version: 1.5.0 + devDependencies: + '@sveltejs/vite-plugin-svelte': + specifier: ^4.0.0 + version: 4.0.0(svelte@5.1.3)(vite@5.4.10) + '@tsconfig/svelte': + specifier: ^5.0.4 + version: 5.0.4 + autoprefixer: + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.47) + daisyui: + specifier: ^4.12.13 + version: 4.12.13(postcss@8.4.47) + postcss: + specifier: ^8.4.47 + version: 8.4.47 + svelte: + specifier: ^5.0.3 + version: 5.1.3 + svelte-check: + specifier: ^4.0.5 + version: 4.0.5(svelte@5.1.3)(typescript@5.6.3) + tailwindcss: + specifier: ^3.4.14 + version: 3.4.14 + vite: + specifier: 'catalog:' + version: 5.4.10 + vitest: + specifier: 'catalog:' + version: 2.1.3 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + + '@changesets/apply-release-plan@7.0.5': + resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} + + '@changesets/assemble-release-plan@6.0.4': + resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} + + '@changesets/changelog-git@0.2.0': + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + + '@changesets/changelog-github@0.5.0': + resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} + + '@changesets/cli@2.27.9': + resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} + hasBin: true + + '@changesets/config@3.0.3': + resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + + '@changesets/get-github-info@0.6.0': + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + + '@changesets/get-release-plan@4.0.4': + resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.1': + resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.0': + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} + + '@changesets/read@0.6.1': + resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} + + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.0.0': + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@fast-csv/format@4.3.5': + resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==} + + '@fast-csv/parse@4.3.6': + resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + + '@sjsf/ajv8-validator@1.1.2': + resolution: {integrity: sha512-4OQsSDNz3+6qGe7D2R0vwfsbIE6CE6/f4C01NBouPilwDpd+l50ZxFZd0sTcAkTh2KYcFIlcjIw4HNV/cVYwYg==} + peerDependencies: + '@sjsf/form': ^1.1.2 + ajv: ^8.0.0 + + '@sjsf/daisyui-theme@1.1.2': + resolution: {integrity: sha512-VoA2EfcT/ULvv/WcR+jvK37ZWM75a2fu+cGPwYvMwXu3RYHtv66UBTt75tsvF5iBqPDDkjg48LF++wMRS9Zghw==} + peerDependencies: + '@sjsf/form': ^1.1.2 + daisyui: ^4.12.13 + svelte: ^5.0.0 + + '@sjsf/form@1.1.2': + resolution: {integrity: sha512-wQWqGFMBb5v25Qwe4vRKnL8Gh2abjjIOgGXUyiRLAKTyYS6gC1Ybj7+HP3AVLJa85FEvsOaYPIhytHVTmfjhag==} + peerDependencies: + svelte: ^5.0.0 + + '@sveltejs/vite-plugin-svelte-inspector@3.0.1': + resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + + '@sveltejs/vite-plugin-svelte@4.0.0': + resolution: {integrity: sha512-kpVJwF+gNiMEsoHaw+FJL76IYiwBikkxYU83+BpqQLdVMff19KeRKLd2wisS8niNBMJ2omv5gG+iGDDwd8jzag==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + + '@total-typescript/tsconfig@1.0.4': + resolution: {integrity: sha512-fO4ctMPGz1kOFOQ4RCPBRBfMy3gDn+pegUfrGyUFRMv/Rd0ZM3/SHH3hFCYG4u6bPLG8OlmOGcBLDexvyr3A5w==} + + '@tsconfig/svelte@5.0.4': + resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@vitest/expect@2.1.3': + resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} + + '@vitest/mocker@2.1.3': + resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} + peerDependencies: + '@vitest/spy': 2.1.3 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.1.3': + resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} + + '@vitest/runner@2.1.3': + resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} + + '@vitest/snapshot@2.1.3': + resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} + + '@vitest/spy@2.1.3': + resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} + + '@vitest/utils@2.1.3': + resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} + + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browser-fs-access@0.35.0: + resolution: {integrity: sha512-sLoadumpRfsjprP8XzVjpQc0jK8yqHBx0PtUTGYj2fftT+P/t+uyDAQdMgGAPKD011in/O+YYGh7fIs0oG/viw==} + + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001671: + resolution: {integrity: sha512-jocyVaSSfXg2faluE6hrWkMgDOiULBMca4QLtDT39hw1YxaIPHWc1CcTCKkPmHgGH6tKji6ZNbMSmUAvENf2/A==} + + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} + + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + + compute-gcd@1.2.1: + resolution: {integrity: sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==} + + compute-lcm@1.1.2: + resolution: {integrity: sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-selector-tokenizer@0.8.0: + resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + culori@3.3.0: + resolution: {integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + daisyui@4.12.13: + resolution: {integrity: sha512-BnXyQoOByUF/7wSdIKubyhXxbtL8gxwY3u2cNMkxGP39TSVJqMmlItqtpY903fQnLI/NokC+bc+ZV+PEPsppPw==} + engines: {node: '>=16.9.0'} + + dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.46: + resolution: {integrity: sha512-1XDk0Z8/YRgB2t5GeEg8DPK592DLjVmd/5uwAu6c/S4Z0CUwV/RwYqe5GWxQqcoN3bJ5U7hYMiMRPZzpCzSBhQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + es-toolkit@1.26.1: + resolution: {integrity: sha512-E3H14lHWk8JpupVpIRA1gfNF4r953abHTFW+X1Rp7zl7eG37ksuthfEA4FinyVF/Y807vzzfQS1nubeZk2LTVA==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + exceljs@4.4.0: + resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==} + engines: {node: '>=8.3.0'} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-csv@4.3.6: + resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==} + engines: {node: '>=10.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-equals@5.0.1: + resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} + engines: {node: '>=6.0.0'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + + fastparse@1.1.2: + resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@5.0.1: + resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + json-schema-compare@0.2.2: + resolution: {integrity: sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==} + + json-schema-merge-allof@0.8.1: + resolution: {integrity: sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==} + engines: {node: '>=12.0.0'} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.groupby@4.6.0: + resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isnil@4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isundefined@3.0.1: + resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-bundled@2.0.1: + resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + npm-packlist@5.1.3: + resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + only-allow@1.2.1: + resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} + hasBin: true + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + publint@0.2.12: + resolution: {integrity: sha512-YNeUtCVeM4j9nDiTT2OPczmlyzOkIXNtdDZnSuajAxS/nZ6j3t7Vs9SUB4euQNddiltIwu7Tdd3s+hr08fAsMw==} + engines: {node: '>=16'} + hasBin: true + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svelte-check@4.0.5: + resolution: {integrity: sha512-icBTBZ3ibBaywbXUat3cK6hB5Du+Kq9Z8CRuyLmm64XIe2/r+lQcbuBx/IQgsbrC+kT2jQ0weVpZSSRIPwB6jQ==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte@5.1.3: + resolution: {integrity: sha512-Sl8UFHlBvF54aK8MElFvyvaUfPE2REOz6LnhR2pBClCL11MU4qpn4V+KgAggaXxDyrP2iQixvHbtpHqL/zXlSQ==} + engines: {node: '>=18'} + + tailwindcss@3.4.14: + resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + engines: {node: '>=14.0.0'} + hasBin: true + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinypool@1.0.1: + resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + turbo-darwin-64@2.2.3: + resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.2.3: + resolution: {integrity: sha512-+EIMHkuLFqUdJYsA3roj66t9+9IciCajgj+DVek+QezEdOJKcRxlvDOS2BUaeN8kEzVSsNiAGnoysFWYw4K0HA==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.2.3: + resolution: {integrity: sha512-UBhJCYnqtaeOBQLmLo8BAisWbc9v9daL9G8upLR+XGj6vuN/Nz6qUAhverN4Pyej1g4Nt1BhROnj6GLOPYyqxQ==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.2.3: + resolution: {integrity: sha512-hJYT9dN06XCQ3jBka/EWvvAETnHRs3xuO/rb5bESmDfG+d9yQjeTMlhRXKrr4eyIMt6cLDt1LBfyi+6CQ+VAwQ==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.2.3: + resolution: {integrity: sha512-NPrjacrZypMBF31b4HE4ROg4P3nhMBPHKS5WTpMwf7wydZ8uvdEHpESVNMOtqhlp857zbnKYgP+yJF30H3N2dQ==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.2.3: + resolution: {integrity: sha512-fnNrYBCqn6zgKPKLHu4sOkihBI/+0oYFr075duRxqUZ+1aLWTAGfHZLgjVeLh3zR37CVzuerGIPWAEkNhkWEIw==} + cpu: [arm64] + os: [win32] + + turbo@2.2.3: + resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==} + hasBin: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + unzipper@0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + validate.io-array@1.0.6: + resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} + + validate.io-function@1.0.2: + resolution: {integrity: sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==} + + validate.io-integer-array@1.0.0: + resolution: {integrity: sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==} + + validate.io-integer@1.0.5: + resolution: {integrity: sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==} + + validate.io-number@1.0.3: + resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} + + vite-node@2.1.3: + resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.4.10: + resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitefu@1.0.3: + resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + + vitest@2.1.3: + resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.3 + '@vitest/ui': 2.1.3 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true + + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@changesets/apply-release-plan@7.0.5': + dependencies: + '@changesets/config': 3.0.3 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.1 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.6.3 + + '@changesets/assemble-release-plan@6.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.6.3 + + '@changesets/changelog-git@0.2.0': + dependencies: + '@changesets/types': 6.0.0 + + '@changesets/changelog-github@0.5.0': + dependencies: + '@changesets/get-github-info': 0.6.0 + '@changesets/types': 6.0.0 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + + '@changesets/cli@2.27.9': + dependencies: + '@changesets/apply-release-plan': 7.0.5 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.3 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.4 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.2 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.2 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.6.3 + spawndamnit: 2.0.0 + term-size: 2.2.1 + + '@changesets/config@3.0.3': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.2': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.6.3 + + '@changesets/get-github-info@0.6.0': + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@changesets/get-release-plan@4.0.4': + dependencies: + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/config': 3.0.3 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.1': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 2.0.0 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.0': + dependencies: + '@changesets/types': 6.0.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.1': + dependencies: + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.1': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.0.0': {} + + '@changesets/write@0.3.2': + dependencies: + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@fast-csv/format@4.3.5': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + + '@fast-csv/parse@4.3.6': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.groupby: 4.6.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + lodash.isundefined: 3.0.1 + lodash.uniq: 4.5.0 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.26.0 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.26.0 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + + '@sjsf/ajv8-validator@1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(ajv@8.17.1)': + dependencies: + '@sjsf/form': 1.1.2(svelte@5.1.3) + ajv: 8.17.1 + + '@sjsf/daisyui-theme@1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(daisyui@4.12.13(postcss@8.4.47))(svelte@5.1.3)': + dependencies: + '@sjsf/form': 1.1.2(svelte@5.1.3) + daisyui: 4.12.13(postcss@8.4.47) + svelte: 5.1.3 + + '@sjsf/form@1.1.2(svelte@5.1.3)': + dependencies: + es-toolkit: 1.26.1 + fast-equals: 5.0.1 + json-schema-merge-allof: 0.8.1 + jsonpointer: 5.0.1 + svelte: 5.1.3 + + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.3)(vite@5.4.10))(svelte@5.1.3)(vite@5.4.10)': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.3)(vite@5.4.10) + debug: 4.3.7 + svelte: 5.1.3 + vite: 5.4.10 + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.3)(vite@5.4.10)': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.3)(vite@5.4.10))(svelte@5.1.3)(vite@5.4.10) + debug: 4.3.7 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.12 + svelte: 5.1.3 + vite: 5.4.10 + vitefu: 1.0.3(vite@5.4.10) + transitivePeerDependencies: + - supports-color + + '@total-typescript/tsconfig@1.0.4': {} + + '@tsconfig/svelte@5.0.4': {} + + '@types/estree@1.0.6': {} + + '@types/node@12.20.55': {} + + '@types/node@14.18.63': {} + + '@vitest/expect@2.1.3': + dependencies: + '@vitest/spy': 2.1.3 + '@vitest/utils': 2.1.3 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(vite@5.4.10)': + dependencies: + '@vitest/spy': 2.1.3 + estree-walker: 3.0.3 + magic-string: 0.30.12 + optionalDependencies: + vite: 5.4.10 + + '@vitest/pretty-format@2.1.3': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.1.3': + dependencies: + '@vitest/utils': 2.1.3 + pathe: 1.1.2 + + '@vitest/snapshot@2.1.3': + dependencies: + '@vitest/pretty-format': 2.1.3 + magic-string: 0.30.12 + pathe: 1.1.2 + + '@vitest/spy@2.1.3': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@2.1.3': + dependencies: + '@vitest/pretty-format': 2.1.3 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + acorn-typescript@1.4.13(acorn@8.13.0): + dependencies: + acorn: 8.13.0 + + acorn@8.13.0: {} + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + aria-query@5.3.2: {} + + array-union@2.1.0: {} + + assertion-error@2.0.1: {} + + async@3.2.6: {} + + autoprefixer@10.4.20(postcss@8.4.47): + dependencies: + browserslist: 4.24.2 + caniuse-lite: 1.0.30001671 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + big-integer@1.6.52: {} + + binary-extensions@2.3.0: {} + + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + bluebird@3.4.7: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browser-fs-access@0.35.0: {} + + browserslist@4.24.2: + dependencies: + caniuse-lite: 1.0.30001671 + electron-to-chromium: 1.5.46 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + + buffer-crc32@0.2.13: {} + + buffer-indexof-polyfill@1.0.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffers@0.1.1: {} + + cac@6.7.14: {} + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001671: {} + + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + + chardet@0.7.0: {} + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + + ci-info@3.9.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@4.1.1: {} + + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + compute-gcd@1.2.1: + dependencies: + validate.io-array: 1.0.6 + validate.io-function: 1.0.2 + validate.io-integer-array: 1.0.0 + + compute-lcm@1.1.2: + dependencies: + compute-gcd: 1.2.1 + validate.io-array: 1.0.6 + validate.io-function: 1.0.2 + validate.io-integer-array: 1.0.0 + + concat-map@0.0.1: {} + + core-util-is@1.0.3: {} + + crc-32@1.2.2: {} + + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + cross-spawn@5.1.0: + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-selector-tokenizer@0.8.0: + dependencies: + cssesc: 3.0.0 + fastparse: 1.1.2 + + cssesc@3.0.0: {} + + culori@3.3.0: {} + + daisyui@4.12.13(postcss@8.4.47): + dependencies: + css-selector-tokenizer: 0.8.0 + culori: 3.3.0 + picocolors: 1.1.1 + postcss-js: 4.0.1(postcss@8.4.47) + transitivePeerDependencies: + - postcss + + dataloader@1.4.0: {} + + dayjs@1.11.13: {} + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + deep-eql@5.0.2: {} + + deepmerge@4.3.1: {} + + detect-indent@6.1.0: {} + + didyoumean@1.2.2: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + dotenv@8.6.0: {} + + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.46: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + es-toolkit@1.26.1: {} + + esbuild@0.21.5: + 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 + + escalade@3.2.0: {} + + esm-env@1.0.0: {} + + esprima@4.0.1: {} + + esrap@1.2.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + exceljs@4.4.0: + dependencies: + archiver: 5.3.2 + dayjs: 1.11.13 + fast-csv: 4.3.6 + jszip: 3.10.1 + readable-stream: 3.6.2 + saxes: 5.0.1 + tmp: 0.2.3 + unzipper: 0.10.14 + uuid: 8.3.2 + + extendable-error@0.1.7: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-csv@4.3.6: + dependencies: + '@fast-csv/format': 4.3.5 + '@fast-csv/parse': 4.3.6 + + fast-deep-equal@3.1.3: {} + + fast-equals@5.0.1: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-uri@3.0.3: {} + + fastparse@1.1.2: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fdir@6.4.2: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fraction.js@4.3.7: {} + + fs-constants@1.0.0: {} + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + + function-bind@1.1.2: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + human-id@1.0.2: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore-walk@5.0.1: + dependencies: + minimatch: 5.1.6 + + ignore@5.3.2: {} + + immediate@3.0.6: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.6 + + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-windows@1.0.2: {} + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.6: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + json-schema-compare@0.2.2: + dependencies: + lodash: 4.17.21 + + json-schema-merge-allof@0.8.1: + dependencies: + compute-lcm: 1.1.2 + json-schema-compare: 0.2.2 + lodash: 4.17.21 + + json-schema-traverse@1.0.0: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonpointer@5.0.1: {} + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + kleur@4.1.5: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + listenercount@1.0.1: {} + + locate-character@3.0.0: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.flatten@4.4.0: {} + + lodash.groupby@4.6.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isequal@4.5.0: {} + + lodash.isfunction@3.0.9: {} + + lodash.isnil@4.0.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isundefined@3.0.1: {} + + lodash.startcase@4.4.0: {} + + lodash.union@4.6.0: {} + + lodash.uniq@4.5.0: {} + + lodash@4.17.21: {} + + loupe@3.1.2: {} + + lru-cache@10.4.3: {} + + lru-cache@4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + + lz-string@1.5.0: {} + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mri@1.2.0: {} + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-bundled@2.0.1: + dependencies: + npm-normalize-package-bin: 2.0.0 + + npm-normalize-package-bin@2.0.0: {} + + npm-packlist@5.1.3: + dependencies: + glob: 8.1.0 + ignore-walk: 5.0.1 + npm-bundled: 2.0.1 + npm-normalize-package-bin: 2.0.0 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + only-allow@1.2.1: + dependencies: + which-pm-runs: 1.1.0 + + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-map@2.1.0: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.2: {} + + pako@1.0.11: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathval@2.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pirates@4.0.6: {} + + postcss-import@15.1.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.47): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.47 + + postcss-load-config@4.0.2(postcss@8.4.47): + dependencies: + lilconfig: 3.1.2 + yaml: 2.6.0 + optionalDependencies: + postcss: 8.4.47 + + postcss-nested@6.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prettier@2.8.8: {} + + process-nextick-args@2.0.1: {} + + pseudomap@1.0.2: {} + + publint@0.2.12: + dependencies: + npm-packlist: 5.1.3 + picocolors: 1.1.1 + sade: 1.8.1 + + queue-microtask@1.2.3: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + 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 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.0.2: {} + + regenerator-runtime@0.14.1: {} + + require-from-string@2.0.2: {} + + resolve-from@5.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + saxes@5.0.1: + dependencies: + xmlchars: 2.2.0 + + semver@7.6.3: {} + + setimmediate@1.0.5: {} + + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@1.0.0: {} + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + source-map-js@1.2.1: {} + + spawndamnit@2.0.0: + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + + sprintf-js@1.0.3: {} + + stackback@0.0.2: {} + + std-env@3.7.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-preserve-symlinks-flag@1.0.0: {} + + svelte-check@4.0.5(svelte@5.1.3)(typescript@5.6.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + chokidar: 4.0.1 + fdir: 6.4.2 + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.1.3 + typescript: 5.6.3 + transitivePeerDependencies: + - picomatch + + svelte@5.1.3: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.13.0 + acorn-typescript: 1.4.13(acorn@8.13.0) + aria-query: 5.3.2 + axobject-query: 4.1.0 + esm-env: 1.0.0 + esrap: 1.2.2 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.12 + zimmerframe: 1.1.2 + + tailwindcss@3.4.14: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + term-size@2.2.1: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinybench@2.9.0: {} + + tinyexec@0.3.1: {} + + tinypool@1.0.1: {} + + tinyrainbow@1.2.0: {} + + tinyspy@3.0.2: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.2.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@0.0.3: {} + + traverse@0.3.9: {} + + ts-interface-checker@0.1.13: {} + + turbo-darwin-64@2.2.3: + optional: true + + turbo-darwin-arm64@2.2.3: + optional: true + + turbo-linux-64@2.2.3: + optional: true + + turbo-linux-arm64@2.2.3: + optional: true + + turbo-windows-64@2.2.3: + optional: true + + turbo-windows-arm64@2.2.3: + optional: true + + turbo@2.2.3: + optionalDependencies: + turbo-darwin-64: 2.2.3 + turbo-darwin-arm64: 2.2.3 + turbo-linux-64: 2.2.3 + turbo-linux-arm64: 2.2.3 + turbo-windows-64: 2.2.3 + turbo-windows-arm64: 2.2.3 + + typescript@5.6.3: {} + + universalify@0.1.2: {} + + unzipper@0.10.14: + dependencies: + big-integer: 1.6.52 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + util-deprecate@1.0.2: {} + + uuid@8.3.2: {} + + validate.io-array@1.0.6: {} + + validate.io-function@1.0.2: {} + + validate.io-integer-array@1.0.0: + dependencies: + validate.io-array: 1.0.6 + validate.io-integer: 1.0.5 + + validate.io-integer@1.0.5: + dependencies: + validate.io-number: 1.0.3 + + validate.io-number@1.0.3: {} + + vite-node@2.1.3: + dependencies: + cac: 6.7.14 + debug: 4.3.7 + pathe: 1.1.2 + vite: 5.4.10 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite@5.4.10: + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.0 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@1.0.3(vite@5.4.10): + optionalDependencies: + vite: 5.4.10 + + vitest@2.1.3: + dependencies: + '@vitest/expect': 2.1.3 + '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(vite@5.4.10) + '@vitest/pretty-format': 2.1.3 + '@vitest/runner': 2.1.3 + '@vitest/snapshot': 2.1.3 + '@vitest/spy': 2.1.3 + '@vitest/utils': 2.1.3 + chai: 5.1.2 + debug: 4.3.7 + magic-string: 0.30.12 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.10 + vite-node: 2.1.3 + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-pm-runs@1.1.0: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + xmlchars@2.2.0: {} + + yallist@2.1.2: {} + + yaml@2.6.0: {} + + zimmerframe@1.1.2: {} + + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..80c2f1b --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,7 @@ +packages: + - "web" + - "legacy" + +catalog: + vite: ^5.4.9 + vitest: ^2.1.3 \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json deleted file mode 100644 index d50dff7..0000000 --- a/web/package-lock.json +++ /dev/null @@ -1,4514 +0,0 @@ -{ - "name": "web", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "web", - "version": "0.0.0", - "dependencies": { - "@sjsf/ajv8-validator": "^1.1.1", - "@sjsf/daisyui-theme": "^1.1.1", - "@sjsf/form": "^1.1.1", - "ajv": "^8.17.1", - "browser-fs-access": "^0.35.0", - "exceljs": "^4.4.0", - "lz-string": "^1.5.0" - }, - "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^4.0.0", - "@tsconfig/svelte": "^5.0.4", - "autoprefixer": "^10.4.20", - "daisyui": "^4.12.13", - "postcss": "^8.4.47", - "svelte": "^5.0.3", - "svelte-check": "^4.0.5", - "tailwindcss": "^3.4.14", - "tslib": "^2.8.0", - "typescript": "~5.6.2", - "vite": "^5.4.9", - "vitest": "^2.1.3" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@fast-csv/format": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", - "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "license": "MIT", - "dependencies": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isboolean": "^3.0.3", - "lodash.isequal": "^4.5.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0" - } - }, - "node_modules/@fast-csv/format/node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", - "license": "MIT" - }, - "node_modules/@fast-csv/parse": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", - "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "license": "MIT", - "dependencies": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.groupby": "^4.6.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0", - "lodash.isundefined": "^3.0.1", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/@fast-csv/parse/node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sjsf/ajv8-validator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sjsf/ajv8-validator/-/ajv8-validator-1.1.2.tgz", - "integrity": "sha512-4OQsSDNz3+6qGe7D2R0vwfsbIE6CE6/f4C01NBouPilwDpd+l50ZxFZd0sTcAkTh2KYcFIlcjIw4HNV/cVYwYg==", - "license": "MIT", - "peerDependencies": { - "@sjsf/form": "^1.1.2", - "ajv": "^8.0.0" - } - }, - "node_modules/@sjsf/daisyui-theme": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sjsf/daisyui-theme/-/daisyui-theme-1.1.2.tgz", - "integrity": "sha512-VoA2EfcT/ULvv/WcR+jvK37ZWM75a2fu+cGPwYvMwXu3RYHtv66UBTt75tsvF5iBqPDDkjg48LF++wMRS9Zghw==", - "license": "MIT", - "peerDependencies": { - "@sjsf/form": "^1.1.2", - "daisyui": "^4.12.13", - "svelte": "^5.0.0" - } - }, - "node_modules/@sjsf/form": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sjsf/form/-/form-1.1.2.tgz", - "integrity": "sha512-wQWqGFMBb5v25Qwe4vRKnL8Gh2abjjIOgGXUyiRLAKTyYS6gC1Ybj7+HP3AVLJa85FEvsOaYPIhytHVTmfjhag==", - "license": "(MIT AND Apache-2.0)", - "dependencies": { - "es-toolkit": "^1.25.2", - "fast-equals": "^5.0.1", - "json-schema-merge-allof": "^0.8.1", - "jsonpointer": "^5.0.1" - }, - "peerDependencies": { - "svelte": "^5.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-4.0.0.tgz", - "integrity": "sha512-kpVJwF+gNiMEsoHaw+FJL76IYiwBikkxYU83+BpqQLdVMff19KeRKLd2wisS8niNBMJ2omv5gG+iGDDwd8jzag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^3.0.0-next.0||^3.0.0", - "debug": "^4.3.7", - "deepmerge": "^4.3.1", - "kleur": "^4.1.5", - "magic-string": "^0.30.12", - "vitefu": "^1.0.3" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22" - }, - "peerDependencies": { - "svelte": "^5.0.0-next.96 || ^5.0.0", - "vite": "^5.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-3.0.1.tgz", - "integrity": "sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.7" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^4.0.0-next.0||^4.0.0", - "svelte": "^5.0.0-next.96 || ^5.0.0", - "vite": "^5.0.0" - } - }, - "node_modules/@tsconfig/svelte": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.4.tgz", - "integrity": "sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.7.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.9.tgz", - "integrity": "sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@vitest/expect": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.3.tgz", - "integrity": "sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "2.1.3", - "@vitest/utils": "2.1.3", - "chai": "^5.1.1", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.3.tgz", - "integrity": "sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "2.1.3", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.11" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/spy": "2.1.3", - "msw": "^2.3.5", - "vite": "^5.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.3.tgz", - "integrity": "sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.3.tgz", - "integrity": "sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "2.1.3", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.3.tgz", - "integrity": "sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.1.3", - "magic-string": "^0.30.11", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.3.tgz", - "integrity": "sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^3.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.3.tgz", - "integrity": "sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.1.3", - "loupe": "^3.1.1", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/acorn": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", - "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-typescript": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", - "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", - "license": "MIT", - "peerDependencies": { - "acorn": ">=8.9.0" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "license": "MIT", - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "license": "MIT", - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "license": "Unlicense", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "license": "MIT", - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-fs-access": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/browser-fs-access/-/browser-fs-access-0.35.0.tgz", - "integrity": "sha512-sLoadumpRfsjprP8XzVjpQc0jK8yqHBx0PtUTGYj2fftT+P/t+uyDAQdMgGAPKD011in/O+YYGh7fIs0oG/viw==", - "license": "Apache-2.0" - }, - "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001669", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", - "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "license": "MIT/X11", - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/compute-gcd": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", - "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/compute-lcm": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", - "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", - "dependencies": { - "compute-gcd": "^1.2.1", - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-selector-tokenizer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz", - "integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/culori": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/culori/-/culori-3.3.0.tgz", - "integrity": "sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/daisyui": { - "version": "4.12.13", - "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.12.13.tgz", - "integrity": "sha512-BnXyQoOByUF/7wSdIKubyhXxbtL8gxwY3u2cNMkxGP39TSVJqMmlItqtpY903fQnLI/NokC+bc+ZV+PEPsppPw==", - "license": "MIT", - "dependencies": { - "css-selector-tokenizer": "^0.8", - "culori": "^3", - "picocolors": "^1", - "postcss-js": "^4" - }, - "engines": { - "node": ">=16.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/daisyui" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "license": "BSD-3-Clause", - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz", - "integrity": "sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-toolkit": { - "version": "1.25.2", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.25.2.tgz", - "integrity": "sha512-zEh2aJUwnlDwashas6JN+oFVN08F2s2qBaEwTo6EOACjO9PdPH4eGRBZC2JP/3SDLeANiMTEtVnOGhoG7GwZcA==", - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "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" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/esm-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", - "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", - "license": "MIT" - }, - "node_modules/esrap": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz", - "integrity": "sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15", - "@types/estree": "^1.0.1" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/exceljs": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.4.0.tgz", - "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", - "license": "MIT", - "dependencies": { - "archiver": "^5.0.0", - "dayjs": "^1.8.34", - "fast-csv": "^4.3.1", - "jszip": "^3.10.1", - "readable-stream": "^3.6.0", - "saxes": "^5.0.1", - "tmp": "^0.2.0", - "unzipper": "^0.10.11", - "uuid": "^8.3.0" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/fast-csv": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", - "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "license": "MIT", - "dependencies": { - "@fast-csv/format": "4.3.5", - "@fast-csv/parse": "4.3.6" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-equals": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", - "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "license": "BSD-3-Clause" - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fdir": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", - "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/json-schema-compare": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", - "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.4" - } - }, - "node_modules/json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", - "license": "MIT", - "dependencies": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "license": "ISC" - }, - "node_modules/locate-character": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "license": "MIT" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "license": "MIT" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "license": "MIT" - }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "license": "MIT" - }, - "node_modules/lodash.groupby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "license": "MIT" - }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "license": "MIT" - }, - "node_modules/lodash.isnil": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", - "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==", - "license": "MIT" - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/loupe": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)" - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svelte": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.1.0.tgz", - "integrity": "sha512-qD0pUvL3P26Vx+K1VodZROSu7MjDHFDunEVZ+2d3LUDWHyYI87AJFOIws0HufKWHDgXbPO4FCSugmysnX4LDwA==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@jridgewell/sourcemap-codec": "^1.5.0", - "@types/estree": "^1.0.5", - "acorn": "^8.12.1", - "acorn-typescript": "^1.4.13", - "aria-query": "^5.3.1", - "axobject-query": "^4.1.0", - "esm-env": "^1.0.0", - "esrap": "^1.2.2", - "is-reference": "^3.0.2", - "locate-character": "^3.0.0", - "magic-string": "^0.30.11", - "zimmerframe": "^1.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/svelte-check": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.5.tgz", - "integrity": "sha512-icBTBZ3ibBaywbXUat3cK6hB5Du+Kq9Z8CRuyLmm64XIe2/r+lQcbuBx/IQgsbrC+kT2jQ0weVpZSSRIPwB6jQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "chokidar": "^4.0.1", - "fdir": "^6.2.0", - "picocolors": "^1.0.0", - "sade": "^1.7.4" - }, - "bin": { - "svelte-check": "bin/svelte-check" - }, - "engines": { - "node": ">= 18.0.0" - }, - "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.0", - "typescript": ">=5.0.0" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.14", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", - "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", - "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinypool": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", - "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/tinyrainbow": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "license": "MIT", - "engines": { - "node": ">=14.14" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "license": "MIT/X11", - "engines": { - "node": "*" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", - "dev": true, - "license": "0BSD" - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "license": "MIT", - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", - "license": "MIT" - }, - "node_modules/validate.io-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", - "dependencies": { - "validate.io-number": "^1.0.3" - } - }, - "node_modules/validate.io-integer-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-integer": "^1.0.4" - } - }, - "node_modules/validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" - }, - "node_modules/vite": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", - "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.3.tgz", - "integrity": "sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.6", - "pathe": "^1.1.2", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vitefu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.3.tgz", - "integrity": "sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==", - "dev": true, - "license": "MIT", - "workspaces": [ - "tests/deps/*", - "tests/projects/*" - ], - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/vitest": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.3.tgz", - "integrity": "sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "2.1.3", - "@vitest/mocker": "2.1.3", - "@vitest/pretty-format": "^2.1.3", - "@vitest/runner": "2.1.3", - "@vitest/snapshot": "2.1.3", - "@vitest/spy": "2.1.3", - "@vitest/utils": "2.1.3", - "chai": "^5.1.1", - "debug": "^4.3.6", - "magic-string": "^0.30.11", - "pathe": "^1.1.2", - "std-env": "^3.7.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.0", - "tinypool": "^1.0.0", - "tinyrainbow": "^1.2.0", - "vite": "^5.0.0", - "vite-node": "2.1.3", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.3", - "@vitest/ui": "2.1.3", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT" - }, - "node_modules/yaml": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", - "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/zimmerframe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", - "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", - "license": "MIT" - }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "license": "MIT", - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "license": "MIT", - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/zip-stream/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/zip-stream/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - } - } -} diff --git a/web/package.json b/web/package.json index ec1cc05..a1585db 100644 --- a/web/package.json +++ b/web/package.json @@ -18,10 +18,8 @@ "svelte": "^5.0.3", "svelte-check": "^4.0.5", "tailwindcss": "^3.4.14", - "tslib": "^2.8.0", - "typescript": "~5.6.2", - "vite": "^5.4.9", - "vitest": "^2.1.3" + "vite": "catalog:", + "vitest": "catalog:" }, "dependencies": { "@sjsf/ajv8-validator": "^1.1.1", diff --git a/web/vite.config.ts b/web/vite.config.ts index 56555ae..1ec6d1f 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -5,7 +5,7 @@ import { svelte } from "@sveltejs/vite-plugin-svelte"; // https://vite.dev/config/ export default defineConfig({ - base: "/json-to-table/", + base: "/json-table/", plugins: [svelte()], resolve: { alias: { From 3ae57906659e12d2b11ebb70de2a2a52628a3504 Mon Sep 17 00:00:00 2001 From: Krasilnikov Roman Date: Sat, 26 Oct 2024 14:17:41 +0300 Subject: [PATCH 2/4] Add block-to-xlsx package --- .gitignore | 4 +- mkfilex | 22 +- package.json | 9 +- packages/block-to-xlsx/.gitignore | 24 ++ packages/block-to-xlsx/package.json | 44 +++ .../block-to-xlsx/src/block-to-xlsx.test.ts | 171 ++++++++++++ packages/block-to-xlsx/src/block-to-xlsx.ts | 141 ++++++++++ packages/block-to-xlsx/tsconfig.json | 15 ++ packages/block-to-xlsx/tsconfig.tsbuildinfo | 1 + packages/core/package.json | 34 ++- .../src/ascii-to-block/ascii-to-block.test.ts | 45 ++++ .../core/src/ascii-to-block/ascii-to-block.ts | 87 ++++++ packages/core/src/ascii-to-block/index.ts | 2 + packages/core/src/ascii-to-block/model.ts | 106 ++++++++ packages/core/src/block-matrix.ts | 90 +++++++ .../__fixtures__/different-headers.json | 0 .../src/block-to-ascii/block-to-ascii.test.ts | 122 +++++++++ .../core/src/block-to-ascii/block-to-ascii.ts | 246 +++++++++++++++++ packages/core/src/block-to-ascii/index.ts | 1 + packages/core/src/block-to-html.ts | 31 +++ .../core/src/{model => block}/block.test.ts | 2 +- packages/core/src/{model => block}/block.ts | 3 +- packages/core/src/block/index.ts | 2 + packages/core/src/{model => block}/row.ts | 2 +- .../core/src/{model/core.ts => json-table.ts} | 41 +-- packages/core/src/json-to-table.test.ts | 250 ------------------ .../__fixtures__/different-headers.json | 11 + .../__fixtures__/empty-arrays.json | 0 .../__fixtures__/parsing-error.json | 0 .../simple-headers-duplication.json | 0 .../simple-indexes-deduplication.json | 0 .../__fixtures__/uniq-headers.json | 0 .../__fixtures__/wrong-sizes.json | 0 .../core/src/{ => json-to-table}/index.ts | 2 +- .../src/json-to-table/json-to-table.test.ts | 245 +++++++++++++++++ .../src/{ => json-to-table}/json-to-table.ts | 36 +-- .../json-to-table/properties-stabilizer.ts | 33 +++ .../proportional-resize-guard.ts | 8 + .../src/{model => json-to-table}/table.ts | 29 +- packages/core/src/lib/array.ts | 52 ---- packages/core/src/lib/guards.ts | 43 --- packages/core/src/lib/html.ts | 14 + packages/core/src/lib/json.ts | 35 +-- packages/core/src/lib/matrix.ts | 34 +++ packages/core/src/lib/object.ts | 36 +-- packages/core/src/model/index.ts | 4 - packages/core/tsconfig.json | 9 +- packages/core/tsconfig.tsbuildinfo | 2 +- pnpm-lock.yaml | 22 ++ pnpm-workspace.yaml | 2 +- turbo.json | 37 +++ web/package.json | 4 +- 52 files changed, 1679 insertions(+), 474 deletions(-) create mode 100644 packages/block-to-xlsx/.gitignore create mode 100644 packages/block-to-xlsx/package.json create mode 100644 packages/block-to-xlsx/src/block-to-xlsx.test.ts create mode 100644 packages/block-to-xlsx/src/block-to-xlsx.ts create mode 100644 packages/block-to-xlsx/tsconfig.json create mode 100644 packages/block-to-xlsx/tsconfig.tsbuildinfo create mode 100644 packages/core/src/ascii-to-block/ascii-to-block.test.ts create mode 100644 packages/core/src/ascii-to-block/ascii-to-block.ts create mode 100644 packages/core/src/ascii-to-block/index.ts create mode 100644 packages/core/src/ascii-to-block/model.ts create mode 100644 packages/core/src/block-matrix.ts rename packages/core/src/{ => block-to-ascii}/__fixtures__/different-headers.json (100%) create mode 100644 packages/core/src/block-to-ascii/block-to-ascii.test.ts create mode 100644 packages/core/src/block-to-ascii/block-to-ascii.ts create mode 100644 packages/core/src/block-to-ascii/index.ts create mode 100644 packages/core/src/block-to-html.ts rename packages/core/src/{model => block}/block.test.ts (99%) rename packages/core/src/{model => block}/block.ts (99%) create mode 100644 packages/core/src/block/index.ts rename packages/core/src/{model => block}/row.ts (94%) rename packages/core/src/{model/core.ts => json-table.ts} (61%) delete mode 100644 packages/core/src/json-to-table.test.ts create mode 100644 packages/core/src/json-to-table/__fixtures__/different-headers.json rename packages/core/src/{ => json-to-table}/__fixtures__/empty-arrays.json (100%) rename packages/core/src/{ => json-to-table}/__fixtures__/parsing-error.json (100%) rename packages/core/src/{ => json-to-table}/__fixtures__/simple-headers-duplication.json (100%) rename packages/core/src/{ => json-to-table}/__fixtures__/simple-indexes-deduplication.json (100%) rename packages/core/src/{ => json-to-table}/__fixtures__/uniq-headers.json (100%) rename packages/core/src/{ => json-to-table}/__fixtures__/wrong-sizes.json (100%) rename packages/core/src/{ => json-to-table}/index.ts (51%) create mode 100644 packages/core/src/json-to-table/json-to-table.test.ts rename packages/core/src/{ => json-to-table}/json-to-table.ts (89%) create mode 100644 packages/core/src/json-to-table/properties-stabilizer.ts create mode 100644 packages/core/src/json-to-table/proportional-resize-guard.ts rename packages/core/src/{model => json-to-table}/table.ts (94%) create mode 100644 packages/core/src/lib/html.ts create mode 100644 packages/core/src/lib/matrix.ts delete mode 100644 packages/core/src/model/index.ts create mode 100644 turbo.json diff --git a/.gitignore b/.gitignore index 2b1d02e..1be3199 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .direnv/ -node_modules \ No newline at end of file +node_modules + +.turbo diff --git a/mkfilex b/mkfilex index 27750d8..993435b 100644 --- a/mkfilex +++ b/mkfilex @@ -1,9 +1,13 @@ #!/usr/bin/bash -xe -# t/: -# table: -# bun test src/lib/json-to-table.test.ts -# bun test +t: + pnpm run test + +b: + pnpm run build + +d: + pnpm run dev w/: pushd web @@ -19,4 +23,12 @@ c/: pnpm run build t: pnpm run test - popd \ No newline at end of file + popd + +x/: + pushd packages/block-to-xlsx + b: + pnpm run build + t: + pnpm run test + popd diff --git a/package.json b/package.json index 39392f7..7e163d3 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,14 @@ "packageManager": "pnpm@9.12.1", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "preinstall": "npx only-allow pnpm", + "check": "turbo run check", + "dev": "turbo run dev", + "test": "turbo run test", + "build": "turbo run build", + "preview": "turbo run preview", + "ci:build": "turbo run build test", + "ci:version": "changeset version && pnpm install --no-frozen-lockfile" }, "keywords": [], "devDependencies": { diff --git a/packages/block-to-xlsx/.gitignore b/packages/block-to-xlsx/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/packages/block-to-xlsx/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/block-to-xlsx/package.json b/packages/block-to-xlsx/package.json new file mode 100644 index 0000000..ee1ac68 --- /dev/null +++ b/packages/block-to-xlsx/package.json @@ -0,0 +1,44 @@ +{ + "name": "@json-table/block-to-xlsx", + "version": "0.0.0", + "description": "Library for creating tables from JSON", + "license": "MIT", + "keywords": [ + "json", + "table", + "xlsx" + ], + "type": "module", + "files": [ + "dist", + "!dist/**/*.test.*", + "!dist/**/*.spec.*" + ], + "publishConfig": { + "provenance": true + }, + "repository": { + "type": "git", + "url": "https://github.com/x0k/json-table.git", + "directory": "packages/block-to-xlsx" + }, + "bugs": "https://github.com/x0k/json-table/issues", + "homepage": "https://x0k.github.io/json-table/", + "scripts": { + "build": "tsc", + "test": "vitest --run" + }, + "exports": { + ".": { + "types": "./dist/block-to-xlsx.d.ts", + "import": "./dist/block-to-xlsx.js" + } + }, + "peerDependencies": { + "exceljs": "^4.4.0", + "@json-table/core": "workspace:^0.0.0" + }, + "devDependencies": { + "vitest": "catalog:" + } +} diff --git a/packages/block-to-xlsx/src/block-to-xlsx.test.ts b/packages/block-to-xlsx/src/block-to-xlsx.test.ts new file mode 100644 index 0000000..3c6bf00 --- /dev/null +++ b/packages/block-to-xlsx/src/block-to-xlsx.test.ts @@ -0,0 +1,171 @@ +import { describe, expect, it } from "vitest"; + +import { max, sum } from "@json-table/core/lib/math"; +import { type Block, CellType } from "@json-table/core"; + +import { calculateSheetData } from "./block-to-xlsx"; + +describe("json-table-xlsx", () => { + describe("calculateSheetData", () => { + it("Should calculate sheet data", () => { + const table: Block = { + width: 4, + height: 3, + data: { + rows: [ + { + cells: [ + { + height: 1, + width: 1, + value: "a", + type: CellType.Header, + }, + { + height: 1, + width: 1, + value: "b", + type: CellType.Header, + }, + { + height: 1, + width: 2, + value: "c", + type: CellType.Header, + }, + ], + columns: [0, 1, 2], + }, + { + cells: [ + { + height: 2, + width: 1, + value: 1, + type: CellType.Value, + }, + { + height: 2, + width: 1, + value: 2, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: "aa", + type: CellType.Header, + }, + { + height: 1, + width: 1, + value: "bb", + type: CellType.Header, + }, + ], + columns: [0, 1, 2, 3], + }, + { + cells: [ + { + height: 1, + width: 1, + value: 11, + type: CellType.Value, + }, + { + height: 1, + width: 1, + value: 22, + type: CellType.Value, + }, + ], + columns: [2, 3], + }, + ], + indexes: [0, 1, 2], + }, + }; + const expected = { + widths: [8, 8, 8, 8], + heights: [22, 22, 22], + cells: [ + { + height: 1, + width: 1, + type: "header", + value: { value: "a", row: 1, col: 1 }, + }, + { + height: 1, + width: 1, + type: "header", + value: { value: "b", row: 1, col: 2 }, + }, + { + height: 1, + width: 2, + type: "header", + value: { value: "c", row: 1, col: 3 }, + }, + { + height: 2, + width: 1, + type: "value", + value: { value: 1, row: 2, col: 1 }, + }, + { + height: 2, + width: 1, + type: "value", + value: { value: 2, row: 2, col: 2 }, + }, + { + height: 1, + width: 1, + type: "header", + value: { value: "aa", row: 2, col: 3 }, + }, + { + height: 1, + width: 1, + type: "header", + value: { value: "bb", row: 2, col: 4 }, + }, + { + height: 1, + width: 1, + type: "value", + value: { value: 11, row: 3, col: 3 }, + }, + { + height: 1, + width: 1, + type: "value", + value: { value: 22, row: 3, col: 4 }, + }, + ], + }; + expect( + calculateSheetData(table, { + columnWidth: (column) => { + const counts = column.map((cell) => cell.count); + return Math.max( + Math.ceil( + (counts.reduce(sum) / table.height + counts.reduce(max)) / 2 + ), + 8 + ); + }, + rowHeight: (row) => + Math.max( + Math.ceil( + row.map(({ count }) => count).reduce(sum) / table.width + ), + 22 + ), + }) + ).toEqual(expected); + }); + }); +}); diff --git a/packages/block-to-xlsx/src/block-to-xlsx.ts b/packages/block-to-xlsx/src/block-to-xlsx.ts new file mode 100644 index 0000000..34f0fe0 --- /dev/null +++ b/packages/block-to-xlsx/src/block-to-xlsx.ts @@ -0,0 +1,141 @@ +import { + type Cell as ExcelCell, + type Column, + type Row, + type Worksheet, +} from "exceljs"; + +import type { Matrix } from "@json-table/core/lib/matrix"; +import { array } from "@json-table/core/lib/array"; +import { max, sum } from "@json-table/core/lib/math"; +import type { JSONPrimitive } from "@json-table/core/lib/json"; +import { type Block, type Cell, CellType } from "@json-table/core"; +import { createMatrix, fromMatrix } from "@json-table/core/block-matrix"; + +export interface MatrixData { + cell: Cell; + count: number; +} + +export interface CalculateSheetDataOptions { + columnWidth: ( + column: MatrixData[], + columnIndex: number, + matrix: Matrix, + table: Block + ) => number; + rowHeight: ( + row: MatrixData[], + rowIndex: number, + matrix: Matrix, + table: Block + ) => number; +} + +export function calculateSheetData( + table: Block, + { columnWidth, rowHeight }: CalculateSheetDataOptions +) { + const { width } = table; + const matrix = createMatrix(table, (cell) => ({ + cell, + count: + typeof cell.value === "string" || typeof cell.value === "number" + ? String(cell.value).length / cell.height / cell.width + : 0, + })); + const cells = fromMatrix( + matrix, + (cell) => cell.cell.type, + (cell, row, col) => ({ value: cell.cell.value, row: row + 1, col: col + 1 }) + ).data.rows.flatMap((r) => r.cells); + return { + widths: array(width, (i) => + columnWidth( + matrix.map((row) => row[i]!), + i, + matrix, + table + ) + ), + heights: matrix.map((row, i) => rowHeight(row, i, matrix, table)), + cells, + }; +} + +export type MakeWorkBookOptions = Partial< + CalculateSheetDataOptions & { + cellMinHeight: number; + cellMinWidth: number; + modifyColumn: (column: Column, columnIndex: number) => void; + modifyRow: (row: Row, rowIndex: number) => void; + modifyCell: ( + sheetCell: ExcelCell, + matrixCell: Cell<{ + value: JSONPrimitive; + col: number; + row: number; + }>, + matrixCellIndex: number + ) => void; + } +>; + +export function renderBlockOnWorksheet( + sheet: Worksheet, + block: Block, + { + cellMinHeight = 22, + cellMinWidth = 10, + modifyCell, + modifyColumn, + modifyRow, + ...options + }: MakeWorkBookOptions = {} +) { + const { heights, widths, cells } = calculateSheetData(block, { + columnWidth: (column) => { + const counts = column.map((cell) => cell.count); + return Math.max( + Math.ceil(counts.reduce(sum) / block.height + counts.reduce(max)), + cellMinWidth + ); + }, + rowHeight: (row) => + Math.max( + Math.ceil( + (row.map(({ count }) => count).reduce(sum) / block.width) * 2 + ), + cellMinHeight + ), + ...options, + }); + widths.forEach((width, i) => { + const column = sheet.getColumn(i + 1); + column.width = width; + modifyColumn?.(column, i + 1); + }); + heights.forEach((height, i) => { + const row = sheet.getRow(i + 1); + row.height = height; + modifyRow?.(row, i + 1); + }); + cells.forEach((matrixCell, i) => { + const { + height, + width, + type, + value: { col, row, value }, + } = matrixCell; + const sheetCell = sheet.getRow(row).getCell(col); + sheetCell.value = value; + sheetCell.alignment = { vertical: "middle", wrapText: true }; + if (type !== CellType.Value) { + sheetCell.font = { bold: true }; + } + modifyCell?.(sheetCell, matrixCell, i); + if (height > 1 || width > 1) { + sheet.mergeCells(row, col, row + height - 1, col + width - 1); + } + }); +} diff --git a/packages/block-to-xlsx/tsconfig.json b/packages/block-to-xlsx/tsconfig.json new file mode 100644 index 0000000..ab32493 --- /dev/null +++ b/packages/block-to-xlsx/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "@total-typescript/tsconfig/tsc/dom/library-monorepo", + "compilerOptions": { + "moduleResolution": "NodeNext", + "outDir": "./dist", + "rootDir": "./src", + }, + "include": [ + "src" + ], + "exclude": [ + "**/*.test.*", + "**/*.spec.*" + ] +} \ No newline at end of file diff --git a/packages/block-to-xlsx/tsconfig.tsbuildinfo b/packages/block-to-xlsx/tsconfig.tsbuildinfo new file mode 100644 index 0000000..086f0a9 --- /dev/null +++ b/packages/block-to-xlsx/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/array.ts","./src/lib/matrix.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/json-table.ts","./src/block/row.ts","./src/lib/math.ts","./src/block/block.ts","./src/block/index.ts","./src/block-matrix.ts","./src/block-to-ascii/block-to-ascii.ts","./src/block-to-ascii/index.ts","./src/lib/object.ts","./src/json-to-table/table.ts","./src/lib/binary-tree.ts","./src/json-to-table/properties-stabilizer.ts","./src/json-to-table/proportional-resize-guard.ts","./src/json-to-table/json-to-table.ts","./src/json-to-table/index.ts","./src/lib/guards.ts"],"fileIdsList":[[60,61,64,68],[60,61,64,69],[70],[60,64,65,66],[65,67],[64],[63],[77],[60,63,64,68,72,73,75,76],[74],[64,66,68],[62],[60]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"781fd81c0b6628bf5ce246e8c2b3a57c0cf31b3599c2e28b13c79aace631a7b2","signature":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"c297e744c56645f4a222abfcaaad2d513e185abb02e881fd925b0e581361a40a","signature":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"83b58e892474a47ba3bf60157e8f8ef2dd80a6ca8932e4f7b1fec6de769fda6c","signature":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"c808e51ad06744ba348e1f388d2b39c2348ef7d34e62ee458794d028890ab3e5","signature":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"36fc71e80c15d163aac49f4257dfdd5f9482c6bb24c960477f8f838d82d841e4","signature":"628c1950f013ce044e7346e16e63a79d17984bb230dc4c961e9c5772febea4f7","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"9416239efcdfcd7896eb0cea03842dcca802b05cfdeb4a70d70e6791976f49f6","signature":"a58baf5dad04db9f0761399a673924e5c5212655bed5a941286958c1b8bb041a","impliedFormat":99},{"version":"26581bc55dc9f49a2b38664b513b95b10976a277df45517c42ab8ae708181bbe","impliedFormat":99},{"version":"5fd96eacdd040ffa9c44397af26ef2c5bd3c72b380e00741642d7a0e7c9838d8","signature":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"196eaebec8184d707a8da4b8b693cf858ca5c571066e8e210c68da0def0d9c3d","signature":"121555fd7f3f5d1e2704115d03532c4151100c7633421c3aa6c83349bfec16b6","impliedFormat":99},{"version":"2994cf5ef22986f35179ab17883ab77b80a7fc9816c6439246f97f948443f98d","signature":"f917b950d4ee512747703a6a43e1f95c061b5cd082f53d6625b87e2f68a6cf01","impliedFormat":99},{"version":"ee302a2474169e130a3c8be45c042681dd1386b5d004f45124637e114f66affa","signature":"f303a34d688ba59fbe48e2b50f32dfa740206a3ab0cab81fe918b2439a5d6acb","impliedFormat":99},{"version":"ef7a61a668c8573ca636e6b146308316ca8bf6374c3aa0f64ab9d4cab66c052e","signature":"8d0f404138d3dcd60c38181cf4512feaa67e4b192daa750a55d1e0ae7b1e5030","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"ac4aad8e54ddecd4039ba162b6ecf80efacb88aa757f8495030d8dda0e1b8461","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"a03b5cb98799e9a0e718a82c0136d0234c4ab292a8ab9cc9c383129652d09f1b","signature":"6429f98455a68db1b0bbcd4301e78ec28f911dbb8a6c3721a0bfc980703e28ba","impliedFormat":99},{"version":"24223bf90971e6b5398a1460831d87982a2bfa8e79af773982fdd8886bf28700","signature":"58fd9e4e2871438529589e2f43d7cc41bb266a2a7373840e3e6c12dd621c0685","impliedFormat":99},{"version":"fc4e3acfe17b184954768d985d6046aeccaaaa5f54fb6fbce1f03b707abe3dc3","impliedFormat":99},{"version":"9c46b162218bbd344c8c3ac079613a16dd70b92136f2de934c28ed9915fe9aed","signature":"1a7ff0e3073030f1b25fba11d4741c5472d4f6a58681507e4cbe78afb5fa297e","impliedFormat":99}],"root":[[60,79]],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[69,1],[70,2],[71,3],[67,4],[68,5],[65,6],[64,7],[78,8],[77,9],[75,10],[76,6],[73,11],[63,12],[61,13]],"latestChangedDtsFile":"./dist/json-to-table/index.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/packages/core/package.json b/packages/core/package.json index a501417..3c87a71 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,7 +5,9 @@ "license": "MIT", "keywords": [ "json", - "table" + "table", + "ascii", + "html-table" ], "type": "module", "files": [ @@ -27,16 +29,34 @@ "build": "tsc", "test": "vitest --run" }, - "types": "dist/index.d.ts", - "main": "dist/index.js", "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, "./lib/*": { "types": "./dist/lib/*.d.ts", "import": "./dist/lib/*.js" + }, + ".": { + "types": "./dist/json-table.d.ts", + "import": "./dist/json-table.js" + }, + "./block": { + "types": "./dist/block/index.d.ts", + "import": "./dist/block/index.js" + }, + "./block-matrix": { + "types": "./dist/block-matrix.d.ts", + "import": "./dist/block-matrix.js" + }, + "./block-to-ascii": { + "types": "./dist/block-to-ascii/index.d.ts", + "import": "./dist/block-to-ascii/index.js" + }, + "./block-to-html": { + "types": "./dist/block-to-html.d.ts", + "import": "./dist/block-to-html.js" + }, + "./json-to-table": { + "types": "./dist/json-to-table/index.d.ts", + "import": "./dist/json-to-table/index.js" } }, "devDependencies": { diff --git a/packages/core/src/ascii-to-block/ascii-to-block.test.ts b/packages/core/src/ascii-to-block/ascii-to-block.test.ts new file mode 100644 index 0000000..e74b912 --- /dev/null +++ b/packages/core/src/ascii-to-block/ascii-to-block.test.ts @@ -0,0 +1,45 @@ +import { describe, it, expect } from 'vitest' + +import { blockToASCII } from "../block-to-ascii"; + +import { getSimpleMySqlASCIITableSeparatorType } from "./model"; +import { ASCIIToBlock } from "./ascii-to-block"; + +describe("fromASCIITable", () => { + it("Should work with simple table", () => { + const { value } = ASCIIToBlock( + ` ++---+ +| a | ++---+ +`, + getSimpleMySqlASCIITableSeparatorType + ).data.rows[0].cells[0]; + expect(value).toBe("a"); + }); + + it("Should work with complex table", () => { + const table = ASCIIToBlock( + ` ++--------------------------------------------+------------------------+ +| Col1 | Col3 | ++----------------------------------+---------+------------------------+ +| Value 1 | Value 2 | 123 | ++----------------------------------+---------+ with a tab or 4 spaces | +| This is a row with only one cell | | | ++----------------------------------+---------+------------------------+ + `, + getSimpleMySqlASCIITableSeparatorType + ); + const ascii = blockToASCII(table); + expect(`\n${ascii}`).toBe(` ++--------------------------------------------+------------------------+ +| Col1 | Col3 | ++----------------------------------+---------+------------------------+ +| Value 1 | Value 2 | 123 | +| | | with a tab or 4 spaces | ++----------------------------------+---------+ | +| This is a row with only one cell | | | ++----------------------------------+---------+------------------------+`); + }); +}); diff --git a/packages/core/src/ascii-to-block/ascii-to-block.ts b/packages/core/src/ascii-to-block/ascii-to-block.ts new file mode 100644 index 0000000..e8b72aa --- /dev/null +++ b/packages/core/src/ascii-to-block/ascii-to-block.ts @@ -0,0 +1,87 @@ +import { array } from "../lib/array.js"; +import { matrix } from "../lib/matrix.js"; + +import { CellType } from "../json-table.js"; +import { fromMatrix } from '../block-matrix.js'; + +import { + getContentOfRawCell, + getMaxLineLength, + omitEmptyLines, + type RawCell, + SeparatorType, +} from "./model.js"; + +export function ASCIIToBlock( + ascii: string, + getSeparatorType: ( + char: string, + colIndex: number, + row: string, + rowIndex: number, + rows: string[] + ) => SeparatorType +) { + const rows = ascii.split("\n"); + omitEmptyLines(rows); + const originalHeight = rows.length; + const originalWidth = getMaxLineLength(rows); + const regions = matrix( + originalHeight + 1, + originalWidth + 1, + () => null + ); + const xShift = array(originalWidth + 1, () => 0); + const yShift = array(originalHeight + 1, () => 0); + for (let i = 0; i < originalHeight; i++) { + const row = rows[i]!; + for (let j = 0; j < originalWidth; j++) { + const char = row[j]!; + const separatorType = getSeparatorType(char, j, row, i, rows); + xShift[j + 1] = Math.max(xShift[j + 1]!, separatorType & 1); + yShift[i + 1] = Math.max(yShift[i + 1]!, (separatorType & 2) >> 1); + if (separatorType > 0) { + continue; + } + const region = regions[i + 1]![j] || + regions[i]![j + 1] || { + x1: j, + y1: i, + x2: j, + y2: i, + }; + region.x2 = j; + region.y2 = i; + regions[i + 1]![j + 1] = region; + } + } + // Accumulate + for (let i = 1; i <= originalWidth; i++) { + xShift[i]! += xShift[i - 1]!; + } + for (let i = 1; i <= originalHeight; i++) { + yShift[i]! += yShift[i - 1]!; + } + const width = originalWidth - xShift[originalWidth]!; + const height = originalHeight - yShift[originalHeight]!; + const cleanMatrix = matrix(height, width, () => null); + for (let i = 1; i <= originalHeight; i++) { + for (let j = 1; j <= originalWidth; j++) { + const region = regions[i]![j]!; + if (region === null) { + continue; + } + cleanMatrix[i - yShift[i]! - 1]![j - xShift[j]! - 1] = region; + } + } + return fromMatrix( + cleanMatrix, + (_, rowIndex) => (rowIndex === 0 ? CellType.Header : CellType.Value), + (cell) => { + if (cell === null) { + throw new Error("Invalid table"); + } + return getContentOfRawCell(rows, cell); + } + ); +} diff --git a/packages/core/src/ascii-to-block/index.ts b/packages/core/src/ascii-to-block/index.ts new file mode 100644 index 0000000..ee065ce --- /dev/null +++ b/packages/core/src/ascii-to-block/index.ts @@ -0,0 +1,2 @@ +export * from './model.js' +export * from './ascii-to-block.js' diff --git a/packages/core/src/ascii-to-block/model.ts b/packages/core/src/ascii-to-block/model.ts new file mode 100644 index 0000000..4386a7f --- /dev/null +++ b/packages/core/src/ascii-to-block/model.ts @@ -0,0 +1,106 @@ +import type { Matrix } from "../lib/matrix.js"; + +export enum SeparatorType { + None = 0, + Horizontal = 1, + Vertical = 2, + Both = 3, +} + +export type RawCell = { + x1: number; + y1: number; + y2: number; + x2: number; +} | null; + +/** Does not escape for separators */ +export function getSimpleMySqlASCIITableSeparatorType( + char: string, + colIndex: number, + row: string, + rowIndex: number, + rows: string[] +) { + switch (char) { + case "+": { + return SeparatorType.Both; + // const x = colIndex === row.length - 1 || row[colIndex + 1] === "-" ? SeparatorType.Horizontal : 0; + // const y = rowIndex === rows.length - 1 || rows[rowIndex + 1][colIndex] === "|" ? SeparatorType.Vertical : 0; + // return x | y; + } + case "|": + return SeparatorType.Horizontal; + // TODO: Check that line ends is a `both` separators + case "-": { + if (row.length < 2) { + return SeparatorType.Vertical; + } + const prevOrNextInRowToken = + colIndex > 0 ? row[colIndex - 1] : row[colIndex + 1]; + return prevOrNextInRowToken === "-" || prevOrNextInRowToken === "+" + ? SeparatorType.Vertical + : SeparatorType.None; + } + default: + return SeparatorType.None; + } +} + +export function getContentOfRawCell( + rows: string[], + { x1, y1, x2, y2 }: NonNullable +) { + return rows + .slice(y1, y2 + 1) + .map((row) => row.substring(x1, x2 + 1).trim()) + .join("\n"); +} + +export function printRawMatrix(matrix: Matrix) { + const cells = new Set(); + const cellsIds = new Map(); + let lastId = 1; + for (let i = 0; i < matrix.length; i++) { + for (let j = 0; j < matrix[i]!.length; j++) { + const cell = matrix[i]![j]!; + if (cell !== null && !cells.has(cell)) { + cells.add(cell); + cellsIds.set(cell, String(lastId++)); + } + } + } + const pad = lastId.toString().length; + for (let i = 0; i < matrix.length; i++) { + const row = matrix[i]!; + let str = ""; + for (let j = 0; j < row.length; j++) { + const cell = row[j]; + if (cell) { + str += cellsIds.get(cell)!.padStart(pad, " "); + } else { + str += "+".repeat(pad); + } + } + console.log(str); + } +} + +export function omitEmptyLines(rows: string[]) { + let l = 0; + while (l < rows.length) { + if (rows[l]!.trim() === "") { + rows.splice(l, 1); + } else { + l++; + } + } +} + +export function getMaxLineLength(rows: string[]) { + let max = 0; + for (let i = 0; i < rows.length; i++) { + max = Math.max(max, rows[i]!.length); + } + return max; +} diff --git a/packages/core/src/block-matrix.ts b/packages/core/src/block-matrix.ts new file mode 100644 index 0000000..491d08a --- /dev/null +++ b/packages/core/src/block-matrix.ts @@ -0,0 +1,90 @@ +import { array } from "./lib/array.js"; +import { type Matrix, matrix } from "./lib/matrix.js"; + +import { compressRawRowsInPlaceAndMakeIndexes } from './block/index.js'; + +import { type Block, type Cells, CellType, type Cell } from "./json-table.js"; + +const UNDEFINED_CELL = Symbol("undefined cell"); + +export function createMatrix( + { height, width, data }: Block, + getValue: ( + cell: Cell, + rowIndex: number, + colIndex: number, + indexInRow: number + ) => R +): Matrix { + const m = matrix( + height, + width, + () => UNDEFINED_CELL + ); + for (let i = 0; i < data.rows.length; i++) { + const row = data.rows[i]!; + const index = data.indexes[i]!; + for (let j = 0; j < row.cells.length; j++) { + const cell = row.cells[j]!; + const col = row.columns[j]!; + const { height: cellHeight, width: cellWidth } = cell; + const value = getValue(cell, index, col, j); + for (let h = index; h < index + cellHeight && h < height; h++) { + for (let w = col; w < col + cellWidth && w < width; w++) { + m[h]![w] = value; + } + } + } + } + return m as Matrix; +} + +/** Uses reference equality to define cell boundaries */ +export function fromMatrix( + matrix: Matrix, + getCellType: (value: T, rowIndex: number, colIndex: number) => CellType, + getCellValue: (value: T, rowIndex: number, colIndex: number) => R +): Block { + const height = matrix.length; + const width = matrix[0]!.length; + const cells = new Set(); + const rows = array( + height, + (): Cells => ({ + cells: [], + columns: [], + }) + ); + for (let i = 0; i < height; i++) { + let j = 0; + while (j < width) { + const cell = matrix[i]![j]!; + if (cells.has(cell)) { + j++; + continue; + } + let h = 1; + while (i + h < height && matrix[i + h]![j] === cell) { + h++; + } + const wStart = j++; + while (j < width && matrix[i]![j] === cell) { + j++; + } + rows[i]!.cells.push({ + height: h, + width: j - wStart, + type: getCellType(cell, i, wStart), + value: getCellValue(cell, i, wStart), + }); + rows[i]!.columns.push(wStart); + cells.add(cell); + } + } + const indexes = compressRawRowsInPlaceAndMakeIndexes(rows); + return { + height, + width, + data: { rows, indexes }, + }; +} diff --git a/packages/core/src/__fixtures__/different-headers.json b/packages/core/src/block-to-ascii/__fixtures__/different-headers.json similarity index 100% rename from packages/core/src/__fixtures__/different-headers.json rename to packages/core/src/block-to-ascii/__fixtures__/different-headers.json diff --git a/packages/core/src/block-to-ascii/block-to-ascii.test.ts b/packages/core/src/block-to-ascii/block-to-ascii.test.ts new file mode 100644 index 0000000..cd7d718 --- /dev/null +++ b/packages/core/src/block-to-ascii/block-to-ascii.test.ts @@ -0,0 +1,122 @@ +import { describe, it, expect } from 'vitest'; + +import type { JSONPrimitive } from "../lib/json"; + +import { Block, CellType } from "../json-table"; +import { makeTableFactory, makeTableInPlaceBaker } from "../json-to-table"; + +import { ASCIITableFormat, blockToASCII } from "./block-to-ascii"; + +import differentHeaders from "./__fixtures__/different-headers.json"; + +describe("blockToASCII", () => { + const cornerCellValue = "№"; + const factory = makeTableFactory({ cornerCellValue }); + const bake = makeTableInPlaceBaker({ + cornerCellValue, + head: true, + indexes: true, + }); + + it("Should work with simple table", () => { + const table: Block = { + width: 1, + height: 1, + data: { + rows: [ + { + cells: [ + { + type: CellType.Value, + height: 1, + width: 1, + value: "a", + }, + ], + columns: [0], + }, + ], + indexes: [0], + }, + }; + const ascii = blockToASCII(table); + expect(`\n${ascii}`).toBe( + ` ++---+ +| a | ++---+` + ); + }); + it("Should draw a simple markdown like table 1", () => { + const table: Block = { + width: 1, + height: 1, + data: { + rows: [ + { + cells: [ + { + type: CellType.Value, + height: 1, + width: 1, + value: "a", + }, + ], + columns: [0], + }, + ], + indexes: [0], + }, + }; + const ascii = blockToASCII(table, { + format: ASCIITableFormat.MarkdownLike, + }); + expect(ascii).toBe("| a |"); + }); + it("Should draw a simple markdown like table 2", () => { + const table = factory({ + a: 1, + b: 2, + } as any); + const ascii = blockToASCII(bake(table), { + format: ASCIITableFormat.MarkdownLike, + }); + expect(`\n${ascii}`).toBe( + ` +| a | b | +|---|---| +| 1 | 2 |` + ); + }); + it("Should draw a simple markdown like table 3", () => { + const table = factory([ + { a: 1, b: 2 }, + { a: 2, b: 3 }, + { a: 3, b: 4 }, + ]); + const ascii = blockToASCII(bake(table), { + format: ASCIITableFormat.MarkdownLike, + }); + expect(`\n${ascii}`).toBe( + ` +| № | a | b | +|---|---|---| +| 1 | 1 | 2 | +| 2 | 2 | 3 | +| 3 | 3 | 4 |` + ); + }); + it("Should draw an invalid markdown like table", () => { + const table = factory(differentHeaders as any); + const baked = bake(table); + const ascii = blockToASCII(baked, { + format: ASCIITableFormat.MarkdownLike, + }); + expect(`\n${ascii}`).toBe(` +| 1 | character_id | item_id | +| |------------------------------|---------------------| +|---| 5428010618020694593 | 95 | +| 2 | character_id | item_id | stack_count | +| | 5428010618020694593 | 101 | 4 |`); + }); +}); diff --git a/packages/core/src/block-to-ascii/block-to-ascii.ts b/packages/core/src/block-to-ascii/block-to-ascii.ts new file mode 100644 index 0000000..552bc92 --- /dev/null +++ b/packages/core/src/block-to-ascii/block-to-ascii.ts @@ -0,0 +1,246 @@ +import { array } from "../lib/array.js"; +import { type Matrix, matrix } from "../lib/matrix.js"; + +import { type Block, type Cell, CellType } from "../json-table.js"; +import { createMatrix } from "../block-matrix.js"; + +function getMaxLineLength(rows: string[]) { + let max = 0; + for (let i = 0; i < rows.length; i++) { + max = Math.max(max, rows[i]!.length); + } + return max; +} + +function padCellRow(row: string, w: number, cell: Cell, rows: string[]) { + switch (cell.type) { + case CellType.Corner: + case CellType.Header: + case CellType.Index: { + const p = Math.floor((w - row.length) / 2); + return (p > 0 ? row.padStart(p + row.length) : row).padEnd(w); + } + default: { + if (rows.length === 1 && !isNaN(Number(row))) { + return row.padStart(w); + } + return row.padEnd(w); + } + } +} + +export enum ASCIITableFormat { + MySQL = "MySql", + MarkdownLike = "Markdown Like", +} + +export const ASCII_TABLE_FORMATS = Object.values(ASCIITableFormat); + +export interface BlockToASCIIOptions { + format?: ASCIITableFormat; +} + +interface InputCell { + cell: Cell; + rowIndex: number; + collIndex: number; + lines: string[]; + maxRowLength: number; +} + +function populateShifts( + block: Block, + inputMatrix: Matrix, + xShift: number[], + yShift: number[] +) { + for (let i = 0; i < block.height; i++) { + for (let j = 0; j < block.width; j++) { + const cell = inputMatrix[i]![j]!; + if (cell.collIndex === j) { + xShift[j + 1] = Math.max( + xShift[j + 1]!, + Math.max(cell.maxRowLength - cell.cell.width, 0) + 1 + ); + } + if (cell.rowIndex === i) { + yShift[i + 1] = Math.max( + yShift[i + 1]!, + Math.max(cell.lines.length - cell.cell.height, 0) + 1 + ); + } + } + } +} + +function populateMySqlShifts( + block: Block, + inputMatrix: Matrix, + xShift: number[], + yShift: number[] +) { + xShift[0] = yShift[0] = 1; + populateShifts(block, inputMatrix, xShift, yShift); +} + +function populateMarkdownLikeShifts( + block: Block, + inputMatrix: Matrix, + xShift: number[], + yShift: number[] +) { + xShift[0] = 1; + populateShifts(block, inputMatrix, xShift, yShift); + for (let i = 2; i < inputMatrix.length; i++) { + yShift[i]! -= 1; + } +} + +function drawMySqlBorder( + outMatrix: Matrix, + width: number, + height: number +) { + for (let i = 0; i < height; i++) { + for (let j = 0; j < width; j++) { + const cell = outMatrix[i]![j]!; + if (cell !== null) { + continue; + } + const isLeftEdge = j === 0; + const isTopEdge = i === 0; + const isRightEdge = j === width - 1; + const isBottomEdge = i === height - 1; + const previous = !isLeftEdge && outMatrix[i]![j - 1]!; + const next = !isRightEdge && outMatrix[i]![j + 1]!; + const beneath = !isBottomEdge && outMatrix[i + 1]![j]!; + const above = !isTopEdge && outMatrix[i - 1]![j]!; + if ( + ((isLeftEdge || isRightEdge) && (isTopEdge || isBottomEdge)) || + (previous === "-" && beneath === null) || + (above === "|" && next === null) || + (previous === "-" && above === "|") + ) { + outMatrix[i]![j] = "+"; + continue; + } + if (previous === "+" || previous === "-") { + outMatrix[i]![j] = "-"; + continue; + } + if (above === "+" || above === "|") { + outMatrix[i]![j] = "|"; + continue; + } + outMatrix[i]![j] = "n"; + } + } +} + +function drawMarkdownLikeBorder( + outMatrix: Matrix, + width: number, + height: number +) { + outMatrix.splice(height - 1, 1); + for (let i = 0; i < height - 1; i++) { + for (let j = 0; j < width; j++) { + const cell = outMatrix[i]![j]; + if (cell !== null) { + continue; + } + const isLeftEdge = j === 0; + const isTopEdge = i === 0; + // const isRightEdge = j === width - 1; + // const isBottomEdge = i === height - 1; + const previous = !isLeftEdge && outMatrix[i]![j - 1]; + const above = !isTopEdge && outMatrix[i - 1]![j]; + // const next = !isRightEdge && outMatrix[i][j + 1]; + // const beneath = !isBottomEdge && outMatrix[i + 1][j]; + if ((previous === "|" || previous === "-") && above !== "|") { + outMatrix[i]![j] = "-"; + continue; + } + outMatrix[i]![j] = "|"; + } + } +} + +const SHIFTS_POPULATORS = { + [ASCIITableFormat.MySQL]: populateMySqlShifts, + [ASCIITableFormat.MarkdownLike]: populateMarkdownLikeShifts, +}; + +const BORDER_DRAWERS = { + [ASCIITableFormat.MySQL]: drawMySqlBorder, + [ASCIITableFormat.MarkdownLike]: drawMarkdownLikeBorder, +}; + +export function blockToASCII( + block: Block, + { format = ASCIITableFormat.MySQL }: BlockToASCIIOptions = {} +) { + const inputMatrix = createMatrix( + block, + (cell, rowIndex, collIndex): InputCell => { + const content = + typeof cell.value === "string" + ? cell.value + : JSON.stringify(cell.value, null, 2); + const lines = content.split("\n").map((r) => ` ${r.trim()} `); + return { + cell, + rowIndex, + collIndex, + lines, + maxRowLength: getMaxLineLength(lines), + }; + } + ); + const xShift = array(block.width + 1, () => 0); + const yShift = array(block.height + 1, () => 0); + SHIFTS_POPULATORS[format](block, inputMatrix, xShift, yShift); + // Accumulate + for (let i = 1; i <= block.width; i++) { + xShift[i]! += xShift[i - 1]!; + } + for (let i = 1; i <= block.height; i++) { + yShift[i]! += yShift[i - 1]!; + } + const height = block.height + yShift[block.height]!; + const width = block.width + xShift[block.width]!; + const outMatrix = matrix(height, width, () => null); + const placed = new Set(); + for (let i = 0; i < block.height; i++) { + for (let j = 0; j < block.width; j++) { + const { cell, lines } = inputMatrix[i]![j]!; + if (placed.has(cell)) { + continue; + } + placed.add(cell); + const rowIndex = i + yShift[i]!; + const colIndex = j + xShift[j]!; + // TODO: This `||` is a hack and the `splice` in the markdown-like border fn also + // I think there is a general way to compute sizes + const h = cell.height + yShift[i + cell.height]! - yShift[i]! - 1 || 1; + const w = cell.width + xShift[j + cell.width]! - xShift[j]! - 1 || 1; + const startRow = Math.floor((h - lines.length) / 2); + const endRow = startRow + lines.length; + for (let y = 0; y < h; y++) { + const c = y + rowIndex; + if (y >= startRow && y < endRow) { + const row = padCellRow(lines[y - startRow]!, w, cell, lines); + for (let x = 0; x < w; x++) { + outMatrix[c]![x + colIndex] = row[x]!; + } + } else { + for (let x = 0; x < w; x++) { + outMatrix[c]![x + colIndex] = " "; + } + } + } + } + } + BORDER_DRAWERS[format](outMatrix, width, height); + return outMatrix.map((row) => row.join("")).join("\n"); +} diff --git a/packages/core/src/block-to-ascii/index.ts b/packages/core/src/block-to-ascii/index.ts new file mode 100644 index 0000000..49416c9 --- /dev/null +++ b/packages/core/src/block-to-ascii/index.ts @@ -0,0 +1 @@ +export * from './block-to-ascii.js' diff --git a/packages/core/src/block-to-html.ts b/packages/core/src/block-to-html.ts new file mode 100644 index 0000000..6494988 --- /dev/null +++ b/packages/core/src/block-to-html.ts @@ -0,0 +1,31 @@ +import { escapeHtml } from "./lib/html.js"; + +import { type Block, CellType } from "./json-table.js"; + +export function blockToHTML(model: Block) { + const rows: string[] = []; + let r = 0; + let index = model.data.indexes[r]; + for (let i = 0; i < model.height; i++) { + if (i === index) { + const row = model.data.rows[r]!; + rows.push( + `${row.cells + .map((cell) => { + const val = + typeof cell.value === "string" + ? escapeHtml(cell.value) + : cell.value; + return ``; + }) + .join("\n")}` + ); + index = model.data.indexes[++r]; + } else { + rows.push(``); + } + } + return `
${ + cell.type !== CellType.Value ? `${val}` : val + }
${rows.join("\n")}
`; +} diff --git a/packages/core/src/model/block.test.ts b/packages/core/src/block/block.test.ts similarity index 99% rename from packages/core/src/model/block.test.ts rename to packages/core/src/block/block.test.ts index 17db9fd..8399460 100644 --- a/packages/core/src/model/block.test.ts +++ b/packages/core/src/block/block.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest' -import { type Block, CellType } from "./core.js"; +import { type Block, CellType } from "../json-table.js"; import { stretchCellsToBottomInPlace, stretchCellsToRightInPlace, diff --git a/packages/core/src/model/block.ts b/packages/core/src/block/block.ts similarity index 99% rename from packages/core/src/model/block.ts rename to packages/core/src/block/block.ts index a6dee02..3799e89 100644 --- a/packages/core/src/model/block.ts +++ b/packages/core/src/block/block.ts @@ -11,7 +11,8 @@ import type { RowsScaler, Rows, BlockTransformInPlace, -} from "./core.js"; +} from "../json-table.js"; + import { scaleRowsHorizontallyInPlace, scaleRowsVerticallyInPlace, diff --git a/packages/core/src/block/index.ts b/packages/core/src/block/index.ts new file mode 100644 index 0000000..b14aa62 --- /dev/null +++ b/packages/core/src/block/index.ts @@ -0,0 +1,2 @@ +export * from "./row.js"; +export * from "./block.js"; diff --git a/packages/core/src/model/row.ts b/packages/core/src/block/row.ts similarity index 94% rename from packages/core/src/model/row.ts rename to packages/core/src/block/row.ts index 57c2835..83a94d8 100644 --- a/packages/core/src/model/row.ts +++ b/packages/core/src/block/row.ts @@ -1,4 +1,4 @@ -import type { Rows } from "./core.js"; +import type { Rows } from "../json-table.js"; export function shiftPositionsInPlace(columns: number[], offset: number): void { for (let i = 0; i < columns.length; i++) { diff --git a/packages/core/src/model/core.ts b/packages/core/src/json-table.ts similarity index 61% rename from packages/core/src/model/core.ts rename to packages/core/src/json-table.ts index b39ea31..8d14872 100644 --- a/packages/core/src/model/core.ts +++ b/packages/core/src/json-table.ts @@ -1,4 +1,4 @@ -import type { JSONPrimitiveOrNull } from "../lib/json.js"; +import type { JSONPrimitive } from "./lib/json.js"; export interface Height { height: number; @@ -17,28 +17,28 @@ export enum CellType { Corner = "corner", } -export interface Cell extends Sized { +export interface Cell extends Sized { value: V; type: CellType; } -export interface Cells { +export interface Cells { cells: Cell[]; /** Absolute position in row for each cell */ columns: number[]; } -export interface Rows { +export interface Rows { rows: Cells[]; /** Absolute position in column for each row */ indexes: number[]; } -export interface Block extends Sized { +export interface Block extends Sized { data: Rows; } -export interface Table { +export interface Table { head: Block | null; indexes: Block | null; body: Block; @@ -60,7 +60,7 @@ export type BlockTransform = (block: Block) => Block; export type BlockCompositor = (blocks: Block[]) => Block; -export interface ComposedTable extends Table { +export interface ComposedTable extends Table { baked: Block[]; } @@ -90,30 +90,3 @@ export const TABLE_COMPONENT_OPPOSITES: Record = head: "indexes", indexes: "head", }; - -export function makeTableFromValue(value: V): Table { - return { - head: null, - indexes: null, - body: { - height: 1, - width: 1, - data: { - rows: [ - { - cells: [{ height: 1, width: 1, value, type: CellType.Value }], - columns: [0], - }, - ], - indexes: [0], - }, - }, - }; -} - -export function makeProportionalResizeGuard( - threshold: number -): ProportionalResizeGuard { - return (lcmValue: number, maxValue: number) => - (lcmValue - maxValue) / maxValue <= threshold; -} diff --git a/packages/core/src/json-to-table.test.ts b/packages/core/src/json-to-table.test.ts deleted file mode 100644 index 0d2e0b1..0000000 --- a/packages/core/src/json-to-table.test.ts +++ /dev/null @@ -1,250 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -describe("makeTableFactory", () => { - it("Should work", () => { - expect(true).toBe(true); - }) -}) - -// // import { blockToASCII } from "./block-to-ascii"; -// import type { JSONPrimitiveOrNull } from "./lib/json.js"; -// import { makeTableInPlaceBaker } from "./model/index.js"; -// import { makeTableFactory } from "./json-to-table.js"; - -// import simpleHeadersDuplication from "./__fixtures__/simple-headers-duplication.json"; -// import simpleIndexesDeduplication from "./__fixtures__/simple-indexes-deduplication.json"; -// import parsingError from "./__fixtures__/parsing-error.json"; -// import differentHeaders from "./__fixtures__/different-headers.json"; -// import uniqueHeaders from "./__fixtures__/uniq-headers.json"; -// import wrongSizes from "./__fixtures__/wrong-sizes.json"; -// import emptyArrays from "./__fixtures__/empty-arrays.json" - -// describe("makeTableFactory", () => { -// const cornerCellValue = "№"; -// const factory = makeTableFactory({ cornerCellValue }); -// const bake = makeTableInPlaceBaker({ -// cornerCellValue, -// head: true, -// indexes: true, -// }); - -// it("Should create table for primitives", () => { -// const data = [false, 12345, "abcde"]; -// for (const value of data) { -// const table = factory(value); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}`).toBe(` -// +-------+ -// | ${value} | -// +-------+`); -// } -// }); - -// it("Should create table for objects", () => { -// const data = { -// a: 1, -// b: 2, -// c: { aa: 11, bb: 22 }, -// }; -// const table = factory(data); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+---+---------+ -// | a | b | c | -// +---+---+----+----+ -// | | | aa | bb | -// | 1 | 2 +----+----+ -// | | | 11 | 22 | -// +---+---+----+----+ -// `); -// }); - -// it("Should create table for arrays", () => { -// const data = [1, 2, [11, 22]]; -// const table = factory(data); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+--------+ -// | 1 | 1 | -// +---+--------+ -// | 2 | 2 | -// +---+---+----+ -// | | 1 | 11 | -// | 3 +---+----+ -// | | 2 | 22 | -// +---+---+----+ -// `); -// }); - -// it("Should create table for arrays with indexes collapse", () => { -// const factory = makeTableFactory({ -// cornerCellValue, -// collapseIndexes: true, -// }); -// const data = [ -// [1, 2], -// [11, 22], -// ]; -// const table = factory(data); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +-----+----+ -// | 1.1 | 1 | -// +-----+----+ -// | 1.2 | 2 | -// +-----+----+ -// | 2.1 | 11 | -// +-----+----+ -// | 2.2 | 22 | -// +-----+----+ -// `); -// }); - -// it("Should deduplicate table headers", () => { -// const table = factory(simpleHeadersDuplication); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+---+---+---+ -// | № | a | b | c | -// +---+---+---+---+ -// | 1 | 1 | 2 | 3 | -// +---+---+---+---+ -// | 2 | 4 | 5 | 6 | -// +---+---+---+---+ -// | 3 | 7 | 8 | 9 | -// +---+---+---+---+ -// `); -// }); - -// it("Should deduplicate table indexes", () => { -// const table = factory(simpleIndexesDeduplication); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+---+---+---+ -// | № | a | b | c | -// +---+---+---+---+ -// | 1 | 1 | 2 | 3 | -// +---+---+---+---+ -// | 2 | 4 | 5 | 6 | -// +---+---+---+---+ -// | 3 | 7 | 8 | 9 | -// +---+---+---+---+ -// `); -// }); - -// it("Should combine simple values should not affect objects values", () => { -// const factory = makeTableFactory({ -// cornerCellValue, -// joinPrimitiveArrayValues: true, -// }); -// const table = factory(parsingError); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+-----------------------------------+ -// | | weather | -// | № +------+-------+-------------+------+ -// | | id | main | description | icon | -// +---+------+-------+-------------+------+ -// | 1 | 800 | Clear | clear sky | 01n | -// +---+------+-------+-------------+------+ -// `); -// }); - -// it("Should not deduplicate objects with different headers", () => { -// const table = factory(differentHeaders as any); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+------------------------------+---------------------+ -// | | character_id | item_id | -// | 1 +------------------------------+---------------------+ -// | | 5428010618020694593 | 95 | -// +---+---------------------+--------+-------+-------------+ -// | | character_id | item_id | stack_count | -// | 2 +---------------------+----------------+-------------+ -// | | 5428010618020694593 | 101 | 4 | -// +---+---------------------+----------------+-------------+ -// `); -// }); - -// it("Should work with unique headers", () => { -// const table = factory(uniqueHeaders as any); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+-----------------------------+------+------+----------+--------+-------------+ -// | | description | in | name | required | type | uniqueItems | -// | 1 +-----------------------------+------+------+----------+--------+-------------+ -// | | name of the ComponentStatus | path | name | true | string | true | -// +---+-----------------------------+------+------+----------+--------+-------------+ -// | | $ref | -// | 2 +-----------------------------------------------------------------------------+ -// | | #/parameters/pretty-tJGM1-ng | -// +---+-----------------------------------------------------------------------------+ -// `); -// }); - -// it("Should create correct table", () => { -// const table = factory(wrongSizes as any); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+---------------+---------------+-----------------------------------------+ -// | № | options | pluginVersion | targets | -// +---+---------------+---------------+-------+------------------------+--------+ -// | | reduceOptions | | | | | -// | | | | № | expr | format | -// | +---------------+ | | | | -// | | | | | | | -// | 1 | values | 7.3.1 +-------+------------------------+--------+ -// | | | | | | | -// | +---------------+ | 1 | loki_build_info | table | -// | | false | | | | | -// | | | | | | | -// +---+---------------+---------------+-------+------------------------+--------+ -// | | reduceOptions | | | | -// | | | | № | expr | -// | +---------------+ | | | -// | | | | | | -// | 2 | values | 7.3.1 +-------+---------------------------------+ -// | | | | | | -// | +---------------+ | 1 | sum(log_messages_total) | -// | | false | | | | -// | | | | | | -// +---+---------------+---------------+-------+---------------------------------+ -// `); -// }); - -// it('Should deduplicate equal headers with different sizes', () => { -// const data = [ -// {a:1, b:2, c: 3}, -// {a:1, b:2, c: {d: 4, e: 5}} -// ] -// const table = factory(data); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+---+---+-------+ -// | № | a | b | c | -// +---+---+---+-------+ -// | 1 | 1 | 2 | 3 | -// +---+---+---+---+---+ -// | | | | d | e | -// | 2 | 1 | 2 +---+---+ -// | | | | 4 | 5 | -// +---+---+---+---+---+ -// `); -// }) -// // The original problem was in the modification of global `EMPTY` table -// it('Should handle empty arrays', () => { -// const table = factory(emptyArrays as any); -// const ascii = blockToASCII(bake(table)); -// expect(`\n${ascii}\n`).toBe(` -// +---+------------------------------------------------------------------------------+ -// | | tasks | -// | № +---------------------------+---+----------------------------------------------+ -// | | n | d | a | -// +---+---+-----------------------+---+----------------------+-----------------------+ -// | 1 | 1 | UspYpi-8NwmZZR7FJprSb | | 1 | aCx8zMrOjqW6K55TMokHD | -// +---+---+-----------------------+---+----------------------+-----------------------+ -// | 2 | | | 1 | gwT5xfbxgkPCq_VDyoBO3 | -// +---+---+-----------------------+---+----------------------------------------------+ -// `); -// }) -// }); diff --git a/packages/core/src/json-to-table/__fixtures__/different-headers.json b/packages/core/src/json-to-table/__fixtures__/different-headers.json new file mode 100644 index 0000000..ab4e9ec --- /dev/null +++ b/packages/core/src/json-to-table/__fixtures__/different-headers.json @@ -0,0 +1,11 @@ +[ + { + "character_id": "5428010618020694593", + "item_id": "95" + }, + { + "character_id": "5428010618020694593", + "item_id": "101", + "stack_count": "4" + } +] \ No newline at end of file diff --git a/packages/core/src/__fixtures__/empty-arrays.json b/packages/core/src/json-to-table/__fixtures__/empty-arrays.json similarity index 100% rename from packages/core/src/__fixtures__/empty-arrays.json rename to packages/core/src/json-to-table/__fixtures__/empty-arrays.json diff --git a/packages/core/src/__fixtures__/parsing-error.json b/packages/core/src/json-to-table/__fixtures__/parsing-error.json similarity index 100% rename from packages/core/src/__fixtures__/parsing-error.json rename to packages/core/src/json-to-table/__fixtures__/parsing-error.json diff --git a/packages/core/src/__fixtures__/simple-headers-duplication.json b/packages/core/src/json-to-table/__fixtures__/simple-headers-duplication.json similarity index 100% rename from packages/core/src/__fixtures__/simple-headers-duplication.json rename to packages/core/src/json-to-table/__fixtures__/simple-headers-duplication.json diff --git a/packages/core/src/__fixtures__/simple-indexes-deduplication.json b/packages/core/src/json-to-table/__fixtures__/simple-indexes-deduplication.json similarity index 100% rename from packages/core/src/__fixtures__/simple-indexes-deduplication.json rename to packages/core/src/json-to-table/__fixtures__/simple-indexes-deduplication.json diff --git a/packages/core/src/__fixtures__/uniq-headers.json b/packages/core/src/json-to-table/__fixtures__/uniq-headers.json similarity index 100% rename from packages/core/src/__fixtures__/uniq-headers.json rename to packages/core/src/json-to-table/__fixtures__/uniq-headers.json diff --git a/packages/core/src/__fixtures__/wrong-sizes.json b/packages/core/src/json-to-table/__fixtures__/wrong-sizes.json similarity index 100% rename from packages/core/src/__fixtures__/wrong-sizes.json rename to packages/core/src/json-to-table/__fixtures__/wrong-sizes.json diff --git a/packages/core/src/index.ts b/packages/core/src/json-to-table/index.ts similarity index 51% rename from packages/core/src/index.ts rename to packages/core/src/json-to-table/index.ts index 00b2160..4e1aec2 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/json-to-table/index.ts @@ -1,2 +1,2 @@ -export * from "./model/index.js"; +export * from "./table.js"; export * from "./json-to-table.js"; diff --git a/packages/core/src/json-to-table/json-to-table.test.ts b/packages/core/src/json-to-table/json-to-table.test.ts new file mode 100644 index 0000000..e4b8159 --- /dev/null +++ b/packages/core/src/json-to-table/json-to-table.test.ts @@ -0,0 +1,245 @@ +import { describe, expect, it } from 'vitest'; + +import { blockToASCII } from "../block-to-ascii/index.js"; +import type { JSONPrimitive } from "../lib/json.js"; + +import { makeTableFactory } from "./json-to-table.js"; +import { makeTableInPlaceBaker } from './table'; + +import simpleHeadersDuplication from "./__fixtures__/simple-headers-duplication.json"; +import simpleIndexesDeduplication from "./__fixtures__/simple-indexes-deduplication.json"; +import parsingError from "./__fixtures__/parsing-error.json"; +import differentHeaders from "./__fixtures__/different-headers.json"; +import uniqueHeaders from "./__fixtures__/uniq-headers.json"; +import wrongSizes from "./__fixtures__/wrong-sizes.json"; +import emptyArrays from "./__fixtures__/empty-arrays.json" + +describe("makeTableFactory", () => { + const cornerCellValue = "№"; + const factory = makeTableFactory({ cornerCellValue }); + const bake = makeTableInPlaceBaker({ + cornerCellValue, + head: true, + indexes: true, + }); + + it("Should create table for primitives", () => { + const data = [false, 12345, "abcde"]; + for (const value of data) { + const table = factory(value); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}`).toBe(` ++-------+ +| ${value} | ++-------+`); + } + }); + + it("Should create table for objects", () => { + const data = { + a: 1, + b: 2, + c: { aa: 11, bb: 22 }, + }; + const table = factory(data); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+---+---------+ +| a | b | c | ++---+---+----+----+ +| | | aa | bb | +| 1 | 2 +----+----+ +| | | 11 | 22 | ++---+---+----+----+ +`); + }); + + it("Should create table for arrays", () => { + const data = [1, 2, [11, 22]]; + const table = factory(data); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+--------+ +| 1 | 1 | ++---+--------+ +| 2 | 2 | ++---+---+----+ +| | 1 | 11 | +| 3 +---+----+ +| | 2 | 22 | ++---+---+----+ +`); + }); + + it("Should create table for arrays with indexes collapse", () => { + const factory = makeTableFactory({ + cornerCellValue, + collapseIndexes: true, + }); + const data = [ + [1, 2], + [11, 22], + ]; + const table = factory(data); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++-----+----+ +| 1.1 | 1 | ++-----+----+ +| 1.2 | 2 | ++-----+----+ +| 2.1 | 11 | ++-----+----+ +| 2.2 | 22 | ++-----+----+ +`); + }); + + it("Should deduplicate table headers", () => { + const table = factory(simpleHeadersDuplication); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+---+---+---+ +| № | a | b | c | ++---+---+---+---+ +| 1 | 1 | 2 | 3 | ++---+---+---+---+ +| 2 | 4 | 5 | 6 | ++---+---+---+---+ +| 3 | 7 | 8 | 9 | ++---+---+---+---+ +`); + }); + + it("Should deduplicate table indexes", () => { + const table = factory(simpleIndexesDeduplication); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+---+---+---+ +| № | a | b | c | ++---+---+---+---+ +| 1 | 1 | 2 | 3 | ++---+---+---+---+ +| 2 | 4 | 5 | 6 | ++---+---+---+---+ +| 3 | 7 | 8 | 9 | ++---+---+---+---+ +`); + }); + + it("Should combine simple values should not affect objects values", () => { + const factory = makeTableFactory({ + cornerCellValue, + joinPrimitiveArrayValues: true, + }); + const table = factory(parsingError); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+-----------------------------------+ +| | weather | +| № +------+-------+-------------+------+ +| | id | main | description | icon | ++---+------+-------+-------------+------+ +| 1 | 800 | Clear | clear sky | 01n | ++---+------+-------+-------------+------+ +`); + }); + + it("Should not deduplicate objects with different headers", () => { + const table = factory(differentHeaders as any); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+------------------------------+---------------------+ +| | character_id | item_id | +| 1 +------------------------------+---------------------+ +| | 5428010618020694593 | 95 | ++---+---------------------+--------+-------+-------------+ +| | character_id | item_id | stack_count | +| 2 +---------------------+----------------+-------------+ +| | 5428010618020694593 | 101 | 4 | ++---+---------------------+----------------+-------------+ +`); + }); + + it("Should work with unique headers", () => { + const table = factory(uniqueHeaders as any); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+-----------------------------+------+------+----------+--------+-------------+ +| | description | in | name | required | type | uniqueItems | +| 1 +-----------------------------+------+------+----------+--------+-------------+ +| | name of the ComponentStatus | path | name | true | string | true | ++---+-----------------------------+------+------+----------+--------+-------------+ +| | $ref | +| 2 +-----------------------------------------------------------------------------+ +| | #/parameters/pretty-tJGM1-ng | ++---+-----------------------------------------------------------------------------+ +`); + }); + + it("Should create correct table", () => { + const table = factory(wrongSizes as any); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+---------------+---------------+-----------------------------------------+ +| № | options | pluginVersion | targets | ++---+---------------+---------------+-------+------------------------+--------+ +| | reduceOptions | | | | | +| | | | № | expr | format | +| +---------------+ | | | | +| | | | | | | +| 1 | values | 7.3.1 +-------+------------------------+--------+ +| | | | | | | +| +---------------+ | 1 | loki_build_info | table | +| | false | | | | | +| | | | | | | ++---+---------------+---------------+-------+------------------------+--------+ +| | reduceOptions | | | | +| | | | № | expr | +| +---------------+ | | | +| | | | | | +| 2 | values | 7.3.1 +-------+---------------------------------+ +| | | | | | +| +---------------+ | 1 | sum(log_messages_total) | +| | false | | | | +| | | | | | ++---+---------------+---------------+-------+---------------------------------+ +`); + }); + + it('Should deduplicate equal headers with different sizes', () => { + const data = [ + {a:1, b:2, c: 3}, + {a:1, b:2, c: {d: 4, e: 5}} + ] + const table = factory(data); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+---+---+-------+ +| № | a | b | c | ++---+---+---+-------+ +| 1 | 1 | 2 | 3 | ++---+---+---+---+---+ +| | | | d | e | +| 2 | 1 | 2 +---+---+ +| | | | 4 | 5 | ++---+---+---+---+---+ +`); + }) + // The original problem was in the modification of global `EMPTY` table + it('Should handle empty arrays', () => { + const table = factory(emptyArrays as any); + const ascii = blockToASCII(bake(table)); + expect(`\n${ascii}\n`).toBe(` ++---+------------------------------------------------------------------------------+ +| | tasks | +| № +---------------------------+---+----------------------------------------------+ +| | n | d | a | ++---+---+-----------------------+---+----------------------+-----------------------+ +| 1 | 1 | UspYpi-8NwmZZR7FJprSb | | 1 | aCx8zMrOjqW6K55TMokHD | ++---+---+-----------------------+---+----------------------+-----------------------+ +| 2 | | | 1 | gwT5xfbxgkPCq_VDyoBO3 | ++---+---+-----------------------+---+----------------------------------------------+ +`); + }) +}); diff --git a/packages/core/src/json-to-table.ts b/packages/core/src/json-to-table/json-to-table.ts similarity index 89% rename from packages/core/src/json-to-table.ts rename to packages/core/src/json-to-table/json-to-table.ts index 1dcc907..20a1d82 100644 --- a/packages/core/src/json-to-table.ts +++ b/packages/core/src/json-to-table/json-to-table.ts @@ -1,24 +1,24 @@ import { - type JSONPrimitiveOrNull, + type JSONPrimitive, type JSONRecord, type JSONValue, - isJsonPrimitiveOrNull, -} from "./lib/json.js"; + isJsonPrimitive, +} from "../lib/json.js"; +import { array } from "../lib/array.js"; +import { isRecord } from '../lib/object.js'; + import { - type Table, - type Cells, - makeTableFromValue, - makeProportionalResizeGuard, type ComposedTable, + type Cells, CellType, - shiftPositionsInPlace, - makeTableInPlaceStacker, - mergeBlocksHorizontally, type Block, -} from "./model/index.js"; -import { isRecord } from "./lib/guards.js"; -import { array } from "./lib/array.js"; -import { makeObjectPropertiesStabilizer } from "./lib/object.js"; + type Table, +} from "../json-table.js"; + +import { mergeBlocksHorizontally, shiftPositionsInPlace } from "../block/index.js"; +import { makeTableFromValue, makeTableInPlaceStacker } from "./table.js"; +import { makeObjectPropertiesStabilizer } from './properties-stabilizer.js'; +import { makeProportionalResizeGuard } from './proportional-resize-guard.js'; export interface TableFactoryOptions { joinPrimitiveArrayValues?: boolean; @@ -38,7 +38,7 @@ export function makeTableFactory({ stabilizeOrderOfPropertiesInArraysOfObjects = true, cornerCellValue, collapseIndexes, -}: TableFactoryOptions) { +}: TableFactoryOptions) { const isProportionalResize = makeProportionalResizeGuard( proportionalSizeAdjustmentThreshold ); @@ -172,7 +172,7 @@ export function makeTableFactory({ return stackTablesVertical(titles, tables); } function transformValue(value: JSONValue): Table { - if (isJsonPrimitiveOrNull(value)) { + if (isJsonPrimitive(value)) { return makeTableFromValue(value); } if (Array.isArray(value)) { @@ -182,8 +182,8 @@ export function makeTableFactory({ let isPrimitives = true; let isRecords = true; let i = 0; - while (i < value.length && (isPrimitives || isRecord)) { - isPrimitives = isPrimitives && isJsonPrimitiveOrNull(value[i]!); + while (i < value.length && (isPrimitives || isRecords)) { + isPrimitives = isPrimitives && isJsonPrimitive(value[i]!); isRecords = isRecords && isRecord(value[i]); i++; } diff --git a/packages/core/src/json-to-table/properties-stabilizer.ts b/packages/core/src/json-to-table/properties-stabilizer.ts new file mode 100644 index 0000000..c69068d --- /dev/null +++ b/packages/core/src/json-to-table/properties-stabilizer.ts @@ -0,0 +1,33 @@ +import { type Node, type Tree, insert, traverse } from "../lib/binary-tree.js"; + +interface KeyNode extends Node> { + key: string; + val: V; +} + +export function makeObjectPropertiesStabilizer() { + let index = 0; + const order: Record> = {}; + return (obj: Record) => { + const entries = Object.entries(obj); + let tree: Tree> = undefined; + for (const [key, val] of entries) { + const node = (order[key] ??= { + key, + val, + value: index++, + }); + node.val = val; + node.left = undefined; + node.right = undefined; + tree = insert(tree, node); + } + const keys: string[] = []; + const values: V[] = []; + traverse(tree, (node) => { + keys.push(node.key); + values.push(node.val); + }); + return [keys, values] as const; + }; +} diff --git a/packages/core/src/json-to-table/proportional-resize-guard.ts b/packages/core/src/json-to-table/proportional-resize-guard.ts new file mode 100644 index 0000000..b23a146 --- /dev/null +++ b/packages/core/src/json-to-table/proportional-resize-guard.ts @@ -0,0 +1,8 @@ +import type { ProportionalResizeGuard } from '../json-table.js'; + +export function makeProportionalResizeGuard( + threshold: number +): ProportionalResizeGuard { + return (lcmValue: number, maxValue: number) => + (lcmValue - maxValue) / maxValue <= threshold; +} diff --git a/packages/core/src/model/table.ts b/packages/core/src/json-to-table/table.ts similarity index 94% rename from packages/core/src/model/table.ts rename to packages/core/src/json-to-table/table.ts index 51ef633..eceb0aa 100644 --- a/packages/core/src/model/table.ts +++ b/packages/core/src/json-to-table/table.ts @@ -4,23 +4,44 @@ import { type Block, type BlockCompositor, CellType, - type ProportionalResizeGuard, TABLE_COMPONENT_SIZE_ASPECTS, TABLE_COMPONENT_OPPOSITES, type Table, type TableComponent, type TableCompositor, type ComposedTable, -} from "./core.js"; -import { shiftPositionsInPlace } from "./row.js"; + type ProportionalResizeGuard, +} from "../json-table.js"; + import { + shiftPositionsInPlace, areBlocksEqual, makeBlockInPlaceScaler, makeHorizontalBlockInPlaceStacker, makeVerticalBlockInPlaceStacker, mergeBlocksHorizontally, mergeBlocksVertically, -} from "./block.js"; +} from "../block/index.js"; + +export function makeTableFromValue(value: V): Table { + return { + head: null, + indexes: null, + body: { + height: 1, + width: 1, + data: { + rows: [ + { + cells: [{ height: 1, width: 1, value, type: CellType.Value }], + columns: [0], + }, + ], + indexes: [0], + }, + }, + }; +} export interface BakeOptions { head?: boolean; diff --git a/packages/core/src/lib/array.ts b/packages/core/src/lib/array.ts index b1b90de..2a0d84f 100644 --- a/packages/core/src/lib/array.ts +++ b/packages/core/src/lib/array.ts @@ -1,56 +1,4 @@ -export interface NonEmptyArray extends Array { - 0: T -} - export const array = ( count: number, factory: (index: number) => R ): R[] => Array.from(new Array(count), (_, i) => factory(i)) - -export function isItemsEqual(compare: (a: T, b: T) => boolean) { - return (items: T[]): boolean => { - let i = 1 - while (i < items.length) { - if (compare(items[i - 1]!, items[i]!)) { - i++ - } else { - return false - } - } - return true - } -} - -export type Predicate = (value: T, index: number, arr: T[]) => boolean - -export type GuardPredicate = ( - value: T, - index: number, - arr: T[] -) => value is R - -export function filter(predicate: GuardPredicate) { - return (items: T[]): R[] => items.filter(predicate) -} - -export type Transform = (value: T, index: number) => R - -export function map(action: Transform) { - return (items: T[]): R[] => items.map(action) -} - -export function every(predicate: Predicate) { - return (items: T[]) => items.every(predicate) -} - -export function some(predicate: Predicate) { - return (items: T[]) => items.some(predicate) -} - -export function first(array: T[]) { - return array[0] -} - -export function last(array: T[]) { - return array[array.length - 1] -} diff --git a/packages/core/src/lib/guards.ts b/packages/core/src/lib/guards.ts index fe6b75d..7cad0b3 100644 --- a/packages/core/src/lib/guards.ts +++ b/packages/core/src/lib/guards.ts @@ -13,46 +13,3 @@ export function isDefined(value: T | undefined): value is T { export function isSomething(value: T | Nothing): value is T { return value !== null && value !== undefined } - -export function isTruly(value: T | Falsy): value is T { - return Boolean(value) -} - -export function isString(value: unknown): value is string { - return typeof value === 'string' -} - -export function isBoolean(value: unknown): value is boolean { - return typeof value === 'boolean' -} - -export function isNumber(value: unknown): value is number { - return typeof value === 'number' -} - -export function isObject(value: unknown): value is Record { - return typeof value === 'object' && value !== null -} - -export function isArray(value: unknown): value is T[] { - return Array.isArray(value) -} - -export function isRecord( - value: unknown -): value is Record { - return isObject(value) && !isArray(value) -} - -export function isFunction(value: unknown): value is T { - return typeof value === 'function' -} - -export function makeIsArrayOf(guard: (value: I) => value is T) { - return (value: unknown): value is Array => - isArray(value) && value.every(guard) -} - -export function isDate(value: unknown): value is Date { - return value instanceof Date -} diff --git a/packages/core/src/lib/html.ts b/packages/core/src/lib/html.ts new file mode 100644 index 0000000..524ec90 --- /dev/null +++ b/packages/core/src/lib/html.ts @@ -0,0 +1,14 @@ +export function escapeHtml(unsafe: string) { + return unsafe.replace(/[&<"']/g, function (m) { + switch (m) { + case "&": + return "&"; + case "<": + return "<"; + case '"': + return """; + default: + return "'"; + } + }); +} diff --git a/packages/core/src/lib/json.ts b/packages/core/src/lib/json.ts index 3a6f2d1..3499ad9 100644 --- a/packages/core/src/lib/json.ts +++ b/packages/core/src/lib/json.ts @@ -1,10 +1,10 @@ import type { CompareResult } from "./ord.js"; -export type JSONPrimitive = string | number | boolean; +export type JSONPrimitiveExceptNull = string | number | boolean; -export type JSONPrimitiveOrNull = JSONPrimitive | null; +export type JSONPrimitive = JSONPrimitiveExceptNull | null; -export type JSONPrimitiveLiterals = "string" | "number" | "boolean"; +export type JSONPrimitiveExceptNullLiterals = "string" | "number" | "boolean"; export type JSONRecord = { [k: string]: JSONValue }; @@ -12,16 +12,17 @@ export type JSONArray = JSONValue[]; export type JSONObject = JSONRecord | JSONArray; -export type JSONValue = JSONPrimitive | null | JSONObject; +export type JSONValue = JSONPrimitive | JSONObject; -export const isJsonPrimitive = (value: JSONValue): value is JSONPrimitive => - typeof value !== "object"; +export const isJsonPrimitiveExceptNull = ( + value: JSONValue +): value is JSONPrimitiveExceptNull => typeof value !== "object"; -export const isJsonPrimitiveOrNull = ( +export const isJsonPrimitive = ( value: JSONValue -): value is JSONPrimitive | null => value === null || typeof value !== "object"; +): value is JSONPrimitive => value === null || typeof value !== "object"; -const primitiveTypeOrder: Record = { +const primitiveTypeOrder: Record = { boolean: 0, number: 1, string: 2, @@ -35,7 +36,7 @@ const cmpTable: [CmpRow, CmpRow, CmpRow] = [ [1, 1, 0], ]; -export function compareSameTypeJsonPrimitive( +export function compareSameTypeJsonPrimitive( a: T, b: T ): CompareResult { @@ -43,14 +44,14 @@ export function compareSameTypeJsonPrimitive( } export function compareJsonPrimitive( - a: JSONPrimitive, - b: JSONPrimitive + a: JSONPrimitiveExceptNull, + b: JSONPrimitiveExceptNull ): CompareResult { if (a === b) { return 0; } - const ta = typeof a as JSONPrimitiveLiterals; - const tb = typeof b as JSONPrimitiveLiterals; + const ta = typeof a as JSONPrimitiveExceptNullLiterals; + const tb = typeof b as JSONPrimitiveExceptNullLiterals; return ta === tb ? compareSameTypeJsonPrimitive(a, b) : cmpTable[primitiveTypeOrder[ta]][primitiveTypeOrder[tb]]; @@ -135,8 +136,8 @@ export function compareJsonValue(a: JSONValue, b: JSONValue): CompareResult { if (b === null) { return 1; } - if (isJsonPrimitive(a)) { - return isJsonPrimitive(b) ? compareJsonPrimitive(a, b) : -1; + if (isJsonPrimitiveExceptNull(a)) { + return isJsonPrimitiveExceptNull(b) ? compareJsonPrimitive(a, b) : -1; } - return isJsonPrimitive(b) ? 1 : compareJsonObjects(a, b); + return isJsonPrimitiveExceptNull(b) ? 1 : compareJsonObjects(a, b); } diff --git a/packages/core/src/lib/matrix.ts b/packages/core/src/lib/matrix.ts new file mode 100644 index 0000000..f03f9e9 --- /dev/null +++ b/packages/core/src/lib/matrix.ts @@ -0,0 +1,34 @@ +import { array } from './array.js' + +export type Matrix = T[][] + +export function matrix ( + height: number, + width: number, + factory: (rowIndex: number) => R +) { + return array(height, () => array(width, factory)) +} + +export function transpose(matrix: Matrix): Matrix { + return matrix[0]!.map((_, i) => matrix.map((x) => x[i]!)) +} + +export function horizontalMirror(matrix: Matrix): Matrix { + return matrix.map((row) => row.slice().reverse()) +} + +export function verticalMirror(matrix: Matrix): Matrix { + return matrix.slice().reverse() +} + +export type TransformCell = ( + value: T, + index: number, + rowIndex: number +) => R + +export function mapCell(transform: TransformCell) { + return (matrix: Matrix): Matrix => + matrix.map((row, i) => row.map((cell, j) => transform(cell, j, i))) +} diff --git a/packages/core/src/lib/object.ts b/packages/core/src/lib/object.ts index 2ea4f37..7a092db 100644 --- a/packages/core/src/lib/object.ts +++ b/packages/core/src/lib/object.ts @@ -1,33 +1,9 @@ -import { type Node, type Tree, insert, traverse } from "./binary-tree.js"; - -interface KeyNode extends Node> { - key: string; - val: V; +export function isObject(value: unknown): value is object { + return typeof value === "object" && value !== null; } -export function makeObjectPropertiesStabilizer() { - let index = 0; - const order: Record> = {}; - return (obj: Record) => { - const entries = Object.entries(obj); - let tree: Tree> = undefined; - for (const [key, val] of entries) { - const node = (order[key] ??= { - key, - val, - value: index++, - }); - node.val = val; - node.left = undefined - node.right = undefined - tree = insert(tree, node); - } - const keys: string[] = []; - const values: V[] = []; - traverse(tree, (node) => { - keys.push(node.key); - values.push(node.val); - }); - return [keys, values] as const; - }; +export function isRecord( + value: unknown +): value is Record { + return isObject(value) && !Array.isArray(value); } diff --git a/packages/core/src/model/index.ts b/packages/core/src/model/index.ts deleted file mode 100644 index 928beb7..0000000 --- a/packages/core/src/model/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './core.js' -export * from './row.js' -export * from './block.js' -export * from './table.js' diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 2859968..ab32493 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -4,5 +4,12 @@ "moduleResolution": "NodeNext", "outDir": "./dist", "rootDir": "./src", - } + }, + "include": [ + "src" + ], + "exclude": [ + "**/*.test.*", + "**/*.spec.*" + ] } \ No newline at end of file diff --git a/packages/core/tsconfig.tsbuildinfo b/packages/core/tsconfig.tsbuildinfo index ee68a58..7ca32a2 100644 --- a/packages/core/tsconfig.tsbuildinfo +++ b/packages/core/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/model/core.ts","./src/model/row.ts","./src/lib/math.ts","./src/lib/array.ts","./src/model/block.ts","./src/model/table.ts","./src/model/index.ts","./src/lib/guards.ts","./src/lib/binary-tree.ts","./src/lib/object.ts","./src/json-to-table.ts","./src/index.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+pretty-format@2.1.3/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/index-c1cfc5e9.d.ts","../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/node.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/tasks-SNKRxoD7.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/types-Bxe-2Udy.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/error.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@14.18.63/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.6/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/rollup@4.24.0/node_modules/rollup/dist/rollup.d.ts","../../node_modules/.pnpm/rollup@4.24.0/node_modules/rollup/dist/parseAst.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/hmrPayload.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/customEvent.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/dist/node/types.d-aGj9QkWt.d.ts","../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/previous-map.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/input.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/css-syntax-error.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/declaration.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/root.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/warning.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/lazy-result.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/no-work-result.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/processor.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/document.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/rule.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/node.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/comment.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/container.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/at-rule.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/list.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss.d.ts","../../node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss.d.mts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/dist/node/runtime.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/importGlob.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/types/metadata.d.ts","../../node_modules/.pnpm/vite@5.4.10/node_modules/vite/dist/node/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/environment-Ddx0EDtY.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/index-Y6kQUiCB.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/environment.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/config.Crbj2GAb.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/trace-mapping.d-DLVdEqOp.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/index-z0R8hVRu.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/environment.CzISCQ7o.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/client.d.ts","../../node_modules/.pnpm/@vitest+snapshot@2.1.3/node_modules/@vitest/snapshot/dist/manager.d.ts","../../node_modules/.pnpm/vite-node@2.1.3/node_modules/vite-node/dist/server.d.ts","../../node_modules/.pnpm/@vitest+utils@2.1.3/node_modules/@vitest/utils/dist/source-map.d.ts","../../node_modules/.pnpm/@vitest+runner@2.1.3/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/benchmark.JVlTzojj.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/reporters.C4ZHgdxQ.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/vite.YH7MrecS.d.ts","../../node_modules/.pnpm/@vitest+expect@2.1.3/node_modules/@vitest/expect/dist/chai.d.cts","../../node_modules/.pnpm/@vitest+expect@2.1.3/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+expect@2.1.3/node_modules/@vitest/expect/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/worker.B6RjTtbk.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/worker.CcJLfX8w.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/suite.BMWOKiTe.d.ts","../../node_modules/.pnpm/@vitest+mocker@2.1.3_@vitest+spy@2.1.3_vite@5.4.10/node_modules/@vitest/mocker/dist/types-yDMq238q.d.ts","../../node_modules/.pnpm/@vitest+mocker@2.1.3_@vitest+spy@2.1.3_vite@5.4.10/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/chunks/mocker.cRtM890J.d.ts","../../node_modules/.pnpm/@vitest+spy@2.1.3/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/vitest@2.1.3/node_modules/vitest/dist/index.d.ts","./src/json-to-table.test.ts","./src/model/block.test.ts"],"fileIdsList":[[87],[89],[90,95],[91,99,100,107,116],[91,92,99,107],[93,123],[94,95,100,108],[95,116],[96,97,99,107],[97],[98,99],[99],[99,100,101,116,122],[100,101],[99,102,107,116,122],[99,100,102,103,107,116,119,122],[102,104,116,119,122],[87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[99,105],[106,122],[97,99,107,116],[108],[109],[89,110],[111,121],[112],[113],[99,114],[114,115,123,125],[99,116],[117],[118],[107,116,119],[120],[107,121],[102,113,122],[123],[116,124],[125],[126],[99,101,116,122,125,127],[116,128],[79,80,83],[182],[187],[80,81,83,84,85],[80],[80,81,83],[80,81],[163],[77,163],[77,163,164],[77,82],[75],[75,76,77,79],[77],[154],[152,154],[143,151,152,153,155],[141],[144,149,154,157],[140,157],[144,145,148,149,150,157],[144,145,146,148,149,157],[141,142,143,144,145,149,150,151,153,154,155,157],[157],[139,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156],[139,157],[144,146,147,149,150,157],[148,157],[149,150,154,157],[142,152],[132,161],[131,132],[78],[168,169],[168],[162,168,169,180],[99,100,102,103,104,107,116,119,122,128,130,132,133,134,135,136,137,138,158,159,160,161],[134,135,136,137],[134,135,136],[134],[135],[132],[86,176,177,191],[77,86,165,166,191],[188],[77,80,86,100,116,162,165,167,170,171,172,173,174,175,178,180,181,191],[86,176,177,178,191],[162,179],[86,165,167,170,171,191],[127,184],[77,80,83,86,100,116,127,162,165,166,167,170,171,172,173,174,175,176,177,178,179,180,181,183,184,185,186,188,189,190,191],[69,73],[191],[62,66,69,70,72],[61],[71],[63,67,191],[63,64,65,66],[62],[63,64,67,68],[63],[63,64,65,67]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"3ee537745b200642e38f56f73c0ca5f16746c75dbd35835e14f21129566161cb","signature":"ad71442fca3dda47af60aea68e5341272bc5cefdaebe149739d6d6f2d486014c","impliedFormat":99},{"version":"37c986a0c155e69564f7df99b17d163bc52eba91107221efe1f977399379a5c2","signature":"632937b32122fe21f4bd149bb837e5f3658bf8f7795d351a3f9fbe40e85a10c1","impliedFormat":99},{"version":"30fe3754d6f391599ac6aeae0b9464d066f3223d75f5e18dc01f986714dc45f1","signature":"fbb3d1d9fcc8f4d52232c8229febbfc9d9b8a87a4fb227a4b229f5b6cc2f2b1e","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"2ec6d59df49b754bfbf824202a8a2e91176daa8b5d7e341bb86b7b956c521f8d","signature":"422df278f7356cec707c23a2552d2273067537f4ab78e2763af19c90ac1d8d09","impliedFormat":99},{"version":"4edf370070c96393991b622bb6b452f3a657771e0ebd7880eef4f2fa139a852c","signature":"e69d2b7ea04d8c4154aed34ded6ce7379f5d472bc8820f2498167cd27abf8905","impliedFormat":99},{"version":"3c91d7b7497bba365ce8fc60b8d6806eebb9459b72bf7d5dc0ae94b98e252def","signature":"4133afa93400422465d51f9a50466144cdf92425cf611361ec84a465ebc6d1e1","impliedFormat":99},{"version":"f89e03f1f9d9fb8507a0c2ca67c68939fe66b97de30bb3784f94fd379ece164b","signature":"09273985de88b2c488c58a9122099f863ce0c762713c2c59ef657dca0b045ab7","impliedFormat":99},{"version":"5f78c46a1ae612c0d765ce4bcee086e70926cf614f8a266db7b878a7b5e774b0","signature":"ededdc6dbbbe1d3f825e77e409d34dbb53fd87d2a8be501b3bf7e2c8e42568d3","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"b4e097e708b6162b5886ff426a1efdcbdadb16cf10f3f6518722ddf33d1743f7","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"1289d631fec13c960866df27cbd8d064c727cd5346931b0bcb670c265b4fb5a0","signature":"7ba6c80f0a35f719e21776a9552b215b1a917cd001aedd293e0745bc470290e5","impliedFormat":99},{"version":"085f98e316b4e94fb96c5cbf6ac475d8c71e0ab881a3923b691aab580090504e","impliedFormat":99},{"version":"369ba5259e66ca8c7d35e3234f7a2a0863a770fdb8266505747c65cf346a0804","impliedFormat":99},{"version":"86ecd6bc8313be39460480af6e8eed773e411781a606b1ac4354d4d16a32ed69","impliedFormat":99},{"version":"d2e64a6f25013b099e83bfadb2c388d7bef3e8f3fdb25528225bbc841e7e7e3a","impliedFormat":99},{"version":"f147b6710441cf3ec3234adf63b0593ce5e8c9b692959d21d3babc8454bcf743","impliedFormat":99},{"version":"e96d5373a66c2cfbbc7e6642cf274055aa2c7ff6bd37be7480c66faf9804db6d","impliedFormat":99},{"version":"dfff4c4041d7f80ff6d115aff809f2e5f0083b08ad2bb36630d7343227840445","impliedFormat":99},{"version":"2336cce4306070beaa63d884a5c0f12da185276171b0fa125116459af53393ed","impliedFormat":99},{"version":"7c553fc9e34773ddbaabe0fa1367d4b109101d0868a008f11042bee24b5a925d","impliedFormat":99},{"version":"9962ce696fbdce2421d883ca4b062a54f982496625437ae4d3633376c5ad4a80","impliedFormat":99},{"version":"d81207db663d8a11e88e1f0c3327e2113a39126574dd1006322f7786044b0ced","impliedFormat":99},{"version":"4c17183a07a63bea2653fbfc0a942b027160ddbee823024789a415f9589de327","impliedFormat":99},{"version":"8e3d01be99d25768dda7179881de842f523e525c9213e272dadacbbee799efb3","impliedFormat":99},{"version":"f5331cb9cc00970e4831e7f0de9688e04986bcde808cac10caa3e7005e203907","impliedFormat":1},{"version":"d20bbe9029b614c171212c50c842fa7ddfc61a6bbc697710ac70e4f7f0c77d15","affectsGlobalScope":true,"impliedFormat":1},{"version":"a9d67f9ae6bb38f732c51d1081af6a0ac6cae5e122472cacc2d54db178013699","impliedFormat":1},{"version":"1296a364908ba9c646372edc18ee0e140d9a388956b0e9510eec906b19fa5b36","impliedFormat":1},{"version":"1c863a53fb796e962c4b3e54bc7b77fd04a518444263d307290ff04f619c275e","impliedFormat":1},{"version":"ff98afc32b01e580077faf85b60232b65c40df0c3ecaa765fabc347a639b4225","impliedFormat":1},{"version":"30133f9ceaa46c9a20092c382fed7b8d09393cf1934392149ea8202991edb3ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"30c05e45ec7e1247ba9b87ad2acfae4fda401737f0e8a59f78beda8a4e22b110","impliedFormat":1},{"version":"2da83cc57a94f7aee832f2a71e1a294d857492761c1f5db717ea42c1a22467bc","impliedFormat":1},{"version":"aa5cc73a5f548f5bc1b4279a730c03294dfa6e98bed228d4ed6322a4183b26ad","impliedFormat":1},{"version":"b3f1ac9fe3d18d6cd04ab1e67a5da8c33ceb47f26b47e67896a5b2f8293c8a32","impliedFormat":1},{"version":"ca88e8b07c8186ef3180bf9b6b4456311ae41bf3fe5652c27a2a3feba04136b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"592d937b7df1b74af7fa81656503fc268fee50f0e882178e851b667def34414b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fdfdf2eab2bded61ee321ec88b8e083fe8d9fedad25a16ae040740869bc64e48","impliedFormat":1},{"version":"e8067fc8b0247f8b5ad781bd22f5dd19f6a39961ba60fa6fc13cfe9e624ca92f","impliedFormat":1},{"version":"842ef57ce3043fba0b0fb7eece785140af9d2381e4bed4f2744d3060352f2fd5","impliedFormat":1},{"version":"9095b6f13d9e48704b919d9b4162c48b04236a4ce664dc07549a435d8f4e612e","impliedFormat":1},{"version":"111b4c048fe89d25bb4d2a0646623ff4c456a313ed5bfb647b2262dda69a4ff8","impliedFormat":1},{"version":"f70f62f5f87ff8900090069554f79d9757f8e385322d0e26268463e27c098204","impliedFormat":1},{"version":"0932ed41e23d22fa5359f74805c687314e4b707b3428e52419d0fbefc0d66661","impliedFormat":1},{"version":"af07f4baaca7e5cf70cb8887e7d4f23d6bb0c0dd6ca1329c3d959ea749b7a14d","impliedFormat":1},{"version":"c80402af7b0420f57372ac99885f1ab058121db72418e43d25f440abda7bbe23","impliedFormat":1},{"version":"71aba6ce66e76ccfd3ba92b8b5c6658bad293f1313f012821c4bff1dd64ca278","impliedFormat":1},{"version":"17d944cab17bc9e32975250e8abe8073702f9493582d847805e446641bd7798f","impliedFormat":1},{"version":"c6bfc70bbdee282436ee11e887cceaa5988ac4eec60d5eb9b3711748c811831a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9ca5159f56c1fe99cdfc5f942585de20695a2a343db8543383b239c050f6aa4","impliedFormat":1},{"version":"84634ac706042ac8ee3a1e141bcdee03621725ab55455dba878a5503c6c7e037","impliedFormat":1},{"version":"d796c62c3c91c22c331b7465be89d009459eb1eb689304c476275f48676eaf9e","impliedFormat":1},{"version":"51cbf03ad34c3e84d1998bd57d1fd8da333d66dd65904625d22dc01b751d99c7","impliedFormat":1},{"version":"c31bbdc27ef936061eaa9d423c5da7c5b439a4ff6b5f1b18f89b30cf119d5a56","impliedFormat":1},{"version":"2a4ae2a8f834858602089792c9e8bab00075f5c4b1708bd49c298a3e6c95a30c","impliedFormat":1},{"version":"71e29ae391229f876d8628987640c3c51c89a1c2fd980d1a72d69aeee4239f80","impliedFormat":1},{"version":"51c74d73649a4d788ed97b38bd55ebac57d85b35cbf4a0357e3382324e10bbe9","impliedFormat":1},{"version":"c8641524781fa803006a144fd3024d5273ab0c531d8a13bbeaa8c81d8241529f","impliedFormat":1},{"version":"73e218d8914afc428a24b7d1de42a2cb37f0be7ac1f5c32c4a66379572700b52","impliedFormat":1},{"version":"56ff5262d76c01b3637ca82f9749d3ec0d70cf57d87964bf3e9ba4204241849e","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e3a18040e5a95f61556e09c932393b49c3b21ce42abe0f4ed74b97173f320db","impliedFormat":1},{"version":"344922fac39b5732179b606e16781b354c160f0e9bd7f5921a0fdc9fe4ede1fb","impliedFormat":1},{"version":"c1449f51f9496bb23f33ee48ff590b815393ef560a9e80493614869fe50915da","impliedFormat":1},{"version":"87a49241df2b37e59f86619091dec2beb9ad8126d7649f0b0edb8fc99eca2499","impliedFormat":1},{"version":"07efd1f649e91967fada88d53ad64b61c1b2853d212f3eaffc946e7e13d03d67","impliedFormat":1},{"version":"6d79a0938f4b89c1c1fee2c3426754929173c8888fdfaab6b6d645269945f7bf","impliedFormat":1},{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true,"impliedFormat":1},{"version":"c6c0bd221bb1e94768e94218f8298e47633495529d60cae7d8da9374247a1cf5","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"e58a3ce75105c1557e34fab7408942d77374e047c16383e80880ed1220166dfa","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"8b96046bf5fb0a815cba6b0880d9f97b7f3a93cf187e8dcfe8e2792e97f38f87","impliedFormat":99},{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"4d979e3c12ffb6497d2b1dc5613130196d986fff764c4526360c0716a162e7e7","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"80781460eca408fe8d2937d9fdbbb780d6aac35f549621e6200c9bee1da5b8fe","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","impliedFormat":1},{"version":"c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"2ed6489ef46eb61442d067c08e87e3db501c0bfb2837eee4041a27bf3e792bb0","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"d60fe6d59d4e19ecc65359490b8535e359ca4b760d2cdb56897ca75d09d41ba3","impliedFormat":1},{"version":"f45a2a8b1777ecb50ed65e1a04bb899d4b676529b7921bd5d69b08573a00c832","impliedFormat":1},{"version":"774b783046ba3d473948132d28a69f52a295b2f378f2939304118ba571b1355e","impliedFormat":1},{"version":"b5734e05c787a40e4f9efe71f16683c5f7dc3bdb0de7c04440c855bd000f8fa7","impliedFormat":1},{"version":"14ba97f0907144771331e1349fdccb5a13526eba0647e6b447e572376d811b6f","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"7165050eddaed878c2d2cd3cafcaf171072ac39e586a048c0603712b5555f536","impliedFormat":1},{"version":"26e629be9bbd94ea1d465af83ce5a3306890520695f07be6eb016f8d734d02be","impliedFormat":99},{"version":"82e687ebd99518bc63ea04b0c3810fb6e50aa6942decd0ca6f7a56d9b9a212a6","impliedFormat":99},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","impliedFormat":1},{"version":"9ae0ca65717af0d3b554a26fd333ad9c78ad3910ad4b22140ff02acb63076927","impliedFormat":99},{"version":"e01ea380015ed698c3c0e2ccd0db72f3fc3ef1abc4519f122aa1c1a8d419a505","impliedFormat":99},{"version":"9e2534be8a9338e750d24acc6076680d49b1643ae993c74510776a92af0c1604","impliedFormat":99},{"version":"c266ab6ddc3c29b4dd77a6f0d0eb4df7dab76d066e385171d88cb97c1120e747","impliedFormat":99},{"version":"e3225dc0bec183183509d290f641786245e6652bc3dce755f7ef404060693c35","impliedFormat":99},{"version":"676ee18819ba49ed188477aa451d24c727273e54e52ce1f285f6e510aa1ad257","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"2cdd50ddc49e2d608ee848fc4ab0db9a2716624fabb4209c7c683d87e54d79c5","impliedFormat":99},{"version":"e431d664338b8470abb1750d699c7dfcebb1a25434559ef85bb96f1e82de5972","impliedFormat":99},{"version":"97c77e6bee16334203cb776e6a2c0ccd4d8b9f1f584a1e3f5aacbf9e8fb618a8","impliedFormat":99},{"version":"e1d50212cc445ba7ecf6900d3093a5e4996c1b5ce26acf96ff368bbe6e2ce136","impliedFormat":99},{"version":"a0e40a10412a69609cbd9b157169c3011b080e66ef46a6370cd1d069a53eb52b","impliedFormat":99},{"version":"d2f8dee457ef7660b604226d471d55d927c3051766bdd80353553837492635c3","impliedFormat":99},{"version":"9f3e99401b5bfdcb2ff75be940e02402b5c23cf8b4f8d0ba552c7d2d97c36568","impliedFormat":99},{"version":"a1da4169aa8ca1bc4349cf44343ffde9b8be27fd5da6137ea627b9e1e5773eba","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"112c59da5f9cf6c54a36f669ece3901164dd3c8d45a7481b21ee96dc7bc814a2","impliedFormat":99},{"version":"85e1eef97ac647e5554834bb073d5bb6bba5c0ba044fdc4232a035ada20c6ec1","impliedFormat":99},{"version":"936563dd150f5972ec0d90c2df4ca83b00b0ab770154a7c5a34ef18645c9cd6b","impliedFormat":99},{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c2bac539238be5c1676655f81b979e85d5ca932ed6bcd8ccf82612388d2f8e4","affectsGlobalScope":true,"impliedFormat":99},{"version":"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","impliedFormat":99},{"version":"95c5341fa0f95514b2eb69a7edd47f984d26517d899e71df388ddce8abb31330","impliedFormat":99},{"version":"4ff150b5a6b35b10f4b243d1b458becbba44f40ab5f0379b08cef7cdeb2f803e","impliedFormat":99},{"version":"9e2aab1f07250281a63148e3119cc145cba997be2a71850a1afb62c8ba25ea5f","impliedFormat":99},{"version":"deb6818c1889c5da9bc37d171db5855ca9b61f0caa84c734d41a678dfa931900","impliedFormat":99},{"version":"b4bb4551aea38feeb6dae35133789e8f00cc507da74c5c8627bc9170269eed5e","impliedFormat":99},{"version":"ac2414a284bdecfd6ab7b87578744ab056cd04dd574b17853cd76830ef5b72f2","impliedFormat":99},{"version":"83d63d0ede869e5c7e5659f678f6ae7082f2246e62b4640318da47e343137feb","impliedFormat":99},{"version":"21bf82cf37616d6a583ca95019daa15e278face4c73ebecda0700027c1bcce23","affectsGlobalScope":true,"impliedFormat":99},{"version":"301a6f33dcf48c99950275a3e6e589fab085bc8fcb9b46a3301051ae8edf3465","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"6ac2f74f8643fc3d0acdc315f8197a8d36900ec80e681fe389297b206b6171a8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99}],"root":[[61,74],192,193],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[87,1],[89,2],[90,3],[91,4],[92,5],[93,6],[94,7],[95,8],[96,9],[97,10],[98,11],[99,12],[100,13],[101,14],[102,15],[103,16],[104,17],[130,18],[105,19],[106,20],[107,21],[108,22],[109,23],[110,24],[111,25],[112,26],[113,27],[114,28],[115,29],[116,30],[117,31],[118,32],[119,33],[120,34],[121,35],[122,36],[123,37],[124,38],[125,39],[126,40],[127,41],[128,42],[182,43],[183,44],[188,45],[86,46],[81,47],[84,48],[176,49],[166,50],[164,51],[165,52],[173,52],[83,53],[85,53],[76,54],[80,55],[175,54],[82,56],[155,57],[153,58],[154,59],[142,60],[143,58],[150,61],[141,62],[146,63],[147,64],[152,65],[158,66],[157,67],[140,68],[148,69],[149,70],[144,71],[151,57],[145,72],[133,73],[132,74],[79,75],[172,76],[169,77],[170,76],[174,78],[162,79],[159,80],[137,81],[135,82],[136,83],[161,84],[178,85],[167,86],[189,87],[179,88],[186,89],[180,90],[184,91],[185,92],[191,93],[74,94],[192,95],[73,96],[62,97],[72,98],[193,99],[67,100],[63,101],[69,102],[64,103],[68,104]],"latestChangedDtsFile":"./dist/model/block.test.d.ts","version":"5.6.3"} \ No newline at end of file +{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/array.ts","./src/lib/matrix.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/json-table.ts","./src/block/row.ts","./src/lib/math.ts","./src/block/block.ts","./src/block/index.ts","./src/block-matrix.ts","./src/lib/html.ts","./src/block-to-html.ts","./src/ascii-to-block/model.ts","./src/ascii-to-block/ascii-to-block.ts","./src/ascii-to-block/index.ts","./src/block-to-ascii/block-to-ascii.ts","./src/block-to-ascii/index.ts","./src/json-to-table/table.ts","./src/lib/object.ts","./src/lib/binary-tree.ts","./src/json-to-table/properties-stabilizer.ts","./src/json-to-table/proportional-resize-guard.ts","./src/json-to-table/json-to-table.ts","./src/json-to-table/index.ts","./src/lib/guards.ts"],"fileIdsList":[[60,61,64,69,72],[72,73],[61],[60,61,64,68],[60,61,64,69],[75],[64,70],[60,64,65,66],[65,67],[64],[63],[77,82],[60,63,64,68,77,78,80,81],[79],[64,66,68],[62],[60]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"781fd81c0b6628bf5ce246e8c2b3a57c0cf31b3599c2e28b13c79aace631a7b2","signature":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"c297e744c56645f4a222abfcaaad2d513e185abb02e881fd925b0e581361a40a","signature":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"83b58e892474a47ba3bf60157e8f8ef2dd80a6ca8932e4f7b1fec6de769fda6c","signature":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"c808e51ad06744ba348e1f388d2b39c2348ef7d34e62ee458794d028890ab3e5","signature":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"36fc71e80c15d163aac49f4257dfdd5f9482c6bb24c960477f8f838d82d841e4","signature":"628c1950f013ce044e7346e16e63a79d17984bb230dc4c961e9c5772febea4f7","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"9416239efcdfcd7896eb0cea03842dcca802b05cfdeb4a70d70e6791976f49f6","signature":"a58baf5dad04db9f0761399a673924e5c5212655bed5a941286958c1b8bb041a","impliedFormat":99},{"version":"26581bc55dc9f49a2b38664b513b95b10976a277df45517c42ab8ae708181bbe","impliedFormat":99},{"version":"5fd96eacdd040ffa9c44397af26ef2c5bd3c72b380e00741642d7a0e7c9838d8","signature":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"3af5466687af9a674b9e6637bd9fb423a8b38549ed1fe7e21109df75ca464bdd","signature":"190c477edfa9b400d2f8fdd71e95c2330820a160ef77722dee58e5c44cf3f4f8","impliedFormat":99},{"version":"d65ca174e75667ef3325baa3f094d04fe065b42b969c0e5add54bac2996f3d03","signature":"eac05d199e4a24c87814c27120cb7ae9680ff0e242331b13086c80ced0655b52","impliedFormat":99},{"version":"746326ee9146b9b804ef55e699f6782b0302e62839f60d6c9d550e10629d172b","signature":"bd75eb59b9dcf0ffde6277970370642cb4efd0424d4f71df2a2d4d84fc7d826c","impliedFormat":99},{"version":"652f5424eb8280d175340926cc3dafb328ab13e90d30266948c0442b18300aa3","signature":"6a2f591a86648b21054f92a41f020bbcf1606f8cd7d8a530cb4968471872fef1","impliedFormat":99},{"version":"a97c7416f4f20c2826e142455d8d1a3e6818b45c9ed9e21512381f24185659d3","signature":"6842b2fe99736bd3bdc6635bdccf0a0684d9bb9fc7a00e930bcbf7bae90e8306","impliedFormat":99},{"version":"196eaebec8184d707a8da4b8b693cf858ca5c571066e8e210c68da0def0d9c3d","signature":"121555fd7f3f5d1e2704115d03532c4151100c7633421c3aa6c83349bfec16b6","impliedFormat":99},{"version":"2994cf5ef22986f35179ab17883ab77b80a7fc9816c6439246f97f948443f98d","signature":"f917b950d4ee512747703a6a43e1f95c061b5cd082f53d6625b87e2f68a6cf01","impliedFormat":99},{"version":"ef7a61a668c8573ca636e6b146308316ca8bf6374c3aa0f64ab9d4cab66c052e","signature":"8d0f404138d3dcd60c38181cf4512feaa67e4b192daa750a55d1e0ae7b1e5030","impliedFormat":99},{"version":"ee302a2474169e130a3c8be45c042681dd1386b5d004f45124637e114f66affa","signature":"f303a34d688ba59fbe48e2b50f32dfa740206a3ab0cab81fe918b2439a5d6acb","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"ac4aad8e54ddecd4039ba162b6ecf80efacb88aa757f8495030d8dda0e1b8461","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"a03b5cb98799e9a0e718a82c0136d0234c4ab292a8ab9cc9c383129652d09f1b","signature":"6429f98455a68db1b0bbcd4301e78ec28f911dbb8a6c3721a0bfc980703e28ba","impliedFormat":99},{"version":"24223bf90971e6b5398a1460831d87982a2bfa8e79af773982fdd8886bf28700","signature":"58fd9e4e2871438529589e2f43d7cc41bb266a2a7373840e3e6c12dd621c0685","impliedFormat":99},{"version":"028404b0312286966b397600a9b7070018a6999b80fe321ab4342509b9b7bf63","impliedFormat":99},{"version":"9c46b162218bbd344c8c3ac079613a16dd70b92136f2de934c28ed9915fe9aed","signature":"1a7ff0e3073030f1b25fba11d4741c5472d4f6a58681507e4cbe78afb5fa297e","impliedFormat":99}],"root":[[60,84]],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[73,1],[74,2],[72,3],[69,4],[75,5],[76,6],[71,7],[67,8],[68,9],[65,10],[64,11],[83,12],[82,13],[80,14],[81,10],[77,15],[63,16],[61,17]],"latestChangedDtsFile":"./dist/json-to-table/index.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e6e4b7..4e8c278 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,9 @@ settings: catalogs: default: + vite: + specifier: ^5.4.9 + version: 5.4.10 vitest: specifier: ^2.1.3 version: 2.1.3 @@ -36,6 +39,19 @@ importers: specifier: ~5.6.2 version: 5.6.3 + packages/block-to-xlsx: + dependencies: + '@json-table/core': + specifier: workspace:^0.0.0 + version: link:../core + exceljs: + specifier: ^4.4.0 + version: 4.4.0 + devDependencies: + vitest: + specifier: 'catalog:' + version: 2.1.3 + packages/core: devDependencies: vitest: @@ -44,6 +60,12 @@ importers: web: dependencies: + '@json-table/block-to-xlsx': + specifier: workspace:^0.0.0 + version: link:../packages/block-to-xlsx + '@json-table/core': + specifier: workspace:^0.0.0 + version: link:../packages/core '@sjsf/ajv8-validator': specifier: ^1.1.1 version: 1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(ajv@8.17.1) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 80c2f1b..6244502 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,6 @@ packages: - "web" - - "legacy" + - "packages/*" catalog: vite: ^5.4.9 diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..6fe83f3 --- /dev/null +++ b/turbo.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "check": { + "dependsOn": [ + "^build" + ] + }, + "build": { + "dependsOn": [ + "check" + ], + "outputs": [ + "dist/**" + ] + }, + "dev": { + "dependsOn": [ + "^build" + ], + "persistent": true, + "cache": false + }, + "test": { + "dependsOn": [ + "^build" + ] + }, + "preview": { + "persistent": true, + "cache": false, + "dependsOn": [ + "build" + ] + } + } +} \ No newline at end of file diff --git a/web/package.json b/web/package.json index a1585db..a596e07 100644 --- a/web/package.json +++ b/web/package.json @@ -28,6 +28,8 @@ "ajv": "^8.17.1", "browser-fs-access": "^0.35.0", "exceljs": "^4.4.0", - "lz-string": "^1.5.0" + "lz-string": "^1.5.0", + "@json-table/core": "workspace:^0.0.0", + "@json-table/block-to-xlsx": "workspace:^0.0.0" } } From 884c026a4c8135a2eef118825c2660148bb37274 Mon Sep 17 00:00:00 2001 From: Krasilnikov Roman Date: Sat, 26 Oct 2024 17:33:21 +0300 Subject: [PATCH 3/4] Move Web App --- .github/workflows/deploy-pages.yml | 49 -- .github/workflows/release.yml | 74 +++ README.md | 29 +- {web => apps/web}/.gitignore | 0 {web => apps/web}/.vscode/extensions.json | 0 {web => apps/web}/README.md | 0 {web => apps/web}/index.html | 2 +- {web => apps/web}/package.json | 6 +- {web => apps/web}/postcss.config.js | 0 {web => apps/web}/public/company.json | 0 {web => apps/web}/public/deduplication.json | 0 {web => apps/web}/public/large.json | 0 {web => apps/web}/public/test.json | 0 {web => apps/web}/public/vite.svg | 0 {web => apps/web}/src/app-worker/action.ts | 0 .../web}/src/app-worker/app-worker.ts | 0 {web => apps/web}/src/app-worker/core.ts | 16 +- .../web}/src/app-worker/create-table.ts | 31 +- apps/web/src/app-worker/html.ts | 34 ++ {web => apps/web}/src/app-worker/index.ts | 0 .../web}/src/app-worker/remote-app-worker.ts | 0 apps/web/src/app-worker/xlsx.ts | 19 + {web => apps/web}/src/app.css | 0 {web => apps/web}/src/core.ts | 2 +- .../web}/src/download-table-page.svelte | 0 {web => apps/web}/src/html-table-page.svelte | 0 {web => apps/web}/src/init.ts | 0 {web => apps/web}/src/layout.svelte | 2 +- {web => apps/web}/src/lib/actor.ts | 2 +- {web => apps/web}/src/lib/browser.ts | 0 .../web}/src/lib/copy-to-clipboard.ts | 0 apps/web/src/lib/entry.ts | 5 + apps/web/src/lib/error.ts | 3 + apps/web/src/lib/file.ts | 18 + {web => apps/web}/src/lib/function.ts | 0 {web => apps/web}/src/lib/json-parser.ts | 0 .../web}/src/lib/string-compressor.ts | 0 {web => apps/web}/src/lib/url.ts | 0 {web => apps/web}/src/lib/worker-actor.ts | 2 +- {web => apps/web}/src/main-page.svelte | 13 +- {web => apps/web}/src/main.ts | 1 + {web => apps/web}/src/theme-picker.svelte | 0 {web => apps/web}/src/vite-env.d.ts | 0 {web => apps/web}/svelte.config.js | 0 {web => apps/web}/tailwind.config.js | 0 apps/web/tsconfig.json | 21 + {web => apps/web}/vite.config.ts | 0 packages/block-to-xlsx/README.md | 27 + packages/block-to-xlsx/package.json | 2 +- packages/block-to-xlsx/tsconfig.tsbuildinfo | 2 +- packages/core/README.md | 70 +++ packages/core/package.json | 2 +- packages/core/src/lib/guards.ts | 4 - packages/core/tsconfig.tsbuildinfo | 2 +- pnpm-lock.yaml | 54 +- pnpm-workspace.yaml | 2 +- .../lib/__fixtures__/different-headers.json | 11 - web/src/lib/__fixtures__/empty-arrays.json | 22 - web/src/lib/__fixtures__/parsing-error.json | 10 - .../simple-headers-duplication.json | 5 - .../simple-indexes-deduplication.json | 5 - web/src/lib/__fixtures__/uniq-headers.json | 13 - web/src/lib/__fixtures__/wrong-sizes.json | 29 - web/src/lib/array.ts | 56 -- web/src/lib/ascii-to-block/core.ts | 106 ---- .../ascii-to-block/from-ascii-table.test.ts | 43 -- .../lib/ascii-to-block/from-ascii-table.ts | 86 --- web/src/lib/ascii-to-block/index.ts | 2 - web/src/lib/binary-tree.ts | 27 - web/src/lib/block-matrix.ts | 94 ---- web/src/lib/block-to-ascii.test.ts | 118 ----- web/src/lib/block-to-ascii.ts | 245 --------- web/src/lib/block-to-html.ts | 41 -- web/src/lib/block-to-xlsx.test.ts | 169 ------ web/src/lib/block-to-xlsx.ts | 142 ----- web/src/lib/entry.ts | 56 -- web/src/lib/file.ts | 49 -- web/src/lib/guards.ts | 58 -- web/src/lib/html.ts | 34 -- web/src/lib/json-schema.ts | 43 -- web/src/lib/json-table/block.test.ts | 495 ------------------ web/src/lib/json-table/block.ts | 350 ------------- web/src/lib/json-table/core.ts | 119 ----- web/src/lib/json-table/index.ts | 4 - web/src/lib/json-table/row.ts | 33 -- web/src/lib/json-table/table.ts | 279 ---------- web/src/lib/json-to-table.test.ts | 242 --------- web/src/lib/json-to-table.ts | 211 -------- web/src/lib/json-traverser.ts | 32 -- web/src/lib/json.ts | 142 ----- web/src/lib/math.ts | 10 - web/src/lib/matrix.ts | 34 -- web/src/lib/object.ts | 33 -- web/src/lib/ord.ts | 1 - web/tsconfig.json | 25 - web/tsconfig.node.json | 13 - 96 files changed, 369 insertions(+), 3612 deletions(-) delete mode 100644 .github/workflows/deploy-pages.yml create mode 100644 .github/workflows/release.yml rename {web => apps/web}/.gitignore (100%) rename {web => apps/web}/.vscode/extensions.json (100%) rename {web => apps/web}/README.md (100%) rename {web => apps/web}/index.html (95%) rename {web => apps/web}/package.json (91%) rename {web => apps/web}/postcss.config.js (100%) rename {web => apps/web}/public/company.json (100%) rename {web => apps/web}/public/deduplication.json (100%) rename {web => apps/web}/public/large.json (100%) rename {web => apps/web}/public/test.json (100%) rename {web => apps/web}/public/vite.svg (100%) rename {web => apps/web}/src/app-worker/action.ts (100%) rename {web => apps/web}/src/app-worker/app-worker.ts (100%) rename {web => apps/web}/src/app-worker/core.ts (82%) rename {web => apps/web}/src/app-worker/create-table.ts (80%) create mode 100644 apps/web/src/app-worker/html.ts rename {web => apps/web}/src/app-worker/index.ts (100%) rename {web => apps/web}/src/app-worker/remote-app-worker.ts (100%) create mode 100644 apps/web/src/app-worker/xlsx.ts rename {web => apps/web}/src/app.css (100%) rename {web => apps/web}/src/core.ts (98%) rename {web => apps/web}/src/download-table-page.svelte (100%) rename {web => apps/web}/src/html-table-page.svelte (100%) rename {web => apps/web}/src/init.ts (100%) rename {web => apps/web}/src/layout.svelte (84%) rename {web => apps/web}/src/lib/actor.ts (99%) rename {web => apps/web}/src/lib/browser.ts (100%) rename {web => apps/web}/src/lib/copy-to-clipboard.ts (100%) create mode 100644 apps/web/src/lib/entry.ts create mode 100644 apps/web/src/lib/error.ts create mode 100644 apps/web/src/lib/file.ts rename {web => apps/web}/src/lib/function.ts (100%) rename {web => apps/web}/src/lib/json-parser.ts (100%) rename {web => apps/web}/src/lib/string-compressor.ts (100%) rename {web => apps/web}/src/lib/url.ts (100%) rename {web => apps/web}/src/lib/worker-actor.ts (99%) rename {web => apps/web}/src/main-page.svelte (99%) rename {web => apps/web}/src/main.ts (99%) rename {web => apps/web}/src/theme-picker.svelte (100%) rename {web => apps/web}/src/vite-env.d.ts (100%) rename {web => apps/web}/svelte.config.js (100%) rename {web => apps/web}/tailwind.config.js (100%) create mode 100644 apps/web/tsconfig.json rename {web => apps/web}/vite.config.ts (100%) create mode 100644 packages/block-to-xlsx/README.md create mode 100644 packages/core/README.md delete mode 100644 web/src/lib/__fixtures__/different-headers.json delete mode 100644 web/src/lib/__fixtures__/empty-arrays.json delete mode 100644 web/src/lib/__fixtures__/parsing-error.json delete mode 100644 web/src/lib/__fixtures__/simple-headers-duplication.json delete mode 100644 web/src/lib/__fixtures__/simple-indexes-deduplication.json delete mode 100644 web/src/lib/__fixtures__/uniq-headers.json delete mode 100644 web/src/lib/__fixtures__/wrong-sizes.json delete mode 100644 web/src/lib/array.ts delete mode 100644 web/src/lib/ascii-to-block/core.ts delete mode 100644 web/src/lib/ascii-to-block/from-ascii-table.test.ts delete mode 100644 web/src/lib/ascii-to-block/from-ascii-table.ts delete mode 100644 web/src/lib/ascii-to-block/index.ts delete mode 100644 web/src/lib/binary-tree.ts delete mode 100644 web/src/lib/block-matrix.ts delete mode 100644 web/src/lib/block-to-ascii.test.ts delete mode 100644 web/src/lib/block-to-ascii.ts delete mode 100644 web/src/lib/block-to-html.ts delete mode 100644 web/src/lib/block-to-xlsx.test.ts delete mode 100644 web/src/lib/block-to-xlsx.ts delete mode 100644 web/src/lib/entry.ts delete mode 100644 web/src/lib/file.ts delete mode 100644 web/src/lib/guards.ts delete mode 100644 web/src/lib/html.ts delete mode 100644 web/src/lib/json-schema.ts delete mode 100644 web/src/lib/json-table/block.test.ts delete mode 100644 web/src/lib/json-table/block.ts delete mode 100644 web/src/lib/json-table/core.ts delete mode 100644 web/src/lib/json-table/index.ts delete mode 100644 web/src/lib/json-table/row.ts delete mode 100644 web/src/lib/json-table/table.ts delete mode 100644 web/src/lib/json-to-table.test.ts delete mode 100644 web/src/lib/json-to-table.ts delete mode 100644 web/src/lib/json-traverser.ts delete mode 100644 web/src/lib/json.ts delete mode 100644 web/src/lib/math.ts delete mode 100644 web/src/lib/matrix.ts delete mode 100644 web/src/lib/object.ts delete mode 100644 web/src/lib/ord.ts delete mode 100644 web/tsconfig.json delete mode 100644 web/tsconfig.node.json diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml deleted file mode 100644 index 1716196..0000000 --- a/.github/workflows/deploy-pages.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Deploy static content to Pages - -on: - push: - branches: ['main'] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: 'pages' - cancel-in-progress: true - -jobs: - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Node - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'npm' - cache-dependency-path: web/package-lock.json - - - name: Install dependencies - working-directory: web/ - run: npm ci - - - name: Build - working-directory: web/ - run: npm run build - - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: './web/dist' - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c3d317b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,74 @@ +name: Release +on: + push: + branches: + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +permissions: + id-token: write + contents: write + pull-requests: write + pages: write + +jobs: + version: + timeout-minutes: 15 + runs-on: ubuntu-latest + steps: + - name: Checkout code repository + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Cache turbo build setup + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- + + - name: Build + run: pnpm run ci:build + + - name: create and publish versions + uses: changesets/action@v1 + with: + version: pnpm ci:version + publish: pnpm exec changeset publish + commit: "[ci] release" + title: "[ci] release" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Merge apps build outputs + run: mv apps/docs/dist apps/web/dist/docs + + - name: Upload Pages Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: "apps/web/dist/" + + deploy: + needs: version + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md index d92c6c9..16394c8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,27 @@ -# JSON to Table +# JSON Table -[App for converting JSON data to table (HTML, XLSX, ASCII)](https://x0k.github.io/json-to-table/) +Set of tools for converting JSON data to table (HTML, XLSX, ASCII). -## Example +- [Web App](https://x0k.github.io/json-table/) +- [Documentation](https://x0k.github.io/json-table/docs/) + +## Install + +```shell +npm install @json-table/core +``` + +## Usage + +```typescript +import { makeTableInPlaceBaker, makeTableFactory } from "@json-table/core/json-to-table"; +import { blockToASCII } from "@json-table/core/block-to-ascii"; + +const cornerCellValue = "№"; +const factory = makeTableFactory({ cornerCellValue }); +const bake = makeTableInPlaceBaker({ cornerCellValue, head: true, indexes: true }); +const asciiTable = blockToASCII(bake(factory(data))); +``` Input data: @@ -47,6 +66,10 @@ Output: +-----+---------------+--------+------+-----------+---+-------+-----+--------+ ``` +## License + +MIT + ## See also - Use this app to render JSON responses as tables in your browser by [WebMaid](https://github.com/x0k/web-maid/tree/main/examples/json-to-table) diff --git a/web/.gitignore b/apps/web/.gitignore similarity index 100% rename from web/.gitignore rename to apps/web/.gitignore diff --git a/web/.vscode/extensions.json b/apps/web/.vscode/extensions.json similarity index 100% rename from web/.vscode/extensions.json rename to apps/web/.vscode/extensions.json diff --git a/web/README.md b/apps/web/README.md similarity index 100% rename from web/README.md rename to apps/web/README.md diff --git a/web/index.html b/apps/web/index.html similarity index 95% rename from web/index.html rename to apps/web/index.html index d40bcb7..322d8d0 100644 --- a/web/index.html +++ b/apps/web/index.html @@ -5,7 +5,7 @@ - JSON to Table + JSON Table
-

JSON to Table

{@render append?.()}
+

JSON Table

{@render append?.()}
{@render children()}
diff --git a/web/src/lib/actor.ts b/apps/web/src/lib/actor.ts similarity index 99% rename from web/src/lib/actor.ts rename to apps/web/src/lib/actor.ts index 38d202a..77c8d6b 100644 --- a/web/src/lib/actor.ts +++ b/apps/web/src/lib/actor.ts @@ -1,4 +1,4 @@ -import { neverError } from "@/lib/guards"; +import { neverError } from './error'; export type ActorId = string; diff --git a/web/src/lib/browser.ts b/apps/web/src/lib/browser.ts similarity index 100% rename from web/src/lib/browser.ts rename to apps/web/src/lib/browser.ts diff --git a/web/src/lib/copy-to-clipboard.ts b/apps/web/src/lib/copy-to-clipboard.ts similarity index 100% rename from web/src/lib/copy-to-clipboard.ts rename to apps/web/src/lib/copy-to-clipboard.ts diff --git a/apps/web/src/lib/entry.ts b/apps/web/src/lib/entry.ts new file mode 100644 index 0000000..53212b1 --- /dev/null +++ b/apps/web/src/lib/entry.ts @@ -0,0 +1,5 @@ +export type Entry = [string, V] + +export function transformValue(map: (value: V) => R) { + return ([key, value]: Entry): Entry => [key, map(value)] +} diff --git a/apps/web/src/lib/error.ts b/apps/web/src/lib/error.ts new file mode 100644 index 0000000..199d5e6 --- /dev/null +++ b/apps/web/src/lib/error.ts @@ -0,0 +1,3 @@ +export function neverError(value: never, message: string) { + return new Error(`${message}: ${value}`); +} \ No newline at end of file diff --git a/apps/web/src/lib/file.ts b/apps/web/src/lib/file.ts new file mode 100644 index 0000000..568aa17 --- /dev/null +++ b/apps/web/src/lib/file.ts @@ -0,0 +1,18 @@ +export function createXLSBlob(data: ArrayBuffer) { + return new Blob([data], { + type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8', + }) +} + +export function createFileURL(data: MediaSource | Blob) { + return URL.createObjectURL(data) +} + +export function makeDownloadFileByUrl(filename: string) { + return (url: string) => { + const a = document.createElement('a') + a.setAttribute('href', url) + a.setAttribute('download', filename) + a.click() + } +} diff --git a/web/src/lib/function.ts b/apps/web/src/lib/function.ts similarity index 100% rename from web/src/lib/function.ts rename to apps/web/src/lib/function.ts diff --git a/web/src/lib/json-parser.ts b/apps/web/src/lib/json-parser.ts similarity index 100% rename from web/src/lib/json-parser.ts rename to apps/web/src/lib/json-parser.ts diff --git a/web/src/lib/string-compressor.ts b/apps/web/src/lib/string-compressor.ts similarity index 100% rename from web/src/lib/string-compressor.ts rename to apps/web/src/lib/string-compressor.ts diff --git a/web/src/lib/url.ts b/apps/web/src/lib/url.ts similarity index 100% rename from web/src/lib/url.ts rename to apps/web/src/lib/url.ts diff --git a/web/src/lib/worker-actor.ts b/apps/web/src/lib/worker-actor.ts similarity index 99% rename from web/src/lib/worker-actor.ts rename to apps/web/src/lib/worker-actor.ts index ab7d8c3..56dfd5c 100644 --- a/web/src/lib/worker-actor.ts +++ b/apps/web/src/lib/worker-actor.ts @@ -8,7 +8,7 @@ import { type RequestMessageId, isResponseMessage, MessageType, -} from "@/lib/actor"; +} from "./actor"; export class WorkerActor< I extends Request, diff --git a/web/src/main-page.svelte b/apps/web/src/main-page.svelte similarity index 99% rename from web/src/main-page.svelte rename to apps/web/src/main-page.svelte index 38470d5..0a66ac2 100644 --- a/web/src/main-page.svelte +++ b/apps/web/src/main-page.svelte @@ -10,7 +10,11 @@ import { theme as daisyTheme } from "@sjsf/daisyui-theme"; import { translation } from "@sjsf/form/translations/en"; - import { OutputFormat, type TransformConfig } from "./app-worker"; + import { isValidUrl } from "./lib/url"; + import { copyTextToClipboard } from "./lib/copy-to-clipboard"; + import { makeDownloadFileByUrl } from './lib/file'; + import { createPage } from './lib/browser'; + import { fetchAsText, makeSource, @@ -20,12 +24,9 @@ TRANSFORMED_UI_SCHEMA, type Source, } from "./core"; - import { isValidUrl } from "./lib/url"; - import Layout from "./layout.svelte"; + import { OutputFormat, type TransformConfig } from "./app-worker"; import { appWorker, compressor } from "./init"; - import { copyTextToClipboard } from "./lib/copy-to-clipboard"; - import { makeDownloadFileByUrl } from './lib/file'; - import { createPage } from './lib/browser'; + import Layout from "./layout.svelte"; import ThemePicker from './theme-picker.svelte'; const { diff --git a/web/src/main.ts b/apps/web/src/main.ts similarity index 99% rename from web/src/main.ts rename to apps/web/src/main.ts index 778b600..77950af 100644 --- a/web/src/main.ts +++ b/apps/web/src/main.ts @@ -1,6 +1,7 @@ import { mount } from "svelte"; import { isValidUrl } from "./lib/url"; + import MainPage from "./main-page.svelte"; import DownloadTablePage from "./download-table-page.svelte"; import HtmlTablePage from "./html-table-page.svelte"; diff --git a/web/src/theme-picker.svelte b/apps/web/src/theme-picker.svelte similarity index 100% rename from web/src/theme-picker.svelte rename to apps/web/src/theme-picker.svelte diff --git a/web/src/vite-env.d.ts b/apps/web/src/vite-env.d.ts similarity index 100% rename from web/src/vite-env.d.ts rename to apps/web/src/vite-env.d.ts diff --git a/web/svelte.config.js b/apps/web/svelte.config.js similarity index 100% rename from web/svelte.config.js rename to apps/web/svelte.config.js diff --git a/web/tailwind.config.js b/apps/web/tailwind.config.js similarity index 100% rename from web/tailwind.config.js rename to apps/web/tailwind.config.js diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json new file mode 100644 index 0000000..8ce33e2 --- /dev/null +++ b/apps/web/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "@total-typescript/tsconfig/bundler/dom/app", + "compilerOptions": { + "moduleResolution": "Bundler", + "rootDir": "src", + "types": [ + "vite/client", + ], + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ], + } + }, + "include": [ + "src/**/*.ts", + "src/**/*.js", + "src/**/*.svelte" + ], +} \ No newline at end of file diff --git a/web/vite.config.ts b/apps/web/vite.config.ts similarity index 100% rename from web/vite.config.ts rename to apps/web/vite.config.ts diff --git a/packages/block-to-xlsx/README.md b/packages/block-to-xlsx/README.md new file mode 100644 index 0000000..93af2fd --- /dev/null +++ b/packages/block-to-xlsx/README.md @@ -0,0 +1,27 @@ +# @json-table/block-to-xlsx + +The [exceljs](https://github.com/exceljs/exceljs) based block to XLSX converter for [JSON Table](https://github.com/x0k/json-table). + +## Install + +```shell +npm install @json-table/core @json-table/block-to-xlsx +``` + +## Usage + +```typescript +import { makeTableInPlaceBaker, makeTableFactory } from "@json-table/core/json-to-table"; +import { renderBlockOnWorksheet } from "@json-table/block-to-xlsx"; +import { Workbook } from "exceljs"; + +const cornerCellValue = "№"; +const factory = makeTableFactory({ cornerCellValue }); +const bake = makeTableInPlaceBaker({ cornerCellValue, head: true, indexes: true }); +const wb = new Workbook(); +renderBlockOnWorksheet(wb.addWorksheet("Table"), bake(factory(data))); +``` + +## License + +MIT diff --git a/packages/block-to-xlsx/package.json b/packages/block-to-xlsx/package.json index ee1ac68..d6db988 100644 --- a/packages/block-to-xlsx/package.json +++ b/packages/block-to-xlsx/package.json @@ -1,7 +1,7 @@ { "name": "@json-table/block-to-xlsx", "version": "0.0.0", - "description": "Library for creating tables from JSON", + "description": "Library for rendering JSON Table to XLSX", "license": "MIT", "keywords": [ "json", diff --git a/packages/block-to-xlsx/tsconfig.tsbuildinfo b/packages/block-to-xlsx/tsconfig.tsbuildinfo index 086f0a9..0b16170 100644 --- a/packages/block-to-xlsx/tsconfig.tsbuildinfo +++ b/packages/block-to-xlsx/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/array.ts","./src/lib/matrix.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/json-table.ts","./src/block/row.ts","./src/lib/math.ts","./src/block/block.ts","./src/block/index.ts","./src/block-matrix.ts","./src/block-to-ascii/block-to-ascii.ts","./src/block-to-ascii/index.ts","./src/lib/object.ts","./src/json-to-table/table.ts","./src/lib/binary-tree.ts","./src/json-to-table/properties-stabilizer.ts","./src/json-to-table/proportional-resize-guard.ts","./src/json-to-table/json-to-table.ts","./src/json-to-table/index.ts","./src/lib/guards.ts"],"fileIdsList":[[60,61,64,68],[60,61,64,69],[70],[60,64,65,66],[65,67],[64],[63],[77],[60,63,64,68,72,73,75,76],[74],[64,66,68],[62],[60]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"781fd81c0b6628bf5ce246e8c2b3a57c0cf31b3599c2e28b13c79aace631a7b2","signature":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"c297e744c56645f4a222abfcaaad2d513e185abb02e881fd925b0e581361a40a","signature":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"83b58e892474a47ba3bf60157e8f8ef2dd80a6ca8932e4f7b1fec6de769fda6c","signature":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"c808e51ad06744ba348e1f388d2b39c2348ef7d34e62ee458794d028890ab3e5","signature":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"36fc71e80c15d163aac49f4257dfdd5f9482c6bb24c960477f8f838d82d841e4","signature":"628c1950f013ce044e7346e16e63a79d17984bb230dc4c961e9c5772febea4f7","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"9416239efcdfcd7896eb0cea03842dcca802b05cfdeb4a70d70e6791976f49f6","signature":"a58baf5dad04db9f0761399a673924e5c5212655bed5a941286958c1b8bb041a","impliedFormat":99},{"version":"26581bc55dc9f49a2b38664b513b95b10976a277df45517c42ab8ae708181bbe","impliedFormat":99},{"version":"5fd96eacdd040ffa9c44397af26ef2c5bd3c72b380e00741642d7a0e7c9838d8","signature":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"196eaebec8184d707a8da4b8b693cf858ca5c571066e8e210c68da0def0d9c3d","signature":"121555fd7f3f5d1e2704115d03532c4151100c7633421c3aa6c83349bfec16b6","impliedFormat":99},{"version":"2994cf5ef22986f35179ab17883ab77b80a7fc9816c6439246f97f948443f98d","signature":"f917b950d4ee512747703a6a43e1f95c061b5cd082f53d6625b87e2f68a6cf01","impliedFormat":99},{"version":"ee302a2474169e130a3c8be45c042681dd1386b5d004f45124637e114f66affa","signature":"f303a34d688ba59fbe48e2b50f32dfa740206a3ab0cab81fe918b2439a5d6acb","impliedFormat":99},{"version":"ef7a61a668c8573ca636e6b146308316ca8bf6374c3aa0f64ab9d4cab66c052e","signature":"8d0f404138d3dcd60c38181cf4512feaa67e4b192daa750a55d1e0ae7b1e5030","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"ac4aad8e54ddecd4039ba162b6ecf80efacb88aa757f8495030d8dda0e1b8461","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"a03b5cb98799e9a0e718a82c0136d0234c4ab292a8ab9cc9c383129652d09f1b","signature":"6429f98455a68db1b0bbcd4301e78ec28f911dbb8a6c3721a0bfc980703e28ba","impliedFormat":99},{"version":"24223bf90971e6b5398a1460831d87982a2bfa8e79af773982fdd8886bf28700","signature":"58fd9e4e2871438529589e2f43d7cc41bb266a2a7373840e3e6c12dd621c0685","impliedFormat":99},{"version":"fc4e3acfe17b184954768d985d6046aeccaaaa5f54fb6fbce1f03b707abe3dc3","impliedFormat":99},{"version":"9c46b162218bbd344c8c3ac079613a16dd70b92136f2de934c28ed9915fe9aed","signature":"1a7ff0e3073030f1b25fba11d4741c5472d4f6a58681507e4cbe78afb5fa297e","impliedFormat":99}],"root":[[60,79]],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[69,1],[70,2],[71,3],[67,4],[68,5],[65,6],[64,7],[78,8],[77,9],[75,10],[76,6],[73,11],[63,12],[61,13]],"latestChangedDtsFile":"./dist/json-to-table/index.d.ts","version":"5.6.3"} \ No newline at end of file +{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/index.d.ts","../core/dist/lib/matrix.d.ts","../core/dist/lib/array.d.ts","../core/dist/lib/math.d.ts","../core/dist/lib/ord.d.ts","../core/dist/lib/json.d.ts","../core/dist/json-table.d.ts","../core/dist/block-matrix.d.ts","./src/block-to-xlsx.ts"],"fileIdsList":[[60,61,62,63,65,66,67],[61,66],[65],[64]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"d10d70b4fe21847c61cb0ab72b60162d2cc23ef64e5606822d110cce2dbc9dd8","impliedFormat":1},{"version":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"3194fff6fdf275fb301cc1617e96e6cf6c67aa42dd90f1c7b730afa468a9b20b","signature":"7a06070c01747c08732bbb22022b5c940cb21ef20e6f3cdbe3a0532e88ad3014","impliedFormat":99}],"root":[68],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[68,1],[67,2],[66,3],[65,4]],"latestChangedDtsFile":"./dist/block-to-xlsx.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/packages/core/README.md b/packages/core/README.md new file mode 100644 index 0000000..7122464 --- /dev/null +++ b/packages/core/README.md @@ -0,0 +1,70 @@ +# @json-table/core + +Set of tools for converting JSON data to table (HTML, XLSX, ASCII). + +- [Web App](https://x0k.github.io/json-table/) +- [Documentation](https://x0k.github.io/json-table/docs/) + +## Install + +```shell +npm install @json-table/core +``` + +## Usage + +```typescript +import { makeTableInPlaceBaker, makeTableFactory } from "@json-table/core/json-to-table"; +import { blockToASCII } from "@json-table/core/block-to-ascii"; + +const cornerCellValue = "№"; +const factory = makeTableFactory({ cornerCellValue }); +const bake = makeTableInPlaceBaker({ cornerCellValue, head: true, indexes: true }); +const asciiTable = blockToASCII(bake(factory(data))); +``` + +Input data: + +```json +{ + "key": "val", + "primitiveArr": [1, "two", false], + "object": { + "key1": "value1", + "key2": 789, + "key3": { + "nestedKey": "nestedVal" + } + }, + "nestedArray": [ + { + "name": "John", + "age": 30, + "isStud": false + }, + { + "name": "Alice", + "age": 25, + "isStud": true + } + ] +} +``` + +Output: + +``` ++-----+---------------+---------------------------+--------------------------+ +| key | primitiveArr | object | nestedArray | ++-----+---------------+--------+------+-----------+---+-------+-----+--------+ +| | | key1 | key2 | key3 | № | name | age | isStud | +| | +--------+------+-----------+---+-------+-----+--------+ +| val | 1, two, false | | | nestedKey | 1 | John | 30 | false | +| | | value1 | 789 +-----------+---+-------+-----+--------+ +| | | | | nestedVal | 2 | Alice | 25 | true | ++-----+---------------+--------+------+-----------+---+-------+-----+--------+ +``` + +## License + +MIT diff --git a/packages/core/package.json b/packages/core/package.json index 3c87a71..ecdb4c9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@json-table/core", "version": "0.0.0", - "description": "Library for creating tables from JSON", + "description": "Library for creating tables from JSON data", "license": "MIT", "keywords": [ "json", diff --git a/packages/core/src/lib/guards.ts b/packages/core/src/lib/guards.ts index 7cad0b3..af6d8e5 100644 --- a/packages/core/src/lib/guards.ts +++ b/packages/core/src/lib/guards.ts @@ -2,10 +2,6 @@ export type Nothing = null | undefined export type Falsy = 0 | '' | false | Nothing -export function neverError(value: never, message: string) { - return new Error(`${message}: ${value}`); -} - export function isDefined(value: T | undefined): value is T { return value !== undefined } diff --git a/packages/core/tsconfig.tsbuildinfo b/packages/core/tsconfig.tsbuildinfo index 7ca32a2..e002f05 100644 --- a/packages/core/tsconfig.tsbuildinfo +++ b/packages/core/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/array.ts","./src/lib/matrix.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/json-table.ts","./src/block/row.ts","./src/lib/math.ts","./src/block/block.ts","./src/block/index.ts","./src/block-matrix.ts","./src/lib/html.ts","./src/block-to-html.ts","./src/ascii-to-block/model.ts","./src/ascii-to-block/ascii-to-block.ts","./src/ascii-to-block/index.ts","./src/block-to-ascii/block-to-ascii.ts","./src/block-to-ascii/index.ts","./src/json-to-table/table.ts","./src/lib/object.ts","./src/lib/binary-tree.ts","./src/json-to-table/properties-stabilizer.ts","./src/json-to-table/proportional-resize-guard.ts","./src/json-to-table/json-to-table.ts","./src/json-to-table/index.ts","./src/lib/guards.ts"],"fileIdsList":[[60,61,64,69,72],[72,73],[61],[60,61,64,68],[60,61,64,69],[75],[64,70],[60,64,65,66],[65,67],[64],[63],[77,82],[60,63,64,68,77,78,80,81],[79],[64,66,68],[62],[60]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"781fd81c0b6628bf5ce246e8c2b3a57c0cf31b3599c2e28b13c79aace631a7b2","signature":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"c297e744c56645f4a222abfcaaad2d513e185abb02e881fd925b0e581361a40a","signature":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"83b58e892474a47ba3bf60157e8f8ef2dd80a6ca8932e4f7b1fec6de769fda6c","signature":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"c808e51ad06744ba348e1f388d2b39c2348ef7d34e62ee458794d028890ab3e5","signature":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"36fc71e80c15d163aac49f4257dfdd5f9482c6bb24c960477f8f838d82d841e4","signature":"628c1950f013ce044e7346e16e63a79d17984bb230dc4c961e9c5772febea4f7","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"9416239efcdfcd7896eb0cea03842dcca802b05cfdeb4a70d70e6791976f49f6","signature":"a58baf5dad04db9f0761399a673924e5c5212655bed5a941286958c1b8bb041a","impliedFormat":99},{"version":"26581bc55dc9f49a2b38664b513b95b10976a277df45517c42ab8ae708181bbe","impliedFormat":99},{"version":"5fd96eacdd040ffa9c44397af26ef2c5bd3c72b380e00741642d7a0e7c9838d8","signature":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"3af5466687af9a674b9e6637bd9fb423a8b38549ed1fe7e21109df75ca464bdd","signature":"190c477edfa9b400d2f8fdd71e95c2330820a160ef77722dee58e5c44cf3f4f8","impliedFormat":99},{"version":"d65ca174e75667ef3325baa3f094d04fe065b42b969c0e5add54bac2996f3d03","signature":"eac05d199e4a24c87814c27120cb7ae9680ff0e242331b13086c80ced0655b52","impliedFormat":99},{"version":"746326ee9146b9b804ef55e699f6782b0302e62839f60d6c9d550e10629d172b","signature":"bd75eb59b9dcf0ffde6277970370642cb4efd0424d4f71df2a2d4d84fc7d826c","impliedFormat":99},{"version":"652f5424eb8280d175340926cc3dafb328ab13e90d30266948c0442b18300aa3","signature":"6a2f591a86648b21054f92a41f020bbcf1606f8cd7d8a530cb4968471872fef1","impliedFormat":99},{"version":"a97c7416f4f20c2826e142455d8d1a3e6818b45c9ed9e21512381f24185659d3","signature":"6842b2fe99736bd3bdc6635bdccf0a0684d9bb9fc7a00e930bcbf7bae90e8306","impliedFormat":99},{"version":"196eaebec8184d707a8da4b8b693cf858ca5c571066e8e210c68da0def0d9c3d","signature":"121555fd7f3f5d1e2704115d03532c4151100c7633421c3aa6c83349bfec16b6","impliedFormat":99},{"version":"2994cf5ef22986f35179ab17883ab77b80a7fc9816c6439246f97f948443f98d","signature":"f917b950d4ee512747703a6a43e1f95c061b5cd082f53d6625b87e2f68a6cf01","impliedFormat":99},{"version":"ef7a61a668c8573ca636e6b146308316ca8bf6374c3aa0f64ab9d4cab66c052e","signature":"8d0f404138d3dcd60c38181cf4512feaa67e4b192daa750a55d1e0ae7b1e5030","impliedFormat":99},{"version":"ee302a2474169e130a3c8be45c042681dd1386b5d004f45124637e114f66affa","signature":"f303a34d688ba59fbe48e2b50f32dfa740206a3ab0cab81fe918b2439a5d6acb","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"ac4aad8e54ddecd4039ba162b6ecf80efacb88aa757f8495030d8dda0e1b8461","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"a03b5cb98799e9a0e718a82c0136d0234c4ab292a8ab9cc9c383129652d09f1b","signature":"6429f98455a68db1b0bbcd4301e78ec28f911dbb8a6c3721a0bfc980703e28ba","impliedFormat":99},{"version":"24223bf90971e6b5398a1460831d87982a2bfa8e79af773982fdd8886bf28700","signature":"58fd9e4e2871438529589e2f43d7cc41bb266a2a7373840e3e6c12dd621c0685","impliedFormat":99},{"version":"028404b0312286966b397600a9b7070018a6999b80fe321ab4342509b9b7bf63","impliedFormat":99},{"version":"9c46b162218bbd344c8c3ac079613a16dd70b92136f2de934c28ed9915fe9aed","signature":"1a7ff0e3073030f1b25fba11d4741c5472d4f6a58681507e4cbe78afb5fa297e","impliedFormat":99}],"root":[[60,84]],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[73,1],[74,2],[72,3],[69,4],[75,5],[76,6],[71,7],[67,8],[68,9],[65,10],[64,11],[83,12],[82,13],[80,14],[81,10],[77,15],[63,16],[61,17]],"latestChangedDtsFile":"./dist/json-to-table/index.d.ts","version":"5.6.3"} \ No newline at end of file +{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/array.ts","./src/lib/matrix.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/json-table.ts","./src/block/row.ts","./src/lib/math.ts","./src/block/block.ts","./src/block/index.ts","./src/block-matrix.ts","./src/lib/html.ts","./src/block-to-html.ts","./src/ascii-to-block/model.ts","./src/ascii-to-block/ascii-to-block.ts","./src/ascii-to-block/index.ts","./src/block-to-ascii/block-to-ascii.ts","./src/block-to-ascii/index.ts","./src/json-to-table/table.ts","./src/lib/object.ts","./src/lib/binary-tree.ts","./src/json-to-table/properties-stabilizer.ts","./src/json-to-table/proportional-resize-guard.ts","./src/json-to-table/json-to-table.ts","./src/json-to-table/index.ts","./src/lib/guards.ts"],"fileIdsList":[[60,61,64,69,72],[72,73],[61],[60,61,64,68],[60,61,64,69],[75],[64,70],[60,64,65,66],[65,67],[64],[63],[77,82],[60,63,64,68,77,78,80,81],[79],[64,66,68],[62],[60]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"781fd81c0b6628bf5ce246e8c2b3a57c0cf31b3599c2e28b13c79aace631a7b2","signature":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"c297e744c56645f4a222abfcaaad2d513e185abb02e881fd925b0e581361a40a","signature":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"83b58e892474a47ba3bf60157e8f8ef2dd80a6ca8932e4f7b1fec6de769fda6c","signature":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"c808e51ad06744ba348e1f388d2b39c2348ef7d34e62ee458794d028890ab3e5","signature":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"36fc71e80c15d163aac49f4257dfdd5f9482c6bb24c960477f8f838d82d841e4","signature":"628c1950f013ce044e7346e16e63a79d17984bb230dc4c961e9c5772febea4f7","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"9416239efcdfcd7896eb0cea03842dcca802b05cfdeb4a70d70e6791976f49f6","signature":"a58baf5dad04db9f0761399a673924e5c5212655bed5a941286958c1b8bb041a","impliedFormat":99},{"version":"26581bc55dc9f49a2b38664b513b95b10976a277df45517c42ab8ae708181bbe","impliedFormat":99},{"version":"5fd96eacdd040ffa9c44397af26ef2c5bd3c72b380e00741642d7a0e7c9838d8","signature":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"3af5466687af9a674b9e6637bd9fb423a8b38549ed1fe7e21109df75ca464bdd","signature":"190c477edfa9b400d2f8fdd71e95c2330820a160ef77722dee58e5c44cf3f4f8","impliedFormat":99},{"version":"d65ca174e75667ef3325baa3f094d04fe065b42b969c0e5add54bac2996f3d03","signature":"eac05d199e4a24c87814c27120cb7ae9680ff0e242331b13086c80ced0655b52","impliedFormat":99},{"version":"746326ee9146b9b804ef55e699f6782b0302e62839f60d6c9d550e10629d172b","signature":"bd75eb59b9dcf0ffde6277970370642cb4efd0424d4f71df2a2d4d84fc7d826c","impliedFormat":99},{"version":"652f5424eb8280d175340926cc3dafb328ab13e90d30266948c0442b18300aa3","signature":"6a2f591a86648b21054f92a41f020bbcf1606f8cd7d8a530cb4968471872fef1","impliedFormat":99},{"version":"a97c7416f4f20c2826e142455d8d1a3e6818b45c9ed9e21512381f24185659d3","signature":"6842b2fe99736bd3bdc6635bdccf0a0684d9bb9fc7a00e930bcbf7bae90e8306","impliedFormat":99},{"version":"196eaebec8184d707a8da4b8b693cf858ca5c571066e8e210c68da0def0d9c3d","signature":"121555fd7f3f5d1e2704115d03532c4151100c7633421c3aa6c83349bfec16b6","impliedFormat":99},{"version":"2994cf5ef22986f35179ab17883ab77b80a7fc9816c6439246f97f948443f98d","signature":"f917b950d4ee512747703a6a43e1f95c061b5cd082f53d6625b87e2f68a6cf01","impliedFormat":99},{"version":"ef7a61a668c8573ca636e6b146308316ca8bf6374c3aa0f64ab9d4cab66c052e","signature":"8d0f404138d3dcd60c38181cf4512feaa67e4b192daa750a55d1e0ae7b1e5030","impliedFormat":99},{"version":"ee302a2474169e130a3c8be45c042681dd1386b5d004f45124637e114f66affa","signature":"f303a34d688ba59fbe48e2b50f32dfa740206a3ab0cab81fe918b2439a5d6acb","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"ac4aad8e54ddecd4039ba162b6ecf80efacb88aa757f8495030d8dda0e1b8461","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"a03b5cb98799e9a0e718a82c0136d0234c4ab292a8ab9cc9c383129652d09f1b","signature":"6429f98455a68db1b0bbcd4301e78ec28f911dbb8a6c3721a0bfc980703e28ba","impliedFormat":99},{"version":"24223bf90971e6b5398a1460831d87982a2bfa8e79af773982fdd8886bf28700","signature":"58fd9e4e2871438529589e2f43d7cc41bb266a2a7373840e3e6c12dd621c0685","impliedFormat":99},{"version":"028404b0312286966b397600a9b7070018a6999b80fe321ab4342509b9b7bf63","impliedFormat":99},{"version":"4d43e2b4c74c4784cadbf6ecddebe069449ebf28968809b283597356f94603f1","signature":"bf40594054da33db233e09351919b755710dc643e541a1502ebb5b64e016288a","impliedFormat":99}],"root":[[60,84]],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[73,1],[74,2],[72,3],[69,4],[75,5],[76,6],[71,7],[67,8],[68,9],[65,10],[64,11],[83,12],[82,13],[80,14],[81,10],[77,15],[63,16],[61,17]],"latestChangedDtsFile":"./dist/lib/guards.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e8c278..7a3ab40 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,33 +39,14 @@ importers: specifier: ~5.6.2 version: 5.6.3 - packages/block-to-xlsx: - dependencies: - '@json-table/core': - specifier: workspace:^0.0.0 - version: link:../core - exceljs: - specifier: ^4.4.0 - version: 4.4.0 - devDependencies: - vitest: - specifier: 'catalog:' - version: 2.1.3 - - packages/core: - devDependencies: - vitest: - specifier: 'catalog:' - version: 2.1.3 - - web: + apps/web: dependencies: '@json-table/block-to-xlsx': - specifier: workspace:^0.0.0 - version: link:../packages/block-to-xlsx + specifier: workspace:^ + version: link:../../packages/block-to-xlsx '@json-table/core': specifier: workspace:^0.0.0 - version: link:../packages/core + version: link:../../packages/core '@sjsf/ajv8-validator': specifier: ^1.1.1 version: 1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(ajv@8.17.1) @@ -119,6 +100,25 @@ importers: specifier: 'catalog:' version: 2.1.3 + packages/block-to-xlsx: + dependencies: + '@json-table/core': + specifier: workspace:^0.0.0 + version: link:../core + exceljs: + specifier: ^4.4.0 + version: 4.4.0 + devDependencies: + vitest: + specifier: 'catalog:' + version: 2.1.3 + + packages/core: + devDependencies: + vitest: + specifier: 'catalog:' + version: 2.1.3 + packages: '@alloc/quick-lru@5.2.0': @@ -826,8 +826,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.46: - resolution: {integrity: sha512-1XDk0Z8/YRgB2t5GeEg8DPK592DLjVmd/5uwAu6c/S4Z0CUwV/RwYqe5GWxQqcoN3bJ5U7hYMiMRPZzpCzSBhQ==} + electron-to-chromium@1.5.47: + resolution: {integrity: sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2437,7 +2437,7 @@ snapshots: browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001671 - electron-to-chromium: 1.5.46 + electron-to-chromium: 1.5.47 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -2591,7 +2591,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.46: {} + electron-to-chromium@1.5.47: {} emoji-regex@8.0.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6244502..c90149a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ packages: - - "web" + - "apps/*" - "packages/*" catalog: diff --git a/web/src/lib/__fixtures__/different-headers.json b/web/src/lib/__fixtures__/different-headers.json deleted file mode 100644 index ab4e9ec..0000000 --- a/web/src/lib/__fixtures__/different-headers.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "character_id": "5428010618020694593", - "item_id": "95" - }, - { - "character_id": "5428010618020694593", - "item_id": "101", - "stack_count": "4" - } -] \ No newline at end of file diff --git a/web/src/lib/__fixtures__/empty-arrays.json b/web/src/lib/__fixtures__/empty-arrays.json deleted file mode 100644 index 3fc5abe..0000000 --- a/web/src/lib/__fixtures__/empty-arrays.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "tasks": { - "n": [ - "UspYpi-8NwmZZR7FJprSb" - ], - "d": [], - "a": [ - "aCx8zMrOjqW6K55TMokHD" - ] - } - }, - { - "tasks": { - "n": [], - "d": [], - "a": [ - "gwT5xfbxgkPCq_VDyoBO3" - ] - } - } -] \ No newline at end of file diff --git a/web/src/lib/__fixtures__/parsing-error.json b/web/src/lib/__fixtures__/parsing-error.json deleted file mode 100644 index f0bd6df..0000000 --- a/web/src/lib/__fixtures__/parsing-error.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "weather": [ - { - "id": 800, - "main": "Clear", - "description": "clear sky", - "icon": "01n" - } - ] -} \ No newline at end of file diff --git a/web/src/lib/__fixtures__/simple-headers-duplication.json b/web/src/lib/__fixtures__/simple-headers-duplication.json deleted file mode 100644 index e712d30..0000000 --- a/web/src/lib/__fixtures__/simple-headers-duplication.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - { "a": 1, "b": 2, "c": 3 }, - { "a": 4, "b": 5, "c": 6 }, - { "a": 7, "b": 8, "c": 9 } -] \ No newline at end of file diff --git a/web/src/lib/__fixtures__/simple-indexes-deduplication.json b/web/src/lib/__fixtures__/simple-indexes-deduplication.json deleted file mode 100644 index aed9ad6..0000000 --- a/web/src/lib/__fixtures__/simple-indexes-deduplication.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "a": [1, 4, 7], - "b": [2, 5, 8], - "c": [3, 6, 9] -} \ No newline at end of file diff --git a/web/src/lib/__fixtures__/uniq-headers.json b/web/src/lib/__fixtures__/uniq-headers.json deleted file mode 100644 index 9b46e91..0000000 --- a/web/src/lib/__fixtures__/uniq-headers.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "description": "name of the ComponentStatus", - "in": "path", - "name": "name", - "required": true, - "type": "string", - "uniqueItems": true - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - } -] \ No newline at end of file diff --git a/web/src/lib/__fixtures__/wrong-sizes.json b/web/src/lib/__fixtures__/wrong-sizes.json deleted file mode 100644 index e527e70..0000000 --- a/web/src/lib/__fixtures__/wrong-sizes.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "options": { - "reduceOptions": { - "values": false - } - }, - "pluginVersion": "7.3.1", - "targets": [ - { - "expr": "loki_build_info", - "format": "table" - } - ] - }, - { - "options": { - "reduceOptions": { - "values": false - } - }, - "pluginVersion": "7.3.1", - "targets": [ - { - "expr": "sum(log_messages_total)" - } - ] - } -] \ No newline at end of file diff --git a/web/src/lib/array.ts b/web/src/lib/array.ts deleted file mode 100644 index be1c864..0000000 --- a/web/src/lib/array.ts +++ /dev/null @@ -1,56 +0,0 @@ -export interface NonEmptyArray extends Array { - 0: T -} - -export const array = ( - count: number, - factory: (index: number) => R -): R[] => Array.from(new Array(count), (_, i) => factory(i)) - -export function isItemsEqual(compare: (a: T, b: T) => boolean) { - return (items: T[]): boolean => { - let i = 1 - while (i < items.length) { - if (compare(items[i - 1], items[i])) { - i++ - } else { - return false - } - } - return true - } -} - -export type Predicate = (value: T, index: number, arr: T[]) => boolean - -export type GuardPredicate = ( - value: T, - index: number, - arr: T[] -) => value is R - -export function filter(predicate: GuardPredicate) { - return (items: T[]): R[] => items.filter(predicate) -} - -export type Transform = (value: T, index: number) => R - -export function map(action: Transform) { - return (items: T[]): R[] => items.map(action) -} - -export function every(predicate: Predicate) { - return (items: T[]) => items.every(predicate) -} - -export function some(predicate: Predicate) { - return (items: T[]) => items.some(predicate) -} - -export function first(array: T[]) { - return array[0] -} - -export function last(array: T[]) { - return array[array.length - 1] -} diff --git a/web/src/lib/ascii-to-block/core.ts b/web/src/lib/ascii-to-block/core.ts deleted file mode 100644 index 7ba7783..0000000 --- a/web/src/lib/ascii-to-block/core.ts +++ /dev/null @@ -1,106 +0,0 @@ -import type { Matrix } from "@/lib/matrix"; - -export enum SeparatorType { - None = 0, - Horizontal = 1, - Vertical = 2, - Both = 3, -} - -export type RawCell = { - x1: number; - y1: number; - y2: number; - x2: number; -} | null; - -/** Does not escape for separators */ -export function getSimpleMySqlASCIITableSeparatorType( - char: string, - colIndex: number, - row: string, - rowIndex: number, - rows: string[] -) { - switch (char) { - case "+": { - return SeparatorType.Both; - // const x = colIndex === row.length - 1 || row[colIndex + 1] === "-" ? SeparatorType.Horizontal : 0; - // const y = rowIndex === rows.length - 1 || rows[rowIndex + 1][colIndex] === "|" ? SeparatorType.Vertical : 0; - // return x | y; - } - case "|": - return SeparatorType.Horizontal; - // TODO: Check that line ends is a `both` separators - case "-": { - if (row.length < 2) { - return SeparatorType.Vertical; - } - const prevOrNextInRowToken = - colIndex > 0 ? row[colIndex - 1] : row[colIndex + 1]; - return prevOrNextInRowToken === "-" || prevOrNextInRowToken === "+" - ? SeparatorType.Vertical - : SeparatorType.None; - } - default: - return SeparatorType.None; - } -} - -export function getContentOfRawCell( - rows: string[], - { x1, y1, x2, y2 }: NonNullable -) { - return rows - .slice(y1, y2 + 1) - .map((row) => row.substring(x1, x2 + 1).trim()) - .join("\n"); -} - -export function printRawMatrix(matrix: Matrix) { - const cells = new Set(); - const cellsIds = new Map(); - let lastId = 1; - for (let i = 0; i < matrix.length; i++) { - for (let j = 0; j < matrix[i].length; j++) { - const cell = matrix[i][j]; - if (cell !== null && !cells.has(cell)) { - cells.add(cell); - cellsIds.set(cell, String(lastId++)); - } - } - } - const pad = lastId.toString().length; - for (let i = 0; i < matrix.length; i++) { - const row = matrix[i]; - let str = ""; - for (let j = 0; j < row.length; j++) { - const cell = row[j]; - if (cell) { - str += cellsIds.get(cell)!.padStart(pad, " "); - } else { - str += "+".repeat(pad); - } - } - console.log(str); - } -} - -export function omitEmptyLines(rows: string[]) { - let l = 0; - while (l < rows.length) { - if (rows[l].trim() === "") { - rows.splice(l, 1); - } else { - l++; - } - } -} - -export function getMaxLineLength(rows: string[]) { - let max = 0; - for (let i = 0; i < rows.length; i++) { - max = Math.max(max, rows[i].length); - } - return max; -} diff --git a/web/src/lib/ascii-to-block/from-ascii-table.test.ts b/web/src/lib/ascii-to-block/from-ascii-table.test.ts deleted file mode 100644 index 150ef87..0000000 --- a/web/src/lib/ascii-to-block/from-ascii-table.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { blockToASCII } from "../block-to-ascii"; - -import { getSimpleMySqlASCIITableSeparatorType } from "./core"; -import { fromASCIITable } from "./from-ascii-table"; - -describe("fromASCIITable", () => { - it("Should work with simple table", () => { - const { value } = fromASCIITable( - ` -+---+ -| a | -+---+ -`, - getSimpleMySqlASCIITableSeparatorType - ).data.rows[0].cells[0]; - expect(value).toBe("a"); - }); - - it("Should work with complex table", () => { - const table = fromASCIITable( - ` -+--------------------------------------------+------------------------+ -| Col1 | Col3 | -+----------------------------------+---------+------------------------+ -| Value 1 | Value 2 | 123 | -+----------------------------------+---------+ with a tab or 4 spaces | -| This is a row with only one cell | | | -+----------------------------------+---------+------------------------+ - `, - getSimpleMySqlASCIITableSeparatorType - ); - const ascii = blockToASCII(table); - expect(`\n${ascii}`).toBe(` -+--------------------------------------------+------------------------+ -| Col1 | Col3 | -+----------------------------------+---------+------------------------+ -| Value 1 | Value 2 | 123 | -| | | with a tab or 4 spaces | -+----------------------------------+---------+ | -| This is a row with only one cell | | | -+----------------------------------+---------+------------------------+`); - }); -}); diff --git a/web/src/lib/ascii-to-block/from-ascii-table.ts b/web/src/lib/ascii-to-block/from-ascii-table.ts deleted file mode 100644 index 5526d78..0000000 --- a/web/src/lib/ascii-to-block/from-ascii-table.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { array } from "@/lib/array"; -import { CellType } from "@/lib/json-table"; -import { matrix } from "@/lib/matrix"; -import { fromMatrix } from '@/lib/block-matrix'; - -import { - getContentOfRawCell, - getMaxLineLength, - omitEmptyLines, - type RawCell, - SeparatorType, -} from "./core"; - -export function fromASCIITable( - ascii: string, - getSeparatorType: ( - char: string, - colIndex: number, - row: string, - rowIndex: number, - rows: string[] - ) => SeparatorType -) { - const rows = ascii.split("\n"); - omitEmptyLines(rows); - const originalHeight = rows.length; - const originalWidth = getMaxLineLength(rows); - const regions = matrix( - originalHeight + 1, - originalWidth + 1, - () => null - ); - const xShift = array(originalWidth + 1, () => 0); - const yShift = array(originalHeight + 1, () => 0); - for (let i = 0; i < originalHeight; i++) { - const row = rows[i]; - for (let j = 0; j < originalWidth; j++) { - const char = row[j]; - const separatorType = getSeparatorType(char, j, row, i, rows); - xShift[j + 1] = Math.max(xShift[j + 1], separatorType & 1); - yShift[i + 1] = Math.max(yShift[i + 1], (separatorType & 2) >> 1); - if (separatorType > 0) { - continue; - } - const region = regions[i + 1][j] || - regions[i][j + 1] || { - x1: j, - y1: i, - x2: j, - y2: i, - }; - region.x2 = j; - region.y2 = i; - regions[i + 1][j + 1] = region; - } - } - // Accumulate - for (let i = 1; i <= originalWidth; i++) { - xShift[i] += xShift[i - 1]; - } - for (let i = 1; i <= originalHeight; i++) { - yShift[i] += yShift[i - 1]; - } - const width = originalWidth - xShift[originalWidth]; - const height = originalHeight - yShift[originalHeight]; - const cleanMatrix = matrix(height, width, () => null); - for (let i = 1; i <= originalHeight; i++) { - for (let j = 1; j <= originalWidth; j++) { - const region = regions[i][j]; - if (region === null) { - continue; - } - cleanMatrix[i - yShift[i] - 1][j - xShift[j] - 1] = region; - } - } - return fromMatrix( - cleanMatrix, - (_, rowIndex) => (rowIndex === 0 ? CellType.Header : CellType.Value), - (cell) => { - if (cell === null) { - throw new Error("Invalid table"); - } - return getContentOfRawCell(rows, cell); - } - ); -} diff --git a/web/src/lib/ascii-to-block/index.ts b/web/src/lib/ascii-to-block/index.ts deleted file mode 100644 index 98c674f..0000000 --- a/web/src/lib/ascii-to-block/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './core' -export * from './from-ascii-table' diff --git a/web/src/lib/binary-tree.ts b/web/src/lib/binary-tree.ts deleted file mode 100644 index b6b05b2..0000000 --- a/web/src/lib/binary-tree.ts +++ /dev/null @@ -1,27 +0,0 @@ -export interface Node> { - value: V - left?: C - right?: C -} - -export type Tree> = T | undefined - -export function insert>(tree: Tree, node: N) { - if (tree === undefined) { - return node - } - if (node.value < tree.value) { - tree.left = insert(tree.left, node) - } else { - tree.right = insert(tree.right, node) - } - return tree -} - -export function traverse>(tree: Tree, cb: (node: N) => void) { - if (tree !== undefined) { - traverse(tree.left, cb) - cb(tree) - traverse(tree.right, cb) - } -} diff --git a/web/src/lib/block-matrix.ts b/web/src/lib/block-matrix.ts deleted file mode 100644 index cbf7425..0000000 --- a/web/src/lib/block-matrix.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { array } from "@/lib/array"; -import { type Matrix, matrix } from "@/lib/matrix"; - -import { - type Block, - type Cells, - CellType, - type Cell, - compressRawRowsInPlaceAndMakeIndexes, -} from "@/lib/json-table"; - -const UNDEFINED_CELL = Symbol("undefined cell"); - -export function createMatrix( - { height, width, data }: Block, - getValue: ( - cell: Cell, - rowIndex: number, - colIndex: number, - indexInRow: number - ) => R -): Matrix { - const m = matrix( - height, - width, - () => UNDEFINED_CELL - ); - for (let i = 0; i < data.rows.length; i++) { - const row = data.rows[i]; - const index = data.indexes[i]; - for (let j = 0; j < row.cells.length; j++) { - const cell = row.cells[j]; - const col = row.columns[j]; - const { height: cellHeight, width: cellWidth } = cell; - const value = getValue(cell, index, col, j); - for (let h = index; h < index + cellHeight && h < height; h++) { - for (let w = col; w < col + cellWidth && w < width; w++) { - m[h][w] = value; - } - } - } - } - return m as Matrix; -} - -/** Uses reference equality to define cell boundaries */ -export function fromMatrix( - matrix: Matrix, - getCellType: (value: T, rowIndex: number, colIndex: number) => CellType, - getCellValue: (value: T, rowIndex: number, colIndex: number) => R -): Block { - const height = matrix.length; - const width = matrix[0].length; - const cells = new Set(); - const rows = array( - height, - (): Cells => ({ - cells: [], - columns: [], - }) - ); - for (let i = 0; i < height; i++) { - let j = 0; - while (j < width) { - const cell = matrix[i][j]; - if (cells.has(cell)) { - j++; - continue; - } - let h = 1; - while (i + h < height && matrix[i + h][j] === cell) { - h++; - } - const wStart = j++; - while (j < width && matrix[i][j] === cell) { - j++; - } - rows[i].cells.push({ - height: h, - width: j - wStart, - type: getCellType(cell, i, wStart), - value: getCellValue(cell, i, wStart), - }); - rows[i].columns.push(wStart); - cells.add(cell); - } - } - const indexes = compressRawRowsInPlaceAndMakeIndexes(rows); - return { - height, - width, - data: { rows, indexes }, - }; -} diff --git a/web/src/lib/block-to-ascii.test.ts b/web/src/lib/block-to-ascii.test.ts deleted file mode 100644 index f9cfdd7..0000000 --- a/web/src/lib/block-to-ascii.test.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { ASCIITableFormat, blockToASCII } from "./block-to-ascii"; -import { type Block, CellType, makeTableInPlaceBaker } from "./json-table"; -import { makeTableFactory } from "./json-to-table"; -import { type JSONPrimitiveOrNull } from "./json"; - -import differentHeaders from "./__fixtures__/different-headers.json"; - -describe("blockToASCII", () => { - const cornerCellValue = "№"; - const factory = makeTableFactory({ cornerCellValue }); - const bake = makeTableInPlaceBaker({ - cornerCellValue, - head: true, - indexes: true, - }); - - it("Should work with simple table", () => { - const table: Block = { - width: 1, - height: 1, - data: { - rows: [ - { - cells: [ - { - type: CellType.Value, - height: 1, - width: 1, - value: "a", - }, - ], - columns: [0], - }, - ], - indexes: [0], - }, - }; - const ascii = blockToASCII(table); - expect(`\n${ascii}`).toBe( - ` -+---+ -| a | -+---+` - ); - }); - it("Should draw a simple markdown like table 1", () => { - const table: Block = { - width: 1, - height: 1, - data: { - rows: [ - { - cells: [ - { - type: CellType.Value, - height: 1, - width: 1, - value: "a", - }, - ], - columns: [0], - }, - ], - indexes: [0], - }, - }; - const ascii = blockToASCII(table, { - format: ASCIITableFormat.MarkdownLike, - }); - expect(ascii).toBe("| a |"); - }); - it("Should draw a simple markdown like table 2", () => { - const table = factory({ - a: 1, - b: 2, - } as any); - const ascii = blockToASCII(bake(table), { - format: ASCIITableFormat.MarkdownLike, - }); - expect(`\n${ascii}`).toBe( - ` -| a | b | -|---|---| -| 1 | 2 |` - ); - }); - it("Should draw a simple markdown like table 3", () => { - const table = factory([ - { a: 1, b: 2 }, - { a: 2, b: 3 }, - { a: 3, b: 4 }, - ]); - const ascii = blockToASCII(bake(table), { - format: ASCIITableFormat.MarkdownLike, - }); - expect(`\n${ascii}`).toBe( - ` -| № | a | b | -|---|---|---| -| 1 | 1 | 2 | -| 2 | 2 | 3 | -| 3 | 3 | 4 |` - ); - }); - it("Should draw an invalid markdown like table", () => { - const table = factory(differentHeaders as any); - const baked = bake(table); - const ascii = blockToASCII(baked, { - format: ASCIITableFormat.MarkdownLike, - }); - expect(`\n${ascii}`).toBe(` -| 1 | character_id | item_id | -| |------------------------------|---------------------| -|---| 5428010618020694593 | 95 | -| 2 | character_id | item_id | stack_count | -| | 5428010618020694593 | 101 | 4 |`); - }); -}); diff --git a/web/src/lib/block-to-ascii.ts b/web/src/lib/block-to-ascii.ts deleted file mode 100644 index 301c92b..0000000 --- a/web/src/lib/block-to-ascii.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { type Block, type Cell, CellType } from "@/lib/json-table"; -import { array } from "@/lib/array"; -import { type Matrix, matrix } from "@/lib/matrix"; -import { createMatrix } from "@/lib/block-matrix"; - -function getMaxLineLength(rows: string[]) { - let max = 0; - for (let i = 0; i < rows.length; i++) { - max = Math.max(max, rows[i].length); - } - return max; -} - -function padCellRow(row: string, w: number, cell: Cell, rows: string[]) { - switch (cell.type) { - case CellType.Corner: - case CellType.Header: - case CellType.Index: { - const p = Math.floor((w - row.length) / 2); - return (p > 0 ? row.padStart(p + row.length) : row).padEnd(w); - } - default: { - if (rows.length === 1 && !isNaN(Number(row))) { - return row.padStart(w); - } - return row.padEnd(w); - } - } -} - -export enum ASCIITableFormat { - MySQL = "MySql", - MarkdownLike = "Markdown Like", -} - -export const ASCII_TABLE_FORMATS = Object.values(ASCIITableFormat); - -export interface BlockToASCIIOptions { - format?: ASCIITableFormat; -} - -interface InputCell { - cell: Cell; - rowIndex: number; - collIndex: number; - lines: string[]; - maxRowLength: number; -} - -function populateShifts( - block: Block, - inputMatrix: Matrix, - xShift: number[], - yShift: number[] -) { - for (let i = 0; i < block.height; i++) { - for (let j = 0; j < block.width; j++) { - const cell = inputMatrix[i][j]; - if (cell.collIndex === j) { - xShift[j + 1] = Math.max( - xShift[j + 1], - Math.max(cell.maxRowLength - cell.cell.width, 0) + 1 - ); - } - if (cell.rowIndex === i) { - yShift[i + 1] = Math.max( - yShift[i + 1], - Math.max(cell.lines.length - cell.cell.height, 0) + 1 - ); - } - } - } -} - -function populateMySqlShifts( - block: Block, - inputMatrix: Matrix, - xShift: number[], - yShift: number[] -) { - xShift[0] = yShift[0] = 1; - populateShifts(block, inputMatrix, xShift, yShift); -} - -function populateMarkdownLikeShifts( - block: Block, - inputMatrix: Matrix, - xShift: number[], - yShift: number[] -) { - xShift[0] = 1; - populateShifts(block, inputMatrix, xShift, yShift); - for (let i = 2; i < inputMatrix.length; i++) { - yShift[i] -= 1; - } -} - -function drawMySqlBorder( - outMatrix: Matrix, - width: number, - height: number -) { - for (let i = 0; i < height; i++) { - for (let j = 0; j < width; j++) { - const cell = outMatrix[i][j]; - if (cell !== null) { - continue; - } - const isLeftEdge = j === 0; - const isTopEdge = i === 0; - const isRightEdge = j === width - 1; - const isBottomEdge = i === height - 1; - const previous = !isLeftEdge && outMatrix[i][j - 1]; - const next = !isRightEdge && outMatrix[i][j + 1]; - const beneath = !isBottomEdge && outMatrix[i + 1][j]; - const above = !isTopEdge && outMatrix[i - 1][j]; - if ( - ((isLeftEdge || isRightEdge) && (isTopEdge || isBottomEdge)) || - (previous === "-" && beneath === null) || - (above === "|" && next === null) || - (previous === "-" && above === "|") - ) { - outMatrix[i][j] = "+"; - continue; - } - if (previous === "+" || previous === "-") { - outMatrix[i][j] = "-"; - continue; - } - if (above === "+" || above === "|") { - outMatrix[i][j] = "|"; - continue; - } - outMatrix[i][j] = "n"; - } - } -} - -function drawMarkdownLikeBorder( - outMatrix: Matrix, - width: number, - height: number -) { - outMatrix.splice(height - 1, 1); - for (let i = 0; i < height - 1; i++) { - for (let j = 0; j < width; j++) { - const cell = outMatrix[i][j]; - if (cell !== null) { - continue; - } - const isLeftEdge = j === 0; - const isTopEdge = i === 0; - // const isRightEdge = j === width - 1; - // const isBottomEdge = i === height - 1; - const previous = !isLeftEdge && outMatrix[i][j - 1]; - const above = !isTopEdge && outMatrix[i - 1][j]; - // const next = !isRightEdge && outMatrix[i][j + 1]; - // const beneath = !isBottomEdge && outMatrix[i + 1][j]; - if ((previous === "|" || previous === "-") && above !== "|") { - outMatrix[i][j] = "-"; - continue; - } - outMatrix[i][j] = "|"; - } - } -} - -const SHIFTS_POPULATORS = { - [ASCIITableFormat.MySQL]: populateMySqlShifts, - [ASCIITableFormat.MarkdownLike]: populateMarkdownLikeShifts, -}; - -const BORDER_DRAWERS = { - [ASCIITableFormat.MySQL]: drawMySqlBorder, - [ASCIITableFormat.MarkdownLike]: drawMarkdownLikeBorder, -}; - -export function blockToASCII( - block: Block, - { format = ASCIITableFormat.MySQL }: BlockToASCIIOptions = {} -) { - const inputMatrix = createMatrix( - block, - (cell, rowIndex, collIndex): InputCell => { - const content = - typeof cell.value === "string" - ? cell.value - : JSON.stringify(cell.value, null, 2); - const lines = content.split("\n").map((r) => ` ${r.trim()} `); - return { - cell, - rowIndex, - collIndex, - lines, - maxRowLength: getMaxLineLength(lines), - }; - } - ); - const xShift = array(block.width + 1, () => 0); - const yShift = array(block.height + 1, () => 0); - SHIFTS_POPULATORS[format](block, inputMatrix, xShift, yShift); - // Accumulate - for (let i = 1; i <= block.width; i++) { - xShift[i] += xShift[i - 1]; - } - for (let i = 1; i <= block.height; i++) { - yShift[i] += yShift[i - 1]; - } - const height = block.height + yShift[block.height]; - const width = block.width + xShift[block.width]; - const outMatrix = matrix(height, width, () => null); - const placed = new Set(); - for (let i = 0; i < block.height; i++) { - for (let j = 0; j < block.width; j++) { - const { cell, lines } = inputMatrix[i][j]; - if (placed.has(cell)) { - continue; - } - placed.add(cell); - const rowIndex = i + yShift[i]; - const colIndex = j + xShift[j]; - // TODO: This `||` is a hack and the `splice` in the markdown-like border fn also - // I think there is a general way to compute sizes - const h = cell.height + yShift[i + cell.height] - yShift[i] - 1 || 1; - const w = cell.width + xShift[j + cell.width] - xShift[j] - 1 || 1; - const startRow = Math.floor((h - lines.length) / 2); - const endRow = startRow + lines.length; - for (let y = 0; y < h; y++) { - const c = y + rowIndex; - if (y >= startRow && y < endRow) { - const row = padCellRow(lines[y - startRow], w, cell, lines); - for (let x = 0; x < w; x++) { - outMatrix[c][x + colIndex] = row[x]; - } - } else { - for (let x = 0; x < w; x++) { - outMatrix[c][x + colIndex] = " "; - } - } - } - } - } - BORDER_DRAWERS[format](outMatrix, width, height); - return outMatrix.map((row) => row.join("")).join("\n"); -} diff --git a/web/src/lib/block-to-html.ts b/web/src/lib/block-to-html.ts deleted file mode 100644 index 745d8e6..0000000 --- a/web/src/lib/block-to-html.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { type Block, CellType } from "@/lib/json-table"; -import type { Entry } from "@/lib/entry"; -import { escapeHtml } from "@/lib/html"; - -export const HTML_TABLE_STYLES = `table, th, td {border: 1px solid black; border-collapse: collapse;} th, td {padding: 5px; text-align: left;} th:has(> b), td:has(> b) {text-align: center;}`; - -export function renderTable(model: Block) { - const rows: string[] = []; - let r = 0; - let index = model.data.indexes[r]; - for (let i = 0; i < model.height; i++) { - if (i === index) { - const row = model.data.rows[r]; - rows.push( - `${row.cells - .map((cell) => { - const val = - typeof cell.value === "string" - ? escapeHtml(cell.value) - : cell.value; - return `${ - cell.type !== CellType.Value ? `${val}` : val - }`; - }) - .join("\n")}` - ); - index = model.data.indexes[++r]; - } else { - rows.push(``); - } - } - return `${rows.join("\n")}
`; -} - -export function makeHTMLPageContent(tables: Entry[]) { - return tables.length > 1 - ? tables - .map(([title, table]) => `

${title}

${renderTable(table)}`) - .join("
") - : renderTable(tables[0][1]); -} diff --git a/web/src/lib/block-to-xlsx.test.ts b/web/src/lib/block-to-xlsx.test.ts deleted file mode 100644 index ccc9137..0000000 --- a/web/src/lib/block-to-xlsx.test.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { type Block, CellType } from "@/lib/json-table"; -import { max, sum } from "@/lib/math"; - -import { calculateSheetData } from "./block-to-xlsx"; - -describe("json-table-xlsx", () => { - describe("calculateSheetData", () => { - it("Should calculate sheet data", () => { - const table: Block = { - width: 4, - height: 3, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: "a", - type: CellType.Header, - }, - { - height: 1, - width: 1, - value: "b", - type: CellType.Header, - }, - { - height: 1, - width: 2, - value: "c", - type: CellType.Header, - }, - ], - columns: [0, 1, 2], - }, - { - cells: [ - { - height: 2, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 2, - width: 1, - value: 2, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: "aa", - type: CellType.Header, - }, - { - height: 1, - width: 1, - value: "bb", - type: CellType.Header, - }, - ], - columns: [0, 1, 2, 3], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 11, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 22, - type: CellType.Value, - }, - ], - columns: [2, 3], - }, - ], - indexes: [0, 1, 2], - }, - }; - const expected = { - widths: [8, 8, 8, 8], - heights: [22, 22, 22], - cells: [ - { - height: 1, - width: 1, - type: "header", - value: { value: "a", row: 1, col: 1 }, - }, - { - height: 1, - width: 1, - type: "header", - value: { value: "b", row: 1, col: 2 }, - }, - { - height: 1, - width: 2, - type: "header", - value: { value: "c", row: 1, col: 3 }, - }, - { - height: 2, - width: 1, - type: "value", - value: { value: 1, row: 2, col: 1 }, - }, - { - height: 2, - width: 1, - type: "value", - value: { value: 2, row: 2, col: 2 }, - }, - { - height: 1, - width: 1, - type: "header", - value: { value: "aa", row: 2, col: 3 }, - }, - { - height: 1, - width: 1, - type: "header", - value: { value: "bb", row: 2, col: 4 }, - }, - { - height: 1, - width: 1, - type: "value", - value: { value: 11, row: 3, col: 3 }, - }, - { - height: 1, - width: 1, - type: "value", - value: { value: 22, row: 3, col: 4 }, - }, - ], - }; - expect( - calculateSheetData(table, { - columnWidth: (column) => { - const counts = column.map((cell) => cell.count); - return Math.max( - Math.ceil( - (counts.reduce(sum) / table.height + counts.reduce(max)) / 2 - ), - 8 - ); - }, - rowHeight: (row) => - Math.max( - Math.ceil( - row.map(({ count }) => count).reduce(sum) / table.width - ), - 22 - ), - }) - ).toEqual(expected); - }); - }); -}); diff --git a/web/src/lib/block-to-xlsx.ts b/web/src/lib/block-to-xlsx.ts deleted file mode 100644 index 739c33b..0000000 --- a/web/src/lib/block-to-xlsx.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { type Cell as ExcelCell, type Column, type Row, Workbook } from "exceljs"; - -import { array } from "@/lib/array"; -import type { Matrix } from "@/lib/matrix"; -import { isNumber, isString } from "@/lib/guards"; -import { max, sum } from "@/lib/math"; -import type { Entry } from "@/lib/entry"; -import type { JSONPrimitiveOrNull } from "@/lib/json"; -import { type Block, type Cell, CellType } from "./json-table"; -import { createMatrix, fromMatrix } from "./block-matrix"; - -export interface MatrixData { - cell: Cell; - count: number; -} - -export interface CalculateSheetDataOptions { - columnWidth: ( - column: MatrixData[], - columnIndex: number, - matrix: Matrix, - table: Block - ) => number; - rowHeight: ( - row: MatrixData[], - rowIndex: number, - matrix: Matrix, - table: Block - ) => number; -} - -export function calculateSheetData( - table: Block, - { columnWidth, rowHeight }: CalculateSheetDataOptions -) { - const { width } = table; - const matrix = createMatrix(table, (cell) => ({ - cell, - count: - isString(cell.value) || isNumber(cell.value) - ? String(cell.value).length / cell.height / cell.width - : 0, - })); - const cells = fromMatrix( - matrix, - (cell) => cell.cell.type, - (cell, row, col) => ({ value: cell.cell.value, row: row + 1, col: col + 1 }) - ).data.rows.flatMap((r) => r.cells); - return { - widths: array(width, (i) => - columnWidth( - matrix.map((row) => row[i]), - i, - matrix, - table - ) - ), - heights: matrix.map((row, i) => rowHeight(row, i, matrix, table)), - cells, - }; -} - -export type MakeWorkBookOptions = Partial< - CalculateSheetDataOptions & { - cellMinHeight: number; - cellMinWidth: number; - modifyColumn: (column: Column, columnIndex: number) => void; - modifyRow: (row: Row, rowIndex: number) => void; - modifyCell: ( - sheetCell: ExcelCell, - matrixCell: Cell<{ - value: JSONPrimitiveOrNull; - col: number; - row: number; - }>, - matrixCellIndex: number - ) => void; - } ->; - -export function makeWorkBook( - tables: Entry[], - { - cellMinHeight = 22, - cellMinWidth = 10, - modifyCell, - modifyColumn, - modifyRow, - ...options - }: MakeWorkBookOptions = {} -): Workbook { - const wb = new Workbook(); - tables.forEach(([title, table]) => { - const sheet = wb.addWorksheet(title); - const { heights, widths, cells } = calculateSheetData(table, { - columnWidth: (column) => { - const counts = column.map((cell) => cell.count); - return Math.max( - Math.ceil(counts.reduce(sum) / table.height + counts.reduce(max)), - cellMinWidth - ); - }, - rowHeight: (row) => - Math.max( - Math.ceil( - (row.map(({ count }) => count).reduce(sum) / table.width) * 2 - ), - cellMinHeight - ), - ...options, - }); - widths.forEach((width, i) => { - const column = sheet.getColumn(i + 1); - column.width = width; - modifyColumn?.(column, i + 1); - }); - heights.forEach((height, i) => { - const row = sheet.getRow(i + 1); - row.height = height; - modifyRow?.(row, i + 1); - }); - cells.forEach((matrixCell, i) => { - const { - height, - width, - type, - value: { col, row, value }, - } = matrixCell; - const sheetCell = sheet.getRow(row).getCell(col); - sheetCell.value = value; - sheetCell.alignment = { vertical: "middle", wrapText: true }; - if (type !== CellType.Value) { - sheetCell.font = { bold: true }; - } - modifyCell?.(sheetCell, matrixCell, i); - if (height > 1 || width > 1) { - sheet.mergeCells(row, col, row + height - 1, col + width - 1); - } - }); - }); - return wb; -} diff --git a/web/src/lib/entry.ts b/web/src/lib/entry.ts deleted file mode 100644 index 3168322..0000000 --- a/web/src/lib/entry.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { isArray, isString } from '@/lib/guards' - -export type Entry = [string, V] - -export function transformKey(map: (value: string) => string) { - return function ([key, value]: Entry): Entry { - return [map(key), value] - } -} - -export function transformValue(map: (value: V) => R) { - return ([key, value]: Entry): Entry => [key, map(value)] -} - -export function isEntry(value: unknown): value is Entry { - return isArray(value) && value.length === 2 && isString(value[0]) -} - -export function zip(keys: string[], items: T[]): Entry[] { - const len = Math.min(keys.length, items.length) - const result: Entry[] = [] - for (let i = 0; i < len; i++) { - result.push([keys[i], items[i]]) - } - return result -} - -export function unzip(entries: Entry[]): [string[], T[]] { - const keys = [] - const items = [] - for (let i = 0; i < entries.length; i++) { - const [key, item] = entries[i] - keys.push(key) - items.push(item) - } - return [keys, items] -} - -export function makeEntriesTransform( - action: (entries: Entry[]) => Entry[] -) { - return (object: Record): Record => - Object.fromEntries(action(Object.entries(object))) -} - -export function filterByKey(filter: (key: string) => boolean) { - return function (entry: Entry): entry is Entry { - return filter(entry[0]) - } -} - -export function filterByValue( - filter: ((value: V) => value is R) | ((value: V) => boolean) -) { - return (entry: Entry): entry is Entry => filter(entry[1]) -} diff --git a/web/src/lib/file.ts b/web/src/lib/file.ts deleted file mode 100644 index 74c223d..0000000 --- a/web/src/lib/file.ts +++ /dev/null @@ -1,49 +0,0 @@ -export function createJSONBlob(json: string) { - return new Blob([json], { type: 'application/json' }) -} - -export function createXLSBlob(data: ArrayBuffer) { - return new Blob([data], { - type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8', - }) -} - -export function createFileURL(data: MediaSource | Blob) { - return URL.createObjectURL(data) -} - -export function makeDownloadFileByUrl(filename: string) { - return (url: string) => { - const a = document.createElement('a') - a.setAttribute('href', url) - a.setAttribute('download', filename) - a.click() - } -} - -export function readFileAsText(file: Blob) { - return new Promise>((resolve, reject) => { - const reader = new FileReader() - reader.onload = resolve - reader.onerror = reject - return reader.readAsText(file) - }) -} - -export function getFileName(disposition: string) { - const utf8FilenameRegex = /filename\*=UTF-8''([\w%\-.]+)(?:; ?|$)/ - const asciiFilenameRegex = /filename=(["']?)(.*?[^\\])\1(?:; ?|$)/ - - let fileName: string | null = null - if (utf8FilenameRegex.test(disposition)) { - fileName = decodeURIComponent( - (utf8FilenameRegex.exec(disposition) as RegExpExecArray)[1] - ) - } else { - const matches = asciiFilenameRegex.exec(disposition) - if (matches != null && matches[2]) { - fileName = matches[2] - } - } - return fileName -} diff --git a/web/src/lib/guards.ts b/web/src/lib/guards.ts deleted file mode 100644 index fe6b75d..0000000 --- a/web/src/lib/guards.ts +++ /dev/null @@ -1,58 +0,0 @@ -export type Nothing = null | undefined - -export type Falsy = 0 | '' | false | Nothing - -export function neverError(value: never, message: string) { - return new Error(`${message}: ${value}`); -} - -export function isDefined(value: T | undefined): value is T { - return value !== undefined -} - -export function isSomething(value: T | Nothing): value is T { - return value !== null && value !== undefined -} - -export function isTruly(value: T | Falsy): value is T { - return Boolean(value) -} - -export function isString(value: unknown): value is string { - return typeof value === 'string' -} - -export function isBoolean(value: unknown): value is boolean { - return typeof value === 'boolean' -} - -export function isNumber(value: unknown): value is number { - return typeof value === 'number' -} - -export function isObject(value: unknown): value is Record { - return typeof value === 'object' && value !== null -} - -export function isArray(value: unknown): value is T[] { - return Array.isArray(value) -} - -export function isRecord( - value: unknown -): value is Record { - return isObject(value) && !isArray(value) -} - -export function isFunction(value: unknown): value is T { - return typeof value === 'function' -} - -export function makeIsArrayOf(guard: (value: I) => value is T) { - return (value: unknown): value is Array => - isArray(value) && value.every(guard) -} - -export function isDate(value: unknown): value is Date { - return value instanceof Date -} diff --git a/web/src/lib/html.ts b/web/src/lib/html.ts deleted file mode 100644 index ee5062e..0000000 --- a/web/src/lib/html.ts +++ /dev/null @@ -1,34 +0,0 @@ -export function escapeHtml(unsafe: string) { - return unsafe.replace(/[&<"']/g, function (m) { - switch (m) { - case "&": - return "&"; - case "<": - return "<"; - case '"': - return """; - default: - return "'"; - } - }); -} - -export const renderHTMLPage = ( - title: string, - content: string, - style = "" -) => ` - - - - - - ${title} - - - - ${content} - -`; diff --git a/web/src/lib/json-schema.ts b/web/src/lib/json-schema.ts deleted file mode 100644 index d34dd36..0000000 --- a/web/src/lib/json-schema.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { - JSONSchema7Definition, - JSONSchema7Type, - JSONSchema7, - JSONSchema7TypeName, - validate, -} from 'json-schema' - -import type { JSONRecord, JSONArray, JSONValue } from '@/lib/json' - -export interface JSONSchema extends JSONSchema7 { - /** custom field from rjsf */ - enumNames?: string[] -} -export type JSONSchemaTypeName = JSONSchema7TypeName -export type JSONSchemaType = JSONSchema7Type -export interface JSONSchemaNameTypes { - string: string - number: number - integer: number - boolean: boolean - object: JSONRecord - array: JSONArray - null: null -} -export type JSONSchemaTypeByName = - JSONSchemaNameTypes[N] - -export type JSONSchemaTypeNames = JSONSchemaTypeName[] - -export function makeValidator( - schema: JSONSchema7Definition -): (value: JSONValue) => boolean { - return typeof schema === 'boolean' - ? () => schema - : //@ts-expect-error wrong types - (value: JSONValue): boolean => validate(value, schema).valid -} - -export function makeIsSchemaType(typeName: JSONSchemaTypeName) { - return ({ type }: JSONSchema): boolean => - Array.isArray(type) ? type.includes(typeName) : type === typeName -} diff --git a/web/src/lib/json-table/block.test.ts b/web/src/lib/json-table/block.test.ts deleted file mode 100644 index f1b55eb..0000000 --- a/web/src/lib/json-table/block.test.ts +++ /dev/null @@ -1,495 +0,0 @@ -import { type Block, CellType } from "./core"; -import { - stretchCellsToBottomInPlace, - stretchCellsToRightInPlace, - makeBlockInPlaceScaler, - areBlocksEqual, -} from "./block"; - -describe("stretchCellsToBottom", () => { - it("Should work with shifted bottom cell", () => { - const data: Block = { - height: 2, - width: 3, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 3, - type: CellType.Value, - }, - ], - columns: [0, 1, 2], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 4, - type: CellType.Value, - }, - ], - columns: [1], - }, - ], - indexes: [0, 1], - }, - }; - const expected: Block = { - height: 2, - width: 3, - data: { - rows: [ - { - cells: [ - { - height: 2, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - { - height: 2, - width: 1, - value: 3, - type: CellType.Value, - }, - ], - columns: [0, 1, 2], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 4, - type: CellType.Value, - }, - ], - columns: [1], - }, - ], - indexes: [0, 1], - }, - }; - stretchCellsToBottomInPlace(data); - expect(data).toEqual(expected); - }); -}); - -describe("stretchCellsToRight", () => { - it("Should work with shifted right cell", () => { - const data: Block = { - height: 3, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - ], - columns: [0], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 4, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 3, - type: CellType.Value, - }, - ], - columns: [0], - }, - ], - indexes: [0, 1, 2], - }, - }; - const expected: Block = { - height: 3, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 2, - value: 1, - type: CellType.Value, - }, - ], - columns: [0], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 4, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - { - cells: [ - { - height: 1, - width: 2, - value: 3, - type: CellType.Value, - }, - ], - columns: [0], - }, - ], - indexes: [0, 1, 2], - }, - }; - stretchCellsToRightInPlace(data); - expect(data).toEqual(expected); - }); -}); - -describe("makeBlockScaler", () => { - it("Should scale correctly height and fill empty cells", () => { - const scale = makeBlockInPlaceScaler("height", 5); - const data: Block = { - height: 2, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - { - cells: [ - { - height: 1, - width: 1, - value: 3, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 4, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - ], - indexes: [0, 1], - }, - }; - const expected: Block = { - height: 5, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 2, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 2, - width: 1, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - { - cells: [ - { - height: 3, - width: 1, - value: 3, - type: CellType.Value, - }, - { - height: 3, - width: 1, - value: 4, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - ], - indexes: [0, 2], - }, - }; - scale(data); - expect(data).toEqual(expected); - }); -}); - -describe("areBlocksEqual", () => { - it("Should return true for equal blocks", () => { - expect( - areBlocksEqual({ - blocks: [ - { - height: 1, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - ], - indexes: [0], - }, - }, - { - height: 2, - width: 4, - data: { - rows: [ - { - cells: [ - { - height: 2, - width: 2, - value: 1, - type: CellType.Value, - }, - { - height: 2, - width: 2, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 2], - }, - ], - indexes: [0], - }, - }, - ], - height: 2, - width: 4, - }) - ).toBe(true); - }); - - it("Should return false for unequal blocks", () => { - expect( - areBlocksEqual({ - blocks: [ - { - height: 1, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - ], - indexes: [0], - }, - }, - { - height: 1, - width: 3, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 3, - type: CellType.Value, - }, - ], - columns: [0, 1, 2], - }, - ], - indexes: [0], - }, - }, - ], - width: 6, - height: 1, - }) - ).toBe(false); - }); - - it("Should return true for equal blocks with different sizes", () => { - expect( - areBlocksEqual({ - blocks: [ - { - height: 1, - width: 2, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 1, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - ], - indexes: [0], - }, - }, - { - height: 1, - width: 3, - data: { - rows: [ - { - cells: [ - { - height: 1, - width: 1, - value: 1, - type: CellType.Value, - }, - { - height: 1, - width: 2, - value: 2, - type: CellType.Value, - }, - ], - columns: [0, 1], - }, - ], - indexes: [0], - }, - }, - ], - width: 3, - widthIsLcm: false, - height: 1, - }) - ).toBe(true); - }); -}); diff --git a/web/src/lib/json-table/block.ts b/web/src/lib/json-table/block.ts deleted file mode 100644 index 93f0239..0000000 --- a/web/src/lib/json-table/block.ts +++ /dev/null @@ -1,350 +0,0 @@ -import { lcm, max } from "@/lib/math"; -import { array } from "@/lib/array"; - -import type { - Block, - BlockCompositor, - BlockSizeAspect, - Cell, - ProportionalResizeGuard, - Cells, - RowsScaler, - Rows, - BlockTransformInPlace, -} from "./core"; -import { - scaleRowsHorizontallyInPlace, - scaleRowsVerticallyInPlace, -} from "./row"; - -export interface AreBlocksEqualOptions { - blocks: Block[]; - width: number; - height: number; - widthIsLcm?: boolean; - heightIsLcm?: boolean; -} - -export function areBlocksEqual({ - blocks, - width, - heightIsLcm = true, - height, - widthIsLcm = true, -}: AreBlocksEqualOptions): boolean { - const blocksRows = blocks.map((b) => { - const wMultiplier = widthIsLcm ? width / b.width : 1; - const hMultiplier = heightIsLcm ? height / b.height : 1; - const { rows, indexes } = b.data; - const newRows = array(height, () => new Array>(width)); - for (let i = 0; i < rows.length; i++) { - const index = indexes[i]; - const { cells, columns } = rows[i]; - for (let j = 0; j < cells.length; j++) { - const cell = cells[j]; - const row = index * hMultiplier; - let rowEnd = row + cell.height * hMultiplier; - if (!heightIsLcm && rowEnd === b.height && rowEnd < height) { - rowEnd = height; - } - const col = columns[j] * wMultiplier; - let colEnd = col + cell.width * wMultiplier; - if (!widthIsLcm && colEnd === b.width && colEnd < width) { - colEnd = width; - } - for (let k = row; k < rowEnd; k++) { - const newRow = newRows[k]; - for (let l = col; l < colEnd; l++) { - newRow[l] = cell; - } - } - } - } - return newRows; - }); - // Loop over rows - for (let i = 0; i < height; i++) { - const firstBlockRow = blocksRows[0][i]; - // Loop over cells - for (let j = 0; j < width; j++) { - const firstBlockCell = firstBlockRow[j]; - // Loop over other blocks - for (let k = 1; k < blocks.length; k++) { - const cell = blocksRows[k][i][j]; - if (!cell || firstBlockCell.value !== cell.value) { - return false; - } - } - } - i++; - } - return true; -} - -function applyResizeInPlace( - { rows }: Rows, - toResize: Map>, - sizeAspect: BlockSizeAspect -): void { - for (const [rowId, cells] of toResize) { - const rowCells = rows[rowId].cells; - for (const [cellId, diff] of cells) { - rowCells[cellId][sizeAspect] += diff; - } - } -} - -export function stretchCellsToBottomInPlace({ - data, - height, - width, -}: Block): void { - // TODO: Calculate yShift by row index and cell height - const yShift = array(width, () => 0); - const bottomPositions = new Array< - | { - cell: Cell; - rowIndex: number; - colIndex: number; - } - | null - | undefined - >(width); - const { rows } = data; - for (let i = 0; i < rows.length; i++) { - const { cells, columns } = rows[i]; - for (let j = 0; j < cells.length; j++) { - const cell = cells[j]; - const x = columns[j]; - yShift[x] += cell.height; - bottomPositions[x] = { cell, rowIndex: i, colIndex: j }; - for (let k = 1; k < cell.width; k++) { - yShift[x + k] += cell.height; - bottomPositions[x + k] = null; - } - } - } - // rowId: { cellId: diff } - const toResize = new Map>(); - for (let i = 0; i < width; i++) { - const position = bottomPositions[i]; - if (!position) { - continue; - } - const diff = height - yShift[i]; - if (diff <= 0) { - continue; - } - const cells = toResize.get(position.rowIndex) || new Map(); - toResize.set(position.rowIndex, cells.set(position.colIndex, diff)); - } - applyResizeInPlace(data, toResize, "height"); -} - -export function stretchCellsToRightInPlace({ - data, - height, - width, -}: Block) { - const rightPositions = new Array< - | { - cell: Cell; - indexInRow: number; - xTopRightCorner: number; - } - | undefined - >(height); - const { rows, indexes } = data; - for (let i = 0; i < rows.length; i++) { - const { cells, columns } = rows[i]; - if (cells.length === 0) { - continue; - } - const indexInRow = cells.length - 1; - const cell = cells[indexInRow]; - const xTopRightCorner = columns[indexInRow] + cell.width; - const point = { - cell, - indexInRow, - xTopRightCorner, - }; - const index = indexes[i]; - for (let j = index; j < index + cell.height; j++) { - const rp = rightPositions[j]; - if (!rp || xTopRightCorner > rp.xTopRightCorner) { - rightPositions[j] = point; - } - } - } - // TODO: this algorithm can be implemented without `set` of cells - const addedToResize = new Set>(); - const toResize = new Map>(); - for (let i = 0; i < rows.length; i++) { - const index = indexes[i]; - const position = rightPositions[index]; - if (!position || addedToResize.has(position.cell)) { - continue; - } - addedToResize.add(position.cell); - const diff = width - position.xTopRightCorner; - if (diff <= 0) { - continue; - } - const cells = toResize.get(i) || new Map(); - toResize.set(i, cells.set(position.indexInRow, diff)); - } - applyResizeInPlace(data, toResize, "width"); -} - -const SIZE_ASPECT_TO_ROWS_IN_PLACE_SCALER: Record< - BlockSizeAspect, - RowsScaler -> = { - width: scaleRowsHorizontallyInPlace, - height: scaleRowsVerticallyInPlace, -}; - -const SIZE_ASPECT_TO_CELLS_IN_PLACE_STRETCHER: Record< - BlockSizeAspect, - BlockTransformInPlace -> = { - width: stretchCellsToRightInPlace, - height: stretchCellsToBottomInPlace, -}; - -export function makeBlockInPlaceScaler( - sizeAspect: BlockSizeAspect, - finalSize: number -): BlockTransformInPlace { - const scaleRowsInPlace = SIZE_ASPECT_TO_ROWS_IN_PLACE_SCALER[sizeAspect]; - const stretchCellsInPlace = - SIZE_ASPECT_TO_CELLS_IN_PLACE_STRETCHER[sizeAspect]; - return (table) => { - const multiplier = Math.floor(finalSize / table[sizeAspect]); - if (multiplier > 1) { - scaleRowsInPlace(table.data, multiplier); - } - let oldSize = table[sizeAspect]; - table[sizeAspect] = finalSize; - if (finalSize - oldSize * multiplier > 0) { - stretchCellsInPlace(table); - } - }; -} - -export function mergeBlocksVertically( - blocks: Block[], - width: number -): Block { - // TODO: first block can be used as accumulator - const rows = new Array>(0); - const indexes = new Array(0); - let index = 0; - for (let i = 0; i < blocks.length; i++) { - const { data, height } = blocks[i]; - for (let j = 0; j < data.rows.length; j++) { - indexes.push(index + data.indexes[j]); - rows.push(data.rows[j]); - } - index += height; - } - return { - width, - height: index, - data: { rows, indexes }, - }; -} - -export function compressRawRowsInPlaceAndMakeIndexes( - rows: Cells[] -): number[] { - const indexes = new Array(rows.length); - let shift = 0; - for (let i = 0; i < rows.length; i++) { - if (rows[i].cells.length === 0) { - shift++; - continue; - } - rows[i - shift] = rows[i]; - indexes[i - shift] = i; - } - rows.length -= shift; - indexes.length -= shift; - return indexes; -} - -export function mergeBlocksHorizontally( - blocks: Block[], - height: number -): Block { - const newRows = array(height, (): Cells => ({ cells: [], columns: [] })); - let width = 0; - for (let i = 0; i < blocks.length; i++) { - const { - data: { rows, indexes }, - width: blockWidth, - } = blocks[i]; - for (let j = 0; j < rows.length; j++) { - const { cells, columns } = rows[j]; - const row = newRows[indexes[j]]; - for (let k = 0; k < cells.length; k++) { - row.cells.push(cells[k]); - row.columns.push(columns[k] + width); - } - } - width += blockWidth; - } - // Rows created locally, so no mutations - const indexes = compressRawRowsInPlaceAndMakeIndexes(newRows); - return { - width, - height, - data: { - rows: newRows, - indexes, - }, - }; -} - -// TODO: combine into one function `makeBlockStacker` -export function makeVerticalBlockInPlaceStacker( - isProportionalResize: ProportionalResizeGuard -): BlockCompositor { - return function stackBlocksVertically(blocks) { - let lcmWidth = blocks[0].width; - let maxWidth = lcmWidth; - for (let i = 1; i < blocks.length; i++) { - const block = blocks[i]; - lcmWidth = lcm(lcmWidth, block.width); - maxWidth = max(maxWidth, block.width); - } - const width = isProportionalResize(lcmWidth, maxWidth) - ? lcmWidth - : maxWidth; - const scale = makeBlockInPlaceScaler("width", width); - for (let i = 0; i < blocks.length; i++) { - scale(blocks[i]); - } - return mergeBlocksVertically(blocks, width); - }; -} -export function makeHorizontalBlockInPlaceStacker( - isProportionalResize: ProportionalResizeGuard -): BlockCompositor { - return (blocks) => { - let lcmHeight = blocks[0].height; - let maxHeight = lcmHeight; - for (let i = 1; i < blocks.length; i++) { - lcmHeight = lcm(lcmHeight, blocks[i].height); - maxHeight = max(maxHeight, blocks[i].height); - } - const height = isProportionalResize(lcmHeight, maxHeight) - ? lcmHeight - : maxHeight; - const scale = makeBlockInPlaceScaler("height", height); - for (let i = 0; i < blocks.length; i++) { - scale(blocks[i]); - } - return mergeBlocksHorizontally(blocks, height); - }; -} diff --git a/web/src/lib/json-table/core.ts b/web/src/lib/json-table/core.ts deleted file mode 100644 index 077b52b..0000000 --- a/web/src/lib/json-table/core.ts +++ /dev/null @@ -1,119 +0,0 @@ -import type { JSONPrimitiveOrNull } from "@/lib/json"; - -export interface Height { - height: number; -} - -export interface Width { - width: number; -} - -export interface Sized extends Height, Width {} - -export enum CellType { - Header = "header", - Index = "index", - Value = "value", - Corner = "corner", -} - -export interface Cell extends Sized { - value: V; - type: CellType; -} - -export interface Cells { - cells: Cell[]; - /** Absolute position in row for each cell */ - columns: number[]; -} - -export interface Rows { - rows: Cells[]; - /** Absolute position in column for each row */ - indexes: number[]; -} - -export interface Block extends Sized { - data: Rows; -} - -export interface Table { - head: Block | null; - indexes: Block | null; - body: Block; -} - -export type ProportionalResizeGuard = ( - lcmValue: number, - maxValue: number -) => boolean; - -export type RowsScaler = ( - rows: Rows, - multiplier: number, -) => void; - -export type BlockTransformInPlace = (block: Block) => void; - -export type BlockTransform = (block: Block) => Block; - -export type BlockCompositor = (blocks: Block[]) => Block; - -export interface ComposedTable extends Table { - baked: Block[]; -} - -export type TableCompositor = (tables: Table[]) => ComposedTable; - -export type TableComponent = "head" | "indexes"; -export type BlockSizeAspect = "height" | "width"; - -export const BLOCK_SIZE_ASPECT_OPPOSITES: Record< - BlockSizeAspect, - BlockSizeAspect -> = { - height: "width", - width: "height", -}; - -export const TABLE_COMPONENT_SIZE_ASPECTS: Record< - TableComponent, - BlockSizeAspect -> = { - head: "height", - indexes: "width", -}; - -export const TABLE_COMPONENT_OPPOSITES: Record = - { - head: "indexes", - indexes: "head", - }; - -export function makeTableFromValue(value: V): Table { - return { - head: null, - indexes: null, - body: { - height: 1, - width: 1, - data: { - rows: [ - { - cells: [{ height: 1, width: 1, value, type: CellType.Value }], - columns: [0], - }, - ], - indexes: [0], - }, - }, - }; -} - -export function makeProportionalResizeGuard( - threshold: number -): ProportionalResizeGuard { - return (lcmValue: number, maxValue: number) => - (lcmValue - maxValue) / maxValue <= threshold; -} diff --git a/web/src/lib/json-table/index.ts b/web/src/lib/json-table/index.ts deleted file mode 100644 index 4a105f0..0000000 --- a/web/src/lib/json-table/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './core' -export * from './row' -export * from './block' -export * from './table' diff --git a/web/src/lib/json-table/row.ts b/web/src/lib/json-table/row.ts deleted file mode 100644 index d5a8da2..0000000 --- a/web/src/lib/json-table/row.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { Rows } from "./core"; - -export function shiftPositionsInPlace(columns: number[], offset: number): void { - for (let i = 0; i < columns.length; i++) { - columns[i] += offset; - } -} - -export function scaleRowsVerticallyInPlace( - { rows, indexes }: Rows, - multiplier: number -): void { - for (let i = 0; i < rows.length; i++) { - indexes[i] = indexes[i] * multiplier; - const cells = rows[i].cells; - for (let j = 0; j < cells.length; j++) { - cells[j].height = cells[j].height * multiplier; - } - } -} - -export function scaleRowsHorizontallyInPlace( - { rows }: Rows, - multiplier: number -): void { - for (let i = 0; i < rows.length; i++) { - const { cells, columns } = rows[i]; - for (let j = 0; j < cells.length; j++) { - cells[j].width = cells[j].width * multiplier; - columns[j] = columns[j] * multiplier; - } - } -} diff --git a/web/src/lib/json-table/table.ts b/web/src/lib/json-table/table.ts deleted file mode 100644 index 4dd8142..0000000 --- a/web/src/lib/json-table/table.ts +++ /dev/null @@ -1,279 +0,0 @@ -import { lcm, max } from "@/lib/math"; - -import { - type Block, - type BlockCompositor, - CellType, - type ProportionalResizeGuard, - TABLE_COMPONENT_SIZE_ASPECTS, - TABLE_COMPONENT_OPPOSITES, - type Table, - type TableComponent, - type TableCompositor, - type ComposedTable, -} from "./core"; -import { shiftPositionsInPlace } from "./row"; -import { - areBlocksEqual, - makeBlockInPlaceScaler, - makeHorizontalBlockInPlaceStacker, - makeVerticalBlockInPlaceStacker, - mergeBlocksHorizontally, - mergeBlocksVertically, -} from "./block"; - -export interface BakeOptions { - head?: boolean; - indexes?: boolean; - cornerCellValue: V; -} - -function bestHead(a: Block, b: Block) { - if (a.width === b.width) { - return a.height < b.height ? a : b; - } - return a.width > b.width ? a : b; -} - -function bestIndexes(a: Block, b: Block) { - if (a.height === b.height) { - return a.width < b.width ? a : b; - } - return a.height > b.height ? a : b; -} - -const TABLE_COMPONENT_SELECTORS: Record< - TableComponent, - (a: Block, b: Block) => Block -> = { - head: bestHead, - indexes: bestIndexes, -}; - -export function tryDeduplicateComponent( - tables: Table[], - component: TableComponent, - proportionalResizeGuard: ProportionalResizeGuard -): Block | null { - const { [component]: cmp } = tables[0]; - if (!cmp) { - return null; - } - const select = TABLE_COMPONENT_SELECTORS[component]; - const blocks = [cmp]; - let bestCmp = cmp; - let lcmHeight = cmp.height; - let lcmWidth = cmp.width; - let maxHeight = cmp.height; - let maxWidth = cmp.width; - for (let i = 1; i < tables.length; i++) { - const cmp = tables[i][component]; - if (!cmp) { - return null; - } - bestCmp = select(bestCmp, cmp); - maxHeight = max(maxHeight, cmp.height); - maxWidth = max(maxWidth, cmp.width); - lcmHeight = lcm(lcmHeight, cmp.height); - lcmWidth = lcm(lcmWidth, cmp.width); - blocks.push(cmp); - } - const isHeightProportional = proportionalResizeGuard(lcmHeight, maxHeight); - const isWidthProportional = proportionalResizeGuard(lcmWidth, maxWidth); - if ( - !(component === "head" ? isHeightProportional : isWidthProportional) || - !areBlocksEqual({ - blocks, - width: isWidthProportional ? lcmWidth : maxWidth, - widthIsLcm: isWidthProportional, - height: isHeightProportional ? lcmHeight : maxHeight, - heightIsLcm: isHeightProportional, - }) - ) { - return null; - } - return bestCmp; -} - -export function makeTableInPlaceBaker({ - head: bakeHead, - indexes: bakeIndexes, - cornerCellValue, -}: BakeOptions) { - return ({ body, head, indexes }: Table) => { - if (!bakeHead && !bakeIndexes) { - return body; - } - const useHead = bakeHead && head !== null; - const useIndexes = bakeIndexes && indexes !== null; - const withIndexes = useIndexes - ? mergeBlocksHorizontally([indexes, body], body.height) - : body; - const width = body.width + (useIndexes ? indexes.width : 0); - if (!useHead) { - return withIndexes; - } - if (!useIndexes) { - return mergeBlocksVertically([head, withIndexes], width); - } - // TODO: factor out `prependCell(Block, Cell)` ? - for (let i = 0; i < head.data.rows.length; i++) { - shiftPositionsInPlace(head.data.rows[i].columns, indexes.width); - } - const firstHeadRow = head.data.rows[0]; - firstHeadRow.cells.unshift({ - height: head.height, - width: indexes.width, - value: cornerCellValue, - type: CellType.Corner, - }); - firstHeadRow.columns.unshift(0); - return mergeBlocksVertically([head, withIndexes], width); - }; -} - -export function tryPrepareTablesToStack( - tables: Table[], - component: TableComponent, - bake: boolean, - cornerCellValue: V -) { - const blocks: Block[] = []; - for (let i = 0; i < tables.length; i++) { - const table = tables[i]; - const { - [component]: cmp, - [TABLE_COMPONENT_OPPOSITES[component]]: opposite, - } = table; - if (cmp === null) { - return null; - } - if (!bake || !opposite) { - blocks.push(cmp); - continue; - } - switch (component) { - case "indexes": { - const shifted = cmp.data.indexes.slice(); - // mutation of local copy - shiftPositionsInPlace(shifted, opposite.height); - shifted.unshift(0); - blocks.push({ - height: cmp.height + opposite.height, - width: cmp.width, - data: { - rows: [ - { - cells: [ - { - height: opposite.height, - width: cmp.width, - value: cornerCellValue, - type: CellType.Corner, - }, - ], - columns: [0], - }, - ...cmp.data.rows, - ], - indexes: shifted, - }, - }); - break; - } - case "head": { - const shifted = cmp.data.rows[0].columns.slice(); - // mutation of local copy - shiftPositionsInPlace(shifted, opposite.width); - shifted.unshift(0); - blocks.push({ - height: cmp.height, - width: cmp.width + opposite.width, - data: { - rows: [ - { - cells: [ - { - height: cmp.height, - width: opposite.width, - value: cornerCellValue, - type: CellType.Corner, - }, - ...cmp.data.rows[0].cells, - ], - columns: shifted, - }, - ...cmp.data.rows.slice(1), - ], - indexes: cmp.data.indexes, - }, - }); - break; - } - default: - throw new Error(`Unknown table component: ${component}`); - } - } - return blocks; -} - -export interface TableStackerOptions { - isProportionalResize: ProportionalResizeGuard; - cornerCellValue: V; - deduplicationComponent: C; -} - -const TABLE_COMPONENT_TO_BLOCK_IN_PLACE_STACKERS: Record< - TableComponent, - (guard: ProportionalResizeGuard) => BlockCompositor -> = { - head: makeVerticalBlockInPlaceStacker, - indexes: makeHorizontalBlockInPlaceStacker, -}; - -export function makeTableInPlaceStacker({ - deduplicationComponent, - isProportionalResize, - cornerCellValue, -}: TableStackerOptions): TableCompositor { - const blockInPlaceStacker = - TABLE_COMPONENT_TO_BLOCK_IN_PLACE_STACKERS[deduplicationComponent]( - isProportionalResize - ); - const opposite = TABLE_COMPONENT_OPPOSITES[deduplicationComponent]; - return (tables) => { - const deduplicated = tryDeduplicateComponent( - tables, - deduplicationComponent, - isProportionalResize - ); - const bake = deduplicated === null; - const blocksToStack = tryPrepareTablesToStack( - tables, - opposite, - bake, - cornerCellValue - ); - const baked = tables.map( - makeTableInPlaceBaker({ - [deduplicationComponent]: bake, - [opposite]: blocksToStack === null, - cornerCellValue, - }) - ); - const body = blockInPlaceStacker(baked); - const aspect = TABLE_COMPONENT_SIZE_ASPECTS[opposite]; - if (deduplicated) { - const scale = makeBlockInPlaceScaler(aspect, body[aspect]); - scale(deduplicated); - } - const composedTable: ComposedTable = { - body, - baked, - [deduplicationComponent as "head"]: deduplicated, - [opposite as "indexes"]: - blocksToStack && blockInPlaceStacker(blocksToStack), - }; - return composedTable; - }; -} diff --git a/web/src/lib/json-to-table.test.ts b/web/src/lib/json-to-table.test.ts deleted file mode 100644 index bc255d3..0000000 --- a/web/src/lib/json-to-table.test.ts +++ /dev/null @@ -1,242 +0,0 @@ -import { blockToASCII } from "./block-to-ascii"; -import type { JSONPrimitiveOrNull } from "./json"; -import { makeTableFactory } from "./json-to-table"; -import { makeTableInPlaceBaker } from "./json-table"; - -import simpleHeadersDuplication from "./__fixtures__/simple-headers-duplication.json"; -import simpleIndexesDeduplication from "./__fixtures__/simple-indexes-deduplication.json"; -import parsingError from "./__fixtures__/parsing-error.json"; -import differentHeaders from "./__fixtures__/different-headers.json"; -import uniqueHeaders from "./__fixtures__/uniq-headers.json"; -import wrongSizes from "./__fixtures__/wrong-sizes.json"; -import emptyArrays from "./__fixtures__/empty-arrays.json" - -describe("makeTableFactory", () => { - const cornerCellValue = "№"; - const factory = makeTableFactory({ cornerCellValue }); - const bake = makeTableInPlaceBaker({ - cornerCellValue, - head: true, - indexes: true, - }); - - it("Should create table for primitives", () => { - const data = [false, 12345, "abcde"]; - for (const value of data) { - const table = factory(value); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}`).toBe(` -+-------+ -| ${value} | -+-------+`); - } - }); - - it("Should create table for objects", () => { - const data = { - a: 1, - b: 2, - c: { aa: 11, bb: 22 }, - }; - const table = factory(data); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+---+---------+ -| a | b | c | -+---+---+----+----+ -| | | aa | bb | -| 1 | 2 +----+----+ -| | | 11 | 22 | -+---+---+----+----+ -`); - }); - - it("Should create table for arrays", () => { - const data = [1, 2, [11, 22]]; - const table = factory(data); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+--------+ -| 1 | 1 | -+---+--------+ -| 2 | 2 | -+---+---+----+ -| | 1 | 11 | -| 3 +---+----+ -| | 2 | 22 | -+---+---+----+ -`); - }); - - it("Should create table for arrays with indexes collapse", () => { - const factory = makeTableFactory({ - cornerCellValue, - collapseIndexes: true, - }); - const data = [ - [1, 2], - [11, 22], - ]; - const table = factory(data); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+-----+----+ -| 1.1 | 1 | -+-----+----+ -| 1.2 | 2 | -+-----+----+ -| 2.1 | 11 | -+-----+----+ -| 2.2 | 22 | -+-----+----+ -`); - }); - - it("Should deduplicate table headers", () => { - const table = factory(simpleHeadersDuplication); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+---+---+---+ -| № | a | b | c | -+---+---+---+---+ -| 1 | 1 | 2 | 3 | -+---+---+---+---+ -| 2 | 4 | 5 | 6 | -+---+---+---+---+ -| 3 | 7 | 8 | 9 | -+---+---+---+---+ -`); - }); - - it("Should deduplicate table indexes", () => { - const table = factory(simpleIndexesDeduplication); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+---+---+---+ -| № | a | b | c | -+---+---+---+---+ -| 1 | 1 | 2 | 3 | -+---+---+---+---+ -| 2 | 4 | 5 | 6 | -+---+---+---+---+ -| 3 | 7 | 8 | 9 | -+---+---+---+---+ -`); - }); - - it("Should combine simple values should not affect objects values", () => { - const factory = makeTableFactory({ - cornerCellValue, - joinPrimitiveArrayValues: true, - }); - const table = factory(parsingError); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+-----------------------------------+ -| | weather | -| № +------+-------+-------------+------+ -| | id | main | description | icon | -+---+------+-------+-------------+------+ -| 1 | 800 | Clear | clear sky | 01n | -+---+------+-------+-------------+------+ -`); - }); - - it("Should not deduplicate objects with different headers", () => { - const table = factory(differentHeaders as any); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+------------------------------+---------------------+ -| | character_id | item_id | -| 1 +------------------------------+---------------------+ -| | 5428010618020694593 | 95 | -+---+---------------------+--------+-------+-------------+ -| | character_id | item_id | stack_count | -| 2 +---------------------+----------------+-------------+ -| | 5428010618020694593 | 101 | 4 | -+---+---------------------+----------------+-------------+ -`); - }); - - it("Should work with unique headers", () => { - const table = factory(uniqueHeaders as any); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+-----------------------------+------+------+----------+--------+-------------+ -| | description | in | name | required | type | uniqueItems | -| 1 +-----------------------------+------+------+----------+--------+-------------+ -| | name of the ComponentStatus | path | name | true | string | true | -+---+-----------------------------+------+------+----------+--------+-------------+ -| | $ref | -| 2 +-----------------------------------------------------------------------------+ -| | #/parameters/pretty-tJGM1-ng | -+---+-----------------------------------------------------------------------------+ -`); - }); - - it("Should create correct table", () => { - const table = factory(wrongSizes as any); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+---------------+---------------+-----------------------------------------+ -| № | options | pluginVersion | targets | -+---+---------------+---------------+-------+------------------------+--------+ -| | reduceOptions | | | | | -| | | | № | expr | format | -| +---------------+ | | | | -| | | | | | | -| 1 | values | 7.3.1 +-------+------------------------+--------+ -| | | | | | | -| +---------------+ | 1 | loki_build_info | table | -| | false | | | | | -| | | | | | | -+---+---------------+---------------+-------+------------------------+--------+ -| | reduceOptions | | | | -| | | | № | expr | -| +---------------+ | | | -| | | | | | -| 2 | values | 7.3.1 +-------+---------------------------------+ -| | | | | | -| +---------------+ | 1 | sum(log_messages_total) | -| | false | | | | -| | | | | | -+---+---------------+---------------+-------+---------------------------------+ -`); - }); - - it('Should deduplicate equal headers with different sizes', () => { - const data = [ - {a:1, b:2, c: 3}, - {a:1, b:2, c: {d: 4, e: 5}} - ] - const table = factory(data); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+---+---+-------+ -| № | a | b | c | -+---+---+---+-------+ -| 1 | 1 | 2 | 3 | -+---+---+---+---+---+ -| | | | d | e | -| 2 | 1 | 2 +---+---+ -| | | | 4 | 5 | -+---+---+---+---+---+ -`); - }) - // The original problem was in the modification of global `EMPTY` table - it('Should handle empty arrays', () => { - const table = factory(emptyArrays as any); - const ascii = blockToASCII(bake(table)); - expect(`\n${ascii}\n`).toBe(` -+---+------------------------------------------------------------------------------+ -| | tasks | -| № +---------------------------+---+----------------------------------------------+ -| | n | d | a | -+---+---+-----------------------+---+----------------------+-----------------------+ -| 1 | 1 | UspYpi-8NwmZZR7FJprSb | | 1 | aCx8zMrOjqW6K55TMokHD | -+---+---+-----------------------+---+----------------------+-----------------------+ -| 2 | | | 1 | gwT5xfbxgkPCq_VDyoBO3 | -+---+---+-----------------------+---+----------------------------------------------+ -`); - }) -}); diff --git a/web/src/lib/json-to-table.ts b/web/src/lib/json-to-table.ts deleted file mode 100644 index c59056d..0000000 --- a/web/src/lib/json-to-table.ts +++ /dev/null @@ -1,211 +0,0 @@ -import { - type JSONPrimitiveOrNull, - type JSONRecord, - type JSONValue, - isJsonPrimitiveOrNull, -} from "@/lib/json"; -import { - type Table, - type Cells, - makeTableFromValue, - makeProportionalResizeGuard, - type ComposedTable, - CellType, - shiftPositionsInPlace, - makeTableInPlaceStacker, - mergeBlocksHorizontally, - type Block, -} from "@/lib/json-table"; -import { isRecord } from "@/lib/guards"; -import { array } from "@/lib/array"; -import { makeObjectPropertiesStabilizer } from "@/lib/object"; - -export interface TableFactoryOptions { - joinPrimitiveArrayValues?: boolean; - /** combine arrays of objects into a single object */ - combineArraysOfObjects?: boolean; - /** proportional size adjustment threshold */ - proportionalSizeAdjustmentThreshold?: number; - collapseIndexes?: boolean; - cornerCellValue: V; - stabilizeOrderOfPropertiesInArraysOfObjects?: boolean; -} - -export function makeTableFactory({ - combineArraysOfObjects, - joinPrimitiveArrayValues, - proportionalSizeAdjustmentThreshold = 1, - stabilizeOrderOfPropertiesInArraysOfObjects = true, - cornerCellValue, - collapseIndexes, -}: TableFactoryOptions) { - const isProportionalResize = makeProportionalResizeGuard( - proportionalSizeAdjustmentThreshold - ); - const verticalTableInPlaceStacker = makeTableInPlaceStacker({ - deduplicationComponent: "head", - isProportionalResize, - cornerCellValue, - }); - const horizontalTableInPlaceStacker = makeTableInPlaceStacker({ - deduplicationComponent: "indexes", - isProportionalResize, - cornerCellValue, - }); - - function addIndexesInPlace(table: ComposedTable, titles: string[]): void { - const { baked, indexes: indexesBlock } = table; - const hasIndexes = indexesBlock !== null; - const collapse = hasIndexes && collapseIndexes; - if (collapse) { - let blockIndex = 0; - let h = baked[0].height; - const { rows, indexes } = indexesBlock.data; - for (let i = 0; i < rows.length; i++) { - const rawRow = rows[i]; - const index = indexes[i]; - if (index >= h) { - h += baked[++blockIndex].height; - } - const title = titles[blockIndex]; - rawRow.cells[0].value = `${title}.${rawRow.cells[0].value}`; - } - return; - } - const rawRows = array(baked.length, () => ({ - cells: [], - columns: [], - })); - const idx = new Array(0); - let index = 0; - for (let i = 0; i < baked.length; i++) { - const rawRow = rawRows[i]; - const { height } = baked[i]; - rawRow.cells.push({ - height: height, - width: 1, - value: titles[i], - type: CellType.Index, - }); - rawRow.columns.push(0); - idx.push(index); - index += height; - } - const newIndexes: Block = { - height: index, - width: 1, - data: { - rows: rawRows, - indexes: idx, - }, - }; - table.indexes = hasIndexes - ? mergeBlocksHorizontally([newIndexes, indexesBlock], index) - : newIndexes; - } - - function addHeaders(table: ComposedTable, titles: string[]): void { - const { baked, head } = table; - const hasHeaders = head !== null; - const newHead: Cells = { - cells: [], - columns: [], - }; - let w = 0; - for (let i = 0; i < baked.length; i++) { - const { width } = baked[i]; - newHead.cells.push({ - height: 1, - width, - value: titles[i], - type: CellType.Header, - }); - newHead.columns.push(w); - w += width; - } - if (hasHeaders) { - head.data.rows.unshift(newHead); - shiftPositionsInPlace(head.data.indexes, 1); - head.data.indexes.unshift(0); - } - table.head = { - width: w, - height: hasHeaders ? head.height + 1 : 1, - data: hasHeaders ? head.data : { rows: [newHead], indexes: [0] }, - }; - } - - function stackTablesVertical(titles: string[], tables: Table[]): Table { - const stacked = verticalTableInPlaceStacker(tables); - addIndexesInPlace(stacked, titles); - // @ts-expect-error transform to regular table - delete stacked.baked; - return stacked; - } - function stackTablesHorizontal(titles: string[], tables: Table[]): Table { - const stacked = horizontalTableInPlaceStacker(tables); - addHeaders(stacked, titles); - // @ts-expect-error transform to regular table - delete stacked.baked; - return stacked; - } - function transformRecord(record: Record): Table { - const keys = Object.keys(record); - if (keys.length === 0) { - return makeTableFromValue(""); - } - return stackTablesHorizontal( - keys, - keys.map((key) => transformValue(record[key])) - ); - } - function transformArray( - value: V[], - transformValue: (value: V) => Table - ): Table { - const titles = new Array(value.length); - const tables = new Array(value.length); - for (let i = 0; i < value.length; i++) { - titles[i] = String(i + 1); - tables[i] = transformValue(value[i]); - } - return stackTablesVertical(titles, tables); - } - function transformValue(value: JSONValue): Table { - if (isJsonPrimitiveOrNull(value)) { - return makeTableFromValue(value); - } - if (Array.isArray(value)) { - if (value.length === 0) { - return makeTableFromValue(""); - } - let isPrimitives = true; - let isRecords = true; - let i = 0; - while (i < value.length && (isPrimitives || isRecord)) { - isPrimitives = isPrimitives && isJsonPrimitiveOrNull(value[i]); - isRecords = isRecords && isRecord(value[i]); - i++; - } - if (joinPrimitiveArrayValues && isPrimitives) { - return makeTableFromValue(value.join(", ")); - } - if (combineArraysOfObjects && isRecords) { - return transformRecord(Object.assign({}, ...value)); - } - if (stabilizeOrderOfPropertiesInArraysOfObjects && isRecords) { - const stabilize = makeObjectPropertiesStabilizer(); - return transformArray(value as JSONRecord[], (value) => { - const [keys, values] = stabilize(value); - if (keys.length === 0) { - return makeTableFromValue(""); - } - return stackTablesHorizontal(keys, values.map(transformValue)); - }); - } - return transformArray(value, transformValue); - } - return transformRecord(value); - } - return transformValue; -} diff --git a/web/src/lib/json-traverser.ts b/web/src/lib/json-traverser.ts deleted file mode 100644 index 6e9b007..0000000 --- a/web/src/lib/json-traverser.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { isArray, isRecord } from '@/lib/guards' -import type { JSONPrimitiveOrNull, JSONValue } from '@/lib/json' - -export type ResolvedJson = JSONPrimitiveOrNull | Array | Record - -export type JsonVisitor = (value: ResolvedJson, path: string) => R - -export function jsonTraverser( - visitor: JsonVisitor -): (value: JSONValue) => R { - const traverse = (value: JSONValue, path = '#'): R => { - if (isArray(value)) { - return visitor( - value.map((value, i) => traverse(value, `${path}/${i}`)), - path - ) - } - if (isRecord(value)) { - return visitor( - Object.fromEntries( - Object.entries(value).map(([key, value]) => [ - key, - traverse(value, `${path}/${key}`), - ]) - ), - path - ) - } - return visitor(value, path) - } - return traverse -} diff --git a/web/src/lib/json.ts b/web/src/lib/json.ts deleted file mode 100644 index 5362db5..0000000 --- a/web/src/lib/json.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type { CompareResult } from "@/lib/ord"; - -export type JSONPrimitive = string | number | boolean; - -export type JSONPrimitiveOrNull = JSONPrimitive | null; - -export type JSONPrimitiveLiterals = "string" | "number" | "boolean"; - -export type JSONRecord = { [k: string]: JSONValue }; - -export type JSONArray = JSONValue[]; - -export type JSONObject = JSONRecord | JSONArray; - -export type JSONValue = JSONPrimitive | null | JSONObject; - -export const isJsonPrimitive = (value: JSONValue): value is JSONPrimitive => - typeof value !== "object"; - -export const isJsonPrimitiveOrNull = ( - value: JSONValue -): value is JSONPrimitive | null => value === null || typeof value !== "object"; - -const primitiveTypeOrder: Record = { - boolean: 0, - number: 1, - string: 2, -}; - -type CmpRow = [CompareResult, CompareResult, CompareResult]; - -const cmpTable: [CmpRow, CmpRow, CmpRow] = [ - [0, -1, -1], - [1, 0, -1], - [1, 1, 0], -]; - -export function compareSameTypeJsonPrimitive( - a: T, - b: T -): CompareResult { - return a > b ? 1 : a < b ? -1 : 0; -} - -export function compareJsonPrimitive( - a: JSONPrimitive, - b: JSONPrimitive -): CompareResult { - if (a === b) { - return 0; - } - const ta = typeof a as JSONPrimitiveLiterals; - const tb = typeof b as JSONPrimitiveLiterals; - return ta === tb - ? compareSameTypeJsonPrimitive(a, b) - : cmpTable[primitiveTypeOrder[ta]][primitiveTypeOrder[tb]]; -} - -export function compareJsonArray(a: JSONArray, b: JSONArray): CompareResult { - if (a.length < b.length) { - return -1; - } - if (a.length > b.length) { - return 1; - } - const len = a.length; - let i = 0; - while (i < len) { - const result = compareJsonValue(a[i], b[i]); - if (result !== 0) { - return result; - } - i++; - } - return 0; -} - -export function compareJsonRecords( - a: JSONRecord, - b: JSONRecord -): CompareResult { - const aKeys = Object.keys(a); - const bKeys = Object.keys(b); - const result = compareSameTypeJsonPrimitive(aKeys.length, bKeys.length); - if (result !== 0) { - return result; - } - let aMaxMissingKey = ""; - let bMaxMissingKey = ""; - const commonKeys: string[] = []; - for (let i = 0; i < aKeys.length; i++) { - const aKey = aKeys[i]; - if (aKey in b) { - commonKeys.push(aKey); - } else if (aKey > aMaxMissingKey) { - aMaxMissingKey = aKey; - } - const bKey = bKeys[i]; - if (!(bKey in a) && bKey > bMaxMissingKey) { - bMaxMissingKey = bKey; - } - } - const diff = compareSameTypeJsonPrimitive(aMaxMissingKey, bMaxMissingKey); - if (diff !== 0) { - return diff; - } - commonKeys.sort(); - for (let i = 0; i < commonKeys.length; i++) { - const key = commonKeys[i]; - const result = compareJsonValue(a[key], b[key]); - if (result !== 0) { - return result; - } - } - return 0; -} - -export function compareJsonObjects( - a: JSONObject, - b: JSONObject -): CompareResult { - if (Array.isArray(a)) { - return Array.isArray(b) ? compareJsonArray(a, b) : -1; - } - return Array.isArray(b) ? 1 : compareJsonRecords(a, b); -} - -export function compareJsonValue(a: JSONValue, b: JSONValue): CompareResult { - if (a === null) { - if (b === null) { - return 0; - } - return -1; - } - if (b === null) { - return 1; - } - if (isJsonPrimitive(a)) { - return isJsonPrimitive(b) ? compareJsonPrimitive(a, b) : -1; - } - return isJsonPrimitive(b) ? 1 : compareJsonObjects(a, b); -} diff --git a/web/src/lib/math.ts b/web/src/lib/math.ts deleted file mode 100644 index 6c07649..0000000 --- a/web/src/lib/math.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const sum = (a: number, b: number): number => a + b -export const subtract = (a: number, b: number): number => a - b -export const multiply = (a: number, b: number): number => a * b -export const divide = (a: number, b: number): number => a / b - -export const max = (a: number, b: number): number => (a > b ? a : b) -export const min = (a: number, b: number): number => (a < b ? a : b) - -export const gcd = (a: number, b: number): number => (a ? gcd(b % a, a) : b) -export const lcm = (a: number, b: number): number => (a * b) / gcd(a, b) diff --git a/web/src/lib/matrix.ts b/web/src/lib/matrix.ts deleted file mode 100644 index d62714c..0000000 --- a/web/src/lib/matrix.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { array } from '@/lib/array' - -export type Matrix = T[][] - -export function matrix ( - height: number, - width: number, - factory: (rowIndex: number) => R -) { - return array(height, () => array(width, factory)) -} - -export function transpose(matrix: Matrix): Matrix { - return matrix[0].map((_, i) => matrix.map((x) => x[i])) -} - -export function horizontalMirror(matrix: Matrix): Matrix { - return matrix.map((row) => row.slice().reverse()) -} - -export function verticalMirror(matrix: Matrix): Matrix { - return matrix.slice().reverse() -} - -export type TransformCell = ( - value: T, - index: number, - rowIndex: number -) => R - -export function mapCell(transform: TransformCell) { - return (matrix: Matrix): Matrix => - matrix.map((row, i) => row.map((cell, j) => transform(cell, j, i))) -} diff --git a/web/src/lib/object.ts b/web/src/lib/object.ts deleted file mode 100644 index 5acff3e..0000000 --- a/web/src/lib/object.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { type Node, type Tree, insert, traverse } from "@/lib/binary-tree"; - -interface KeyNode extends Node> { - key: string; - val: V; -} - -export function makeObjectPropertiesStabilizer() { - let index = 0; - const order: Record> = {}; - return (obj: Record) => { - const entries = Object.entries(obj); - let tree: Tree> = undefined; - for (const [key, val] of entries) { - const node = (order[key] ??= { - key, - val, - value: index++, - }); - node.val = val; - node.left = undefined - node.right = undefined - tree = insert(tree, node); - } - const keys: string[] = []; - const values: V[] = []; - traverse(tree, (node) => { - keys.push(node.key); - values.push(node.val); - }); - return [keys, values] as const; - }; -} diff --git a/web/src/lib/ord.ts b/web/src/lib/ord.ts deleted file mode 100644 index 1832046..0000000 --- a/web/src/lib/ord.ts +++ /dev/null @@ -1 +0,0 @@ -export type CompareResult = -1 | 0 | 1 diff --git a/web/tsconfig.json b/web/tsconfig.json deleted file mode 100644 index eaedcd3..0000000 --- a/web/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "@tsconfig/svelte/tsconfig.json", - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "module": "ESNext", - "resolveJsonModule": true, - /** - * Typecheck JS in `.svelte` and `.js` files by default. - * Disable checkJs if you'd like to use dynamic types in JS. - * Note that setting allowJs false does not prevent the use - * of JS in `.svelte` files. - */ - "allowJs": true, - "checkJs": true, - "isolatedModules": true, - "moduleDetection": "force", - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/web/tsconfig.node.json b/web/tsconfig.node.json deleted file mode 100644 index 408b690..0000000 --- a/web/tsconfig.node.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "Bundler", - "strict": true, - "noEmit": true, - "noUncheckedSideEffectImports": true - }, - "include": ["vite.config.ts"] -} From a01205e783703531f50acc63acb3d2bfe773b6da Mon Sep 17 00:00:00 2001 From: Krasilnikov Roman Date: Sat, 26 Oct 2024 20:18:55 +0300 Subject: [PATCH 4/4] Add docs app --- .gitignore | 2 + README.md | 2 +- apps/docs/.gitignore | 21 + apps/docs/README.md | 1 + apps/docs/astro.config.mjs | 42 + apps/docs/package.json | 22 + apps/docs/public/favicon.svg | 1 + apps/docs/src/astor.svelte.ts | 55 + apps/docs/src/components/custom-head.astro | 11 + .../src/components/header-with-links.astro | 102 + apps/docs/src/components/npm.astro | 7 + apps/docs/src/components/shadow/index.ts | 1 + .../src/components/shadow/shadow-host.svelte | 32 + .../src/components/shadow/shadow-root.svelte | 7 + apps/docs/src/content/config.ts | 6 + apps/docs/src/content/docs/index.mdx | 86 + apps/docs/src/env.d.ts | 2 + apps/docs/src/i18n.ts | 1 + apps/docs/svelte.config.js | 10 + apps/docs/tsconfig.json | 18 + apps/web/package.json | 2 +- apps/web/src/app-worker/html.ts | 2 +- apps/web/src/main-page.svelte | 16 +- mkfilex | 20 + package.json | 5 + packages/block-to-xlsx/tsconfig.tsbuildinfo | 1 - packages/core/tsconfig.tsbuildinfo | 1 - pnpm-lock.yaml | 3941 ++++++++++++++++- 28 files changed, 4382 insertions(+), 35 deletions(-) create mode 100644 apps/docs/.gitignore create mode 100644 apps/docs/README.md create mode 100644 apps/docs/astro.config.mjs create mode 100644 apps/docs/package.json create mode 100644 apps/docs/public/favicon.svg create mode 100644 apps/docs/src/astor.svelte.ts create mode 100644 apps/docs/src/components/custom-head.astro create mode 100644 apps/docs/src/components/header-with-links.astro create mode 100644 apps/docs/src/components/npm.astro create mode 100644 apps/docs/src/components/shadow/index.ts create mode 100644 apps/docs/src/components/shadow/shadow-host.svelte create mode 100644 apps/docs/src/components/shadow/shadow-root.svelte create mode 100644 apps/docs/src/content/config.ts create mode 100644 apps/docs/src/content/docs/index.mdx create mode 100644 apps/docs/src/env.d.ts create mode 100644 apps/docs/src/i18n.ts create mode 100644 apps/docs/svelte.config.js create mode 100644 apps/docs/tsconfig.json delete mode 100644 packages/block-to-xlsx/tsconfig.tsbuildinfo delete mode 100644 packages/core/tsconfig.tsbuildinfo diff --git a/.gitignore b/.gitignore index 1be3199..b9a95ab 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ node_modules .turbo + +*.tsbuildinfo diff --git a/README.md b/README.md index 16394c8..ccd76e2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # JSON Table -Set of tools for converting JSON data to table (HTML, XLSX, ASCII). +Set of tools for converting JSON data into tables (HTML, XLSX, ASCII). - [Web App](https://x0k.github.io/json-table/) - [Documentation](https://x0k.github.io/json-table/docs/) diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore new file mode 100644 index 0000000..6240da8 --- /dev/null +++ b/apps/docs/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 0000000..d0fa60e --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1 @@ +# Docs diff --git a/apps/docs/astro.config.mjs b/apps/docs/astro.config.mjs new file mode 100644 index 0000000..ec13a67 --- /dev/null +++ b/apps/docs/astro.config.mjs @@ -0,0 +1,42 @@ +// @ts-check +import { fileURLToPath } from 'node:url' +import { defineConfig } from "astro/config"; +import starlight from "@astrojs/starlight"; +import svelte from "@astrojs/svelte"; + +// https://astro.build/config +export default defineConfig({ + site: "https://x0k.github.io", + base: "/json-table/docs/", + trailingSlash: "always", + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + integrations: [ + svelte(), + starlight({ + title: "JSON Table", + social: { + github: "https://github.com/x0k/json-table", + }, + sidebar: [ + // { + // label: "Guides", + // autogenerate: { directory: "guides" }, + // }, + ], + components: { + Head: "./src/components/custom-head.astro", + Header: "./src/components/header-with-links.astro", + }, + }), + ], + vite: { + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, + }, +}); diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 0000000..7d1d870 --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,22 @@ +{ + "name": "docs", + "private": true, + "type": "module", + "version": "0.0.0", + "scripts": { + "dev": "astro dev", + "build": " astro build", + "preview": "astro preview", + "check": "astro check" + }, + "devDependencies": { + "@astrojs/check": "^0.9.4", + "@astrojs/starlight": "^0.28.3", + "@astrojs/svelte": "^5.7.2", + "astro": "^4.16.6", + "astro-vtbot": "^1.10.3", + "sharp": "^0.33.5", + "starlight-package-managers": "^0.7.0", + "svelte": "^5.1.0" + } +} diff --git a/apps/docs/public/favicon.svg b/apps/docs/public/favicon.svg new file mode 100644 index 0000000..cba5ac1 --- /dev/null +++ b/apps/docs/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/docs/src/astor.svelte.ts b/apps/docs/src/astor.svelte.ts new file mode 100644 index 0000000..c4c86fe --- /dev/null +++ b/apps/docs/src/astor.svelte.ts @@ -0,0 +1,55 @@ +type DarkOrLight = "light" | "dark"; +type Theme = "auto" | DarkOrLight; + +const STORAGE_KEY = "starlight-theme"; + +const parseTheme = (theme: unknown): Theme => + theme === "auto" || theme === "dark" || theme === "light" ? theme : "auto"; + +const loadTheme = (): Theme => + parseTheme( + typeof localStorage !== "undefined" && localStorage.getItem(STORAGE_KEY) + ); + +const getPreferredColorScheme = (): DarkOrLight => + matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark"; + +export function theme() { + let theme = $state(loadTheme()); + + $effect(() => { + const starlightThemeSelect = document + .getElementsByTagName("starlight-theme-select") + .item(0); + if (starlightThemeSelect === null) { + return; + } + const themeSelect = starlightThemeSelect + .getElementsByTagName("select") + .item(0); + if (themeSelect === null) { + return; + } + const updateTheme = (e: Event) => { + if (!(e.currentTarget instanceof HTMLSelectElement)) { + return; + } + theme = parseTheme(e.currentTarget.value); + }; + themeSelect.addEventListener("change", updateTheme); + return () => themeSelect.removeEventListener("change", updateTheme); + }); + + const darkOrLight = $derived( + theme === "auto" ? getPreferredColorScheme() : theme + ); + + return { + get theme() { + return theme; + }, + get darkOrLight() { + return darkOrLight; + }, + }; +} diff --git a/apps/docs/src/components/custom-head.astro b/apps/docs/src/components/custom-head.astro new file mode 100644 index 0000000..b6e70f2 --- /dev/null +++ b/apps/docs/src/components/custom-head.astro @@ -0,0 +1,11 @@ +--- +import type { Props } from "@astrojs/starlight/props"; +import StarlightHead from "@astrojs/starlight/components/Head.astro"; +import VtbotStarlight from "astro-vtbot/components/starlight/Base.astro"; +import PageOffset from "astro-vtbot/components/PageOffset.astro"; +--- + + + + + diff --git a/apps/docs/src/components/header-with-links.astro b/apps/docs/src/components/header-with-links.astro new file mode 100644 index 0000000..4efd579 --- /dev/null +++ b/apps/docs/src/components/header-with-links.astro @@ -0,0 +1,102 @@ +--- +import type { ComponentProps } from 'astro/types'; +import config from 'virtual:starlight/user-config'; +import { LinkButton } from '@astrojs/starlight/components' +import { getAbsoluteLocaleUrl } from 'astro:i18n' + +import Header from '@astrojs/starlight/components/Header.astro'; +import LanguageSelect from '@astrojs/starlight/components/LanguageSelect.astro'; +import Search from '@astrojs/starlight/components/Search.astro'; +import SiteTitle from '@astrojs/starlight/components/SiteTitle.astro'; +import SocialIcons from '@astrojs/starlight/components/SocialIcons.astro'; +import ThemeSelect from '@astrojs/starlight/components/ThemeSelect.astro'; + +import { DEFAULT_LOCALE } from '@/i18n'; + +export type Props = ComponentProps +/** + * Render the `Search` component if Pagefind is enabled or the default search component has been overridden. + */ +const shouldRenderSearch = + config.pagefind || config.components.Search !== '@astrojs/starlight/components/Search.astro'; +--- + +
+
+ +
+
+ {shouldRenderSearch && } +
+
+ + Web App + + + + +
+
+ + diff --git a/apps/docs/src/components/npm.astro b/apps/docs/src/components/npm.astro new file mode 100644 index 0000000..7c922e3 --- /dev/null +++ b/apps/docs/src/components/npm.astro @@ -0,0 +1,7 @@ +--- +import { PackageManagers, type PackageManagersProps } from 'starlight-package-managers' + +export type Props = PackageManagersProps +--- + + diff --git a/apps/docs/src/components/shadow/index.ts b/apps/docs/src/components/shadow/index.ts new file mode 100644 index 0000000..e61b148 --- /dev/null +++ b/apps/docs/src/components/shadow/index.ts @@ -0,0 +1 @@ +export { default as ShadowHost } from './shadow-host.svelte' diff --git a/apps/docs/src/components/shadow/shadow-host.svelte b/apps/docs/src/components/shadow/shadow-host.svelte new file mode 100644 index 0000000..61d0d7e --- /dev/null +++ b/apps/docs/src/components/shadow/shadow-host.svelte @@ -0,0 +1,32 @@ + + +
diff --git a/apps/docs/src/components/shadow/shadow-root.svelte b/apps/docs/src/components/shadow/shadow-root.svelte new file mode 100644 index 0000000..e8ca45c --- /dev/null +++ b/apps/docs/src/components/shadow/shadow-root.svelte @@ -0,0 +1,7 @@ + + +{@render children?.()} diff --git a/apps/docs/src/content/config.ts b/apps/docs/src/content/config.ts new file mode 100644 index 0000000..45f60b0 --- /dev/null +++ b/apps/docs/src/content/config.ts @@ -0,0 +1,6 @@ +import { defineCollection } from 'astro:content'; +import { docsSchema } from '@astrojs/starlight/schema'; + +export const collections = { + docs: defineCollection({ schema: docsSchema() }), +}; diff --git a/apps/docs/src/content/docs/index.mdx b/apps/docs/src/content/docs/index.mdx new file mode 100644 index 0000000..c41ed1b --- /dev/null +++ b/apps/docs/src/content/docs/index.mdx @@ -0,0 +1,86 @@ +--- +title: JSON Table +# description: Main page +template: splash +hero: + tagline: Set of tools for converting JSON data into tables (HTML, XLSX, ASCII). + actions: + # - text: Get Started + # link: guides/quickstart/ + # icon: right-arrow + - text: Web App + link: https://x0k.github.io/json-table/ + icon: external + # variant: minimal + - text: View on GitHub + link: https://github.com/x0k/json-table/ + icon: external + variant: minimal +--- + +import { Code, Card, CardGrid, LinkCard } from '@astrojs/starlight/components'; + +import Npm from '@/components/npm.astro'; + +## Installation + + + +## Usage + +```typescript +import { makeTableInPlaceBaker, makeTableFactory } from "@json-table/core/json-to-table"; +import { blockToASCII } from "@json-table/core/block-to-ascii"; + +const cornerCellValue = "№"; +const factory = makeTableFactory({ cornerCellValue }); +const bake = makeTableInPlaceBaker({ cornerCellValue, head: true, indexes: true }); +const asciiTable = blockToASCII(bake(factory(data))); +``` + +Input data: + +```json +{ + "key": "val", + "primitiveArr": [1, "two", false], + "object": { + "key1": "value1", + "key2": 789, + "key3": { + "nestedKey": "nestedVal" + } + }, + "nestedArray": [ + { + "name": "John", + "age": 30, + "isStud": false + }, + { + "name": "Alice", + "age": 25, + "isStud": true + } + ] +} + +``` + +Output: + +``` ++-----+---------------+---------------------------+--------------------------+ +| key | primitiveArr | object | nestedArray | ++-----+---------------+--------+------+-----------+---+-------+-----+--------+ +| | | key1 | key2 | key3 | № | name | age | isStud | +| | +--------+------+-----------+---+-------+-----+--------+ +| val | 1, two, false | | | nestedKey | 1 | John | 30 | false | +| | | value1 | 789 +-----------+---+-------+-----+--------+ +| | | | | nestedVal | 2 | Alice | 25 | true | ++-----+---------------+--------+------+-----------+---+-------+-----+--------+ +``` + +## License + +MIT diff --git a/apps/docs/src/env.d.ts b/apps/docs/src/env.d.ts new file mode 100644 index 0000000..acef35f --- /dev/null +++ b/apps/docs/src/env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/apps/docs/src/i18n.ts b/apps/docs/src/i18n.ts new file mode 100644 index 0000000..d3fcea9 --- /dev/null +++ b/apps/docs/src/i18n.ts @@ -0,0 +1 @@ +export const DEFAULT_LOCALE = "en"; diff --git a/apps/docs/svelte.config.js b/apps/docs/svelte.config.js new file mode 100644 index 0000000..e595587 --- /dev/null +++ b/apps/docs/svelte.config.js @@ -0,0 +1,10 @@ +import { vitePreprocess } from "@astrojs/svelte"; + +export default { + // Consult https://svelte.dev/docs#compile-time-svelte-preprocess + // for more information about preprocessors + preprocess: vitePreprocess(), + compilerOptions: { + // runes: true, + }, +}; diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json new file mode 100644 index 0000000..7f6b00f --- /dev/null +++ b/apps/docs/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": [ + "src/*" + ] + } + }, + "include": [ + ".astro/types.d.ts", + "**/*" + ], + "exclude": [ + "dist" + ] +} \ No newline at end of file diff --git a/apps/web/package.json b/apps/web/package.json index 991aaac..0c93a9d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -7,7 +7,7 @@ "dev": "vite", "build": "vite build", "preview": "vite preview", - "check": "svelte-check --tsconfig ./tsconfig.json && tsc -p tsconfig.node.json" + "check": "svelte-check --tsconfig ./tsconfig.json && tsc -p tsconfig.json" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^4.0.0", diff --git a/apps/web/src/app-worker/html.ts b/apps/web/src/app-worker/html.ts index ea86f9f..9ea956e 100644 --- a/apps/web/src/app-worker/html.ts +++ b/apps/web/src/app-worker/html.ts @@ -30,5 +30,5 @@ export function makeHTMLPageContent(tables: Entry[]) { ? tables .map(([title, table]) => `

${title}

${blockToHTML(table)}`) .join("
") - : blockToHTML(tables[0][1]); + : blockToHTML(tables[0]![1]); } diff --git a/apps/web/src/main-page.svelte b/apps/web/src/main-page.svelte index 0a66ac2..2bbc8a0 100644 --- a/apps/web/src/main-page.svelte +++ b/apps/web/src/main-page.svelte @@ -97,17 +97,27 @@ {#snippet append()} - + + + + + - + {/snippet}

Source type:

diff --git a/mkfilex b/mkfilex index 993435b..488362f 100644 --- a/mkfilex +++ b/mkfilex @@ -9,6 +9,26 @@ b: d: pnpm run dev +docs/: + pushd apps/docs + d: + pnpm run dev + c: + pnpm run check + b: + pnpm run build + popd + +app/: + pushd apps/web + d: + pnpm run dev + c: + pnpm run check + b: + pnpm run build + popd + w/: pushd web d: diff --git a/package.json b/package.json index 7e163d3..662c25a 100644 --- a/package.json +++ b/package.json @@ -26,5 +26,10 @@ "publint": "^0.2.12", "turbo": "^2.2.3", "typescript": "~5.6.2" + }, + "pnpm": { + "overrides": { + "@sveltejs/vite-plugin-svelte": "^4.0.0" + } } } diff --git a/packages/block-to-xlsx/tsconfig.tsbuildinfo b/packages/block-to-xlsx/tsconfig.tsbuildinfo deleted file mode 100644 index 0b16170..0000000 --- a/packages/block-to-xlsx/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/index.d.ts","../core/dist/lib/matrix.d.ts","../core/dist/lib/array.d.ts","../core/dist/lib/math.d.ts","../core/dist/lib/ord.d.ts","../core/dist/lib/json.d.ts","../core/dist/json-table.d.ts","../core/dist/block-matrix.d.ts","./src/block-to-xlsx.ts"],"fileIdsList":[[60,61,62,63,65,66,67],[61,66],[65],[64]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"d10d70b4fe21847c61cb0ab72b60162d2cc23ef64e5606822d110cce2dbc9dd8","impliedFormat":1},{"version":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"3194fff6fdf275fb301cc1617e96e6cf6c67aa42dd90f1c7b730afa468a9b20b","signature":"7a06070c01747c08732bbb22022b5c940cb21ef20e6f3cdbe3a0532e88ad3014","impliedFormat":99}],"root":[68],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[68,1],[67,2],[66,3],[65,4]],"latestChangedDtsFile":"./dist/block-to-xlsx.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/packages/core/tsconfig.tsbuildinfo b/packages/core/tsconfig.tsbuildinfo deleted file mode 100644 index e002f05..0000000 --- a/packages/core/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"fileNames":["../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/lib/array.ts","./src/lib/matrix.ts","./src/lib/ord.ts","./src/lib/json.ts","./src/json-table.ts","./src/block/row.ts","./src/lib/math.ts","./src/block/block.ts","./src/block/index.ts","./src/block-matrix.ts","./src/lib/html.ts","./src/block-to-html.ts","./src/ascii-to-block/model.ts","./src/ascii-to-block/ascii-to-block.ts","./src/ascii-to-block/index.ts","./src/block-to-ascii/block-to-ascii.ts","./src/block-to-ascii/index.ts","./src/json-to-table/table.ts","./src/lib/object.ts","./src/lib/binary-tree.ts","./src/json-to-table/properties-stabilizer.ts","./src/json-to-table/proportional-resize-guard.ts","./src/json-to-table/json-to-table.ts","./src/json-to-table/index.ts","./src/lib/guards.ts"],"fileIdsList":[[60,61,64,69,72],[72,73],[61],[60,61,64,68],[60,61,64,69],[75],[64,70],[60,64,65,66],[65,67],[64],[63],[77,82],[60,63,64,68,77,78,80,81],[79],[64,66,68],[62],[60]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"781fd81c0b6628bf5ce246e8c2b3a57c0cf31b3599c2e28b13c79aace631a7b2","signature":"e3f8b7b1c05b3c32c4ec9bdd3710c56daf59b41a5eb9ca7cd2ec3c1d6314806c","impliedFormat":99},{"version":"c297e744c56645f4a222abfcaaad2d513e185abb02e881fd925b0e581361a40a","signature":"89a41a24b257474d16ed605481b4de909e3e94ed0032e915a486051663d4d8eb","impliedFormat":99},{"version":"6da5919720c475028df76e9556db0a0affb724ffc4c9bbe743a7550f8f18d394","signature":"6db3e7c9506cddb6400dac547a10157dbe88eb8eee9f0c7bdca63598109dd64f","impliedFormat":99},{"version":"83b58e892474a47ba3bf60157e8f8ef2dd80a6ca8932e4f7b1fec6de769fda6c","signature":"68c74fc588c9e76a543d5388f2cab0957d5d3da14e6ed3106b42cf40610b978f","impliedFormat":99},{"version":"c808e51ad06744ba348e1f388d2b39c2348ef7d34e62ee458794d028890ab3e5","signature":"6c2e86842a95e48b418794f3cd0e4d1502ff111e0323c14330520ab5f40d2573","impliedFormat":99},{"version":"36fc71e80c15d163aac49f4257dfdd5f9482c6bb24c960477f8f838d82d841e4","signature":"628c1950f013ce044e7346e16e63a79d17984bb230dc4c961e9c5772febea4f7","impliedFormat":99},{"version":"26817234f98bb05b56b64b3d84fc499dec8fb65724d49620389aa168ad4f748c","signature":"228fd20fb0556b50cb00c98f1f19efe24008487dd3fa1db23f60e03f00ad3b31","impliedFormat":99},{"version":"9416239efcdfcd7896eb0cea03842dcca802b05cfdeb4a70d70e6791976f49f6","signature":"a58baf5dad04db9f0761399a673924e5c5212655bed5a941286958c1b8bb041a","impliedFormat":99},{"version":"26581bc55dc9f49a2b38664b513b95b10976a277df45517c42ab8ae708181bbe","impliedFormat":99},{"version":"5fd96eacdd040ffa9c44397af26ef2c5bd3c72b380e00741642d7a0e7c9838d8","signature":"3cf808d3e899dc0bfcc5c9f0c415a31d92138dc8915abb93cd1d3439cab6ecdb","impliedFormat":99},{"version":"3af5466687af9a674b9e6637bd9fb423a8b38549ed1fe7e21109df75ca464bdd","signature":"190c477edfa9b400d2f8fdd71e95c2330820a160ef77722dee58e5c44cf3f4f8","impliedFormat":99},{"version":"d65ca174e75667ef3325baa3f094d04fe065b42b969c0e5add54bac2996f3d03","signature":"eac05d199e4a24c87814c27120cb7ae9680ff0e242331b13086c80ced0655b52","impliedFormat":99},{"version":"746326ee9146b9b804ef55e699f6782b0302e62839f60d6c9d550e10629d172b","signature":"bd75eb59b9dcf0ffde6277970370642cb4efd0424d4f71df2a2d4d84fc7d826c","impliedFormat":99},{"version":"652f5424eb8280d175340926cc3dafb328ab13e90d30266948c0442b18300aa3","signature":"6a2f591a86648b21054f92a41f020bbcf1606f8cd7d8a530cb4968471872fef1","impliedFormat":99},{"version":"a97c7416f4f20c2826e142455d8d1a3e6818b45c9ed9e21512381f24185659d3","signature":"6842b2fe99736bd3bdc6635bdccf0a0684d9bb9fc7a00e930bcbf7bae90e8306","impliedFormat":99},{"version":"196eaebec8184d707a8da4b8b693cf858ca5c571066e8e210c68da0def0d9c3d","signature":"121555fd7f3f5d1e2704115d03532c4151100c7633421c3aa6c83349bfec16b6","impliedFormat":99},{"version":"2994cf5ef22986f35179ab17883ab77b80a7fc9816c6439246f97f948443f98d","signature":"f917b950d4ee512747703a6a43e1f95c061b5cd082f53d6625b87e2f68a6cf01","impliedFormat":99},{"version":"ef7a61a668c8573ca636e6b146308316ca8bf6374c3aa0f64ab9d4cab66c052e","signature":"8d0f404138d3dcd60c38181cf4512feaa67e4b192daa750a55d1e0ae7b1e5030","impliedFormat":99},{"version":"ee302a2474169e130a3c8be45c042681dd1386b5d004f45124637e114f66affa","signature":"f303a34d688ba59fbe48e2b50f32dfa740206a3ab0cab81fe918b2439a5d6acb","impliedFormat":99},{"version":"daf3dd32f208b9fd98f589c263a761d8e69c39b79d01f2a35668f113bf999ee8","signature":"1fafd973f5ae9aa82fd700f6b251a5a482582295846cf66ac7fe02748261934f","impliedFormat":99},{"version":"ac4aad8e54ddecd4039ba162b6ecf80efacb88aa757f8495030d8dda0e1b8461","signature":"405959e3ca3f0609b8930c8746d236dd80c2fd0b173f9dae8e28d83780e5f386","impliedFormat":99},{"version":"a03b5cb98799e9a0e718a82c0136d0234c4ab292a8ab9cc9c383129652d09f1b","signature":"6429f98455a68db1b0bbcd4301e78ec28f911dbb8a6c3721a0bfc980703e28ba","impliedFormat":99},{"version":"24223bf90971e6b5398a1460831d87982a2bfa8e79af773982fdd8886bf28700","signature":"58fd9e4e2871438529589e2f43d7cc41bb266a2a7373840e3e6c12dd621c0685","impliedFormat":99},{"version":"028404b0312286966b397600a9b7070018a6999b80fe321ab4342509b9b7bf63","impliedFormat":99},{"version":"4d43e2b4c74c4784cadbf6ecddebe069449ebf28968809b283597356f94603f1","signature":"bf40594054da33db233e09351919b755710dc643e541a1502ebb5b64e016288a","impliedFormat":99}],"root":[[60,84]],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[73,1],[74,2],[72,3],[69,4],[75,5],[76,6],[71,7],[67,8],[68,9],[65,10],[64,11],[83,12],[82,13],[80,14],[81,10],[77,15],[63,16],[61,17]],"latestChangedDtsFile":"./dist/lib/guards.d.ts","version":"5.6.3"} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a3ab40..5124d27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,9 @@ catalogs: specifier: ^2.1.3 version: 2.1.3 +overrides: + '@sveltejs/vite-plugin-svelte': ^4.0.0 + importers: .: @@ -39,6 +42,33 @@ importers: specifier: ~5.6.2 version: 5.6.3 + apps/docs: + devDependencies: + '@astrojs/check': + specifier: ^0.9.4 + version: 0.9.4(typescript@5.6.3) + '@astrojs/starlight': + specifier: ^0.28.3 + version: 0.28.3(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)) + '@astrojs/svelte': + specifier: ^5.7.2 + version: 5.7.2(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3))(svelte@5.1.3)(typescript@5.6.3)(vite@5.4.10) + astro: + specifier: ^4.16.6 + version: 4.16.7(rollup@4.24.0)(typescript@5.6.3) + astro-vtbot: + specifier: ^1.10.3 + version: 1.10.5 + sharp: + specifier: ^0.33.5 + version: 0.33.5 + starlight-package-managers: + specifier: ^0.7.0 + version: 0.7.0(@astrojs/starlight@0.28.3(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)))(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)) + svelte: + specifier: ^5.1.0 + version: 5.1.3 + apps/web: dependencies: '@json-table/block-to-xlsx': @@ -89,7 +119,7 @@ importers: version: 5.1.3 svelte-check: specifier: ^4.0.5 - version: 4.0.5(svelte@5.1.3)(typescript@5.6.3) + version: 4.0.5(picomatch@4.0.2)(svelte@5.1.3)(typescript@5.6.3) tailwindcss: specifier: ^3.4.14 version: 3.4.14 @@ -129,10 +159,153 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@astrojs/check@0.9.4': + resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + '@astrojs/compiler@2.10.3': + resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} + + '@astrojs/internal-helpers@0.4.1': + resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + + '@astrojs/language-server@2.15.4': + resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + + '@astrojs/markdown-remark@5.3.0': + resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} + + '@astrojs/mdx@3.1.8': + resolution: {integrity: sha512-4o/+pvgoLFG0eG96cFs4t3NzZAIAOYu57fKAprWHXJrnq/qdBV0av6BYDjoESxvxNILUYoj8sdZVWtlPWVDLog==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + astro: ^4.8.0 + + '@astrojs/prism@3.1.0': + resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + + '@astrojs/sitemap@3.2.1': + resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} + + '@astrojs/starlight@0.28.3': + resolution: {integrity: sha512-GXXIPKSu5d50mLVtgI4jf6pb3FPQm8n4MI6ZXuQQqqnA0xg7PJQ76WFSVyrICeqM5fKABSqcBksp/glyEJes/A==} + peerDependencies: + astro: ^4.14.0 + + '@astrojs/svelte@5.7.2': + resolution: {integrity: sha512-d3nfPe7OMoDqdw7SXfvYlyCSB4p84p92IIvEsu5E1jDPFbS1mlC76hjAlr0nJHQfV1MZPWifEmmfgDBWLCuS8g==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + astro: ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.190 + typescript: ^5.3.3 + + '@astrojs/telemetry@3.1.0': + resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + + '@astrojs/yaml2ts@0.2.2': + resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} + + '@babel/code-frame@7.26.0': + resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.0': + resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.0': + resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.1': + resolution: {integrity: sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/runtime@7.26.0': resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + '@changesets/apply-release-plan@7.0.5': resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} @@ -194,6 +367,34 @@ packages: '@changesets/write@0.3.2': resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + '@ctrl/tinycolor@4.1.0': + resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} + engines: {node: '>=14'} + + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -332,12 +533,129 @@ packages: cpu: [x64] os: [win32] + '@expressive-code/core@0.35.6': + resolution: {integrity: sha512-xGqCkmfkgT7lr/rvmfnYdDSeTdCSp1otAHgoFS6wNEeO7wGDPpxdosVqYiIcQ8CfWUABh/pGqWG90q+MV3824A==} + + '@expressive-code/plugin-frames@0.35.6': + resolution: {integrity: sha512-CqjSWjDJ3wabMJZfL9ZAzH5UAGKg7KWsf1TBzr4xvUbZvWoBtLA/TboBML0U1Ls8h/4TRCIvR4VEb8dv5+QG3w==} + + '@expressive-code/plugin-shiki@0.35.6': + resolution: {integrity: sha512-xm+hzi9BsmhkDUGuyAWIydOAWer7Cs9cj8FM0t4HXaQ+qCubprT6wJZSKUxuvFJIUsIOqk1xXFaJzGJGnWtKMg==} + + '@expressive-code/plugin-text-markers@0.35.6': + resolution: {integrity: sha512-/k9eWVZSCs+uEKHR++22Uu6eIbHWEciVHbIuD8frT8DlqTtHYaaiwHPncO6KFWnGDz5i/gL7oyl6XmOi/E6GVg==} + '@fast-csv/format@4.3.5': resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==} '@fast-csv/parse@4.3.6': resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -366,6 +684,9 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@mdx-js/mdx@3.1.0': + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -378,10 +699,50 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@pagefind/darwin-arm64@1.1.1': + resolution: {integrity: sha512-tZ9tysUmQpFs2EqWG2+E1gc+opDAhSyZSsgKmFzhnWfkK02YHZhvL5XJXEZDqYy3s1FAKhwjTg8XDxneuBlDZQ==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.1.1': + resolution: {integrity: sha512-ChohLQ39dLwaxQv0jIQB/SavP3TM5K5ENfDTqIdzLkmfs3+JlzSDyQKcJFjTHYcCzQOZVeieeGq8PdqvLJxJxQ==} + cpu: [x64] + os: [darwin] + + '@pagefind/default-ui@1.1.1': + resolution: {integrity: sha512-ZM0zDatWDnac/VGHhQCiM7UgA4ca8jpjA+VfuTJyHJBaxGqZMQnm4WoTz9E0KFcue1Bh9kxpu7uWFZfwpZZk0A==} + + '@pagefind/linux-arm64@1.1.1': + resolution: {integrity: sha512-H5P6wDoCoAbdsWp0Zx0DxnLUrwTGWGLu/VI1rcN2CyFdY2EGSvPQsbGBMrseKRNuIrJDFtxHHHyjZ7UbzaM9EA==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.1.1': + resolution: {integrity: sha512-yJs7tTYbL2MI3HT+ngs9E1BfUbY9M4/YzA0yEM5xBo4Xl8Yu8Qg2xZTOQ1/F6gwvMrjCUFo8EoACs6LRDhtMrQ==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-x64@1.1.1': + resolution: {integrity: sha512-b7/qPqgIl+lMzkQ8fJt51SfguB396xbIIR+VZ3YrL2tLuyifDJ1wL5mEm+ddmHxJ2Fki340paPcDan9en5OmAw==} + cpu: [x64] + os: [win32] + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.24.0': resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] @@ -462,6 +823,21 @@ packages: cpu: [x64] os: [win32] + '@shikijs/core@1.22.1': + resolution: {integrity: sha512-bqAhT/Ri5ixV4oYsvJNH8UJjpjbINWlWyXY6tBTsP4OmD6XnFv43nRJ+lTdxd2rmG5pgam/x+zGR6kLRXrpEKA==} + + '@shikijs/engine-javascript@1.22.1': + resolution: {integrity: sha512-540pyoy0LWe4jj2BVbgELwOFu1uFvRI7lg4hdsExrSXA9x7gqfzZ/Nnh4RfX86aDAgJ647gx4TCmRwACbnQSvw==} + + '@shikijs/engine-oniguruma@1.22.1': + resolution: {integrity: sha512-L+1Vmd+a2kk8HtogUFymQS6BjUfJnzcWoUp1BUgxoDiklbKSMvrsMuLZGevTOP1m0rEjgnC5MsDmsr8lX1lC+Q==} + + '@shikijs/types@1.22.1': + resolution: {integrity: sha512-+45f8mu/Hxqs6Kyhfm98Nld5n7Q7lwhjU8UtdQwrOPs7BnM4VAb929O3IQ2ce+4D7SlNFlZGd8CnKRSnwbQreQ==} + + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@sjsf/ajv8-validator@1.1.2': resolution: {integrity: sha512-4OQsSDNz3+6qGe7D2R0vwfsbIE6CE6/f4C01NBouPilwDpd+l50ZxFZd0sTcAkTh2KYcFIlcjIw4HNV/cVYwYg==} peerDependencies: @@ -484,7 +860,7 @@ packages: resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} peerDependencies: - '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 + '@sveltejs/vite-plugin-svelte': ^4.0.0 svelte: ^5.0.0-next.96 || ^5.0.0 vite: ^5.0.0 @@ -501,15 +877,69 @@ packages: '@tsconfig/svelte@5.0.4': resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==} + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} '@types/node@14.18.63': resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@vitest/expect@2.1.3': resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} @@ -540,6 +970,49 @@ packages: '@vitest/utils@2.1.3': resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} + '@volar/kit@2.4.8': + resolution: {integrity: sha512-HY+HTP9sSqj0St9j1N8l85YMu4w0GxCtelzkzZWuq2GVz0+QRYwlyc0mPH7749OknUAdtsdozBR5Ecez55Ncug==} + peerDependencies: + typescript: '*' + + '@volar/language-core@2.4.8': + resolution: {integrity: sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==} + + '@volar/language-server@2.4.8': + resolution: {integrity: sha512-3Jd9Y+0Zhwi/zfdRxqoNrm7AxP6lgTsw4Ni9r6eCyWYGVsTnpVwGmlcbiZyDja6anoKZxnaeDatX1jkaHHWaRQ==} + + '@volar/language-service@2.4.8': + resolution: {integrity: sha512-9y8X4cdUxXmy4s5HoB8jmOpDIZG7XVFu4iEFvouhZlJX2leCq0pbq5h7dhA+O8My0fne3vtE6cJ4t9nc+8UBZw==} + + '@volar/source-map@2.4.8': + resolution: {integrity: sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==} + + '@volar/typescript@2.4.8': + resolution: {integrity: sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==} + + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@vtbag/cam-shaft@1.0.1': + resolution: {integrity: sha512-9lSaxaT4sLX6mvcf4ixGgvT3EuUQAVCF7oSZcoj0tLRBdDM0W7ABZwvjqT37zX2omWaqDWavddmVuK6hu1DZnQ==} + + '@vtbag/element-crossing@1.0.2': + resolution: {integrity: sha512-2nTgDd2gvuwn4mouoXIaYwzB3pXySXAd/7842um/qmQYBLwns7nqHCc0d99Wgoi28KeYgQuWMP4ZR5vMqHz5ww==} + + '@vtbag/inspection-chamber@1.0.17': + resolution: {integrity: sha512-MDtO+qNtd4AkxjkJpQD3N2YhMQUaEdSkdArwk7Cy/81iMbOXhZek6cRQu06jn6JnrRv4andtb1oHtl5rYuNSSQ==} + + '@vtbag/turn-signal@1.1.0': + resolution: {integrity: sha512-2WoBbs3v7hWxu6BXvWab4G8MJIFr21vEcJ5Y4mhXlYifVzHLSf5M+aHxEEk62DMOeVmjHwqt8DK47GYnFrEqmg==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-typescript@1.4.13: resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} peerDependencies: @@ -553,6 +1026,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -598,10 +1074,16 @@ packages: argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -610,6 +1092,23 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + astro-expressive-code@0.35.6: + resolution: {integrity: sha512-1U4KrvFuodaCV3z4I1bIR16SdhQlPkolGsYTtiANxPZUVv/KitGSCTjzksrkPonn1XuwVqvnwmUUVzTLWngnBA==} + peerDependencies: + astro: ^4.0.0-beta || ^3.3.0 + + astro-vtbot@1.10.5: + resolution: {integrity: sha512-1w5gviyjDn2bh8FGoK0bnULemLkQzkB4MzWUeUxs67u2ZfHaqc+R8O66ztjgSulr334N5RpRmuW11z6ciW+v2g==} + + astro@4.16.7: + resolution: {integrity: sha512-nON+8MUEkWTFwXbS4zsQIq4t0Fs42eulM4x236AL+qNnWfqNAOOqAnFxO1dxfJ1q+XopIBbbT9Mtev+0zH47PQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -624,12 +1123,24 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + + bcp-47@2.1.0: + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} + better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -651,6 +1162,13 @@ packages: bluebird@3.4.7: resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -691,9 +1209,16 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + caniuse-lite@1.0.30001671: resolution: {integrity: sha512-jocyVaSSfXg2faluE6hrWkMgDOiULBMca4QLtDT39hw1YxaIPHWc1CcTCKkPmHgGH6tKji6ZNbMSmUAvENf2/A==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@5.1.2: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} @@ -701,6 +1226,22 @@ packages: chainsaw@0.1.0: resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -720,6 +1261,33 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -727,10 +1295,23 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + compress-commons@4.1.2: resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} engines: {node: '>= 10'} @@ -744,6 +1325,13 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -763,6 +1351,9 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + css-selector-parser@3.0.5: + resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + css-selector-tokenizer@0.8.0: resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} @@ -794,6 +1385,12 @@ packages: supports-color: optional: true + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -802,24 +1399,54 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dlv@1.1.3: + direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dotenv@8.6.0: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} @@ -829,6 +1456,12 @@ packages: electron-to-chromium@1.5.47: resolution: {integrity: sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ==} + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -842,9 +1475,25 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + eruda@3.4.0: + resolution: {integrity: sha512-MSPJUwdKX8gJuWXzlKN0YcZUm8+XAMtntW+tmnvEpb1hUVQRxMiB/lxrqkuOBQ/SQJRXpIP1E0cADsRZMDjpXg==} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-toolkit@1.26.1: resolution: {integrity: sha512-E3H14lHWk8JpupVpIRA1gfNF4r953abHTFW+X1Rp7zl7eG37ksuthfEA4FinyVF/Y807vzzfQS1nubeZk2LTVA==} + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -854,6 +1503,10 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} @@ -865,13 +1518,47 @@ packages: esrap@1.2.2: resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + exceljs@4.4.0: resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==} engines: {node: '>=8.3.0'} + expressive-code@0.35.6: + resolution: {integrity: sha512-+mx+TPTbMqgo0mL92Xh9QgjW0kSQIsEivMgEcOnaqKqL7qCw8Vkqc5Rg/di7ZYw4aMUSr74VTc+w8GQWu05j1g==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -915,10 +1602,21 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -953,6 +1651,21 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -974,6 +1687,10 @@ packages: engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -981,13 +1698,95 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + + hast-util-format@1.1.0: + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + + hast-util-is-body-ok-link@3.0.1: + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-minify-whitespace@1.0.1: + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + + hast-util-select@6.0.3: + resolution: {integrity: sha512-OVRQlQ1XuuLP8aFVLYmC2atrfWHS5UD3shonxpnyrjcCkwtvmt/+N6kYJdcY4mkMJhxp4kj2EFIxQ9kvkkt/eQ==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + + hast-util-to-jsx-runtime@2.3.2: + resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-whitespace-sensitive-tag-names@3.0.1: + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + i18next@23.16.4: + resolution: {integrity: sha512-9NIYBVy9cs4wIqzurf7nLXPyf3R78xYbxExVqHLK9od3038rjpyOEzW+XB130kZ1N4PZ9inTtJ471CRJ4Ituyg==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -1006,6 +1805,9 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -1013,6 +1815,21 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -1021,6 +1838,18 @@ packages: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1033,10 +1862,26 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -1044,10 +1889,22 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -1061,10 +1918,22 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + json-schema-compare@0.2.2: resolution: {integrity: sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==} @@ -1075,6 +1944,17 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -1085,6 +1965,14 @@ packages: jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -1110,6 +1998,10 @@ packages: listenercount@1.0.1: resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -1162,15 +2054,28 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loupe@3.1.2: resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -1178,14 +2083,190 @@ packages: magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-extension-directive@3.0.2: + resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1212,9 +2293,16 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -1223,6 +2311,16 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -1256,6 +2354,9 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} hasBin: true + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -1267,10 +2368,21 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + only-allow@1.2.1: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} hasBin: true + ora@8.1.0: + resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} + engines: {node: '>=18'} + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -1286,6 +2398,10 @@ packages: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} + p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + engines: {node: '>=18'} + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -1294,6 +2410,14 @@ packages: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} + p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + + p-timeout@6.1.3: + resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} + engines: {node: '>=14.16'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -1304,9 +2428,28 @@ packages: package-manager-detector@0.2.2: resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + pagefind@1.1.1: + resolution: {integrity: sha512-U2YR0dQN5B2fbIXrLtt/UXNS0yWSSYfePaad1KcBPTi0p+zRtsVjwmoPaMQgTks5DnHNbmDxyJUL5TGaLljK3A==} + hasBin: true + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1344,6 +2487,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -1356,6 +2503,10 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -1397,14 +2548,34 @@ packages: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} + + prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -1441,9 +2612,77 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regex@4.3.3: + resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + + rehype-expressive-code@0.35.6: + resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==} + + rehype-format@5.0.1: + resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.1.0: + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} @@ -1456,6 +2695,22 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -1486,10 +2741,21 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + saxes@5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -1498,6 +2764,10 @@ packages: setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -1514,6 +2784,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shiki@1.22.1: + resolution: {integrity: sha512-PbJ6XxrWLMwB2rm3qdjIHNm3zq4SfFnOx0B3rEoi4AN8AUngsdyZ1tRe5slMPtn6jQkbUURLNZPpLR7Do3k78g==} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -1524,6 +2797,17 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@8.0.0: + resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + hasBin: true + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -1532,6 +2816,13 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawndamnit@2.0.0: resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} @@ -1541,9 +2832,23 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@3.7.0: + starlight-package-managers@0.7.0: + resolution: {integrity: sha512-7T0Wd4OhtyTxr7yxplO1gt1B0Ped4dxRQ0T3uOp7qM+5UmQiyQE6PMxwmN+4hVuaVQ1zpDdZR6nQrptewS+m9g==} + engines: {node: '>=18.14.1'} + peerDependencies: + '@astrojs/starlight': '>=0.22.0' + astro: '>=4.2.7' + + std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1552,12 +2857,19 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1566,10 +2878,20 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -1587,6 +2909,12 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' + svelte2tsx@0.7.22: + resolution: {integrity: sha512-hf55ujq17ufVpDQlJzaQfRr9EjlLIwGmFlpKq4uYrQAQFw/99q1OcVYyBT6568iJySgBUY9PdccURrORmfetmQ==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + svelte@5.1.3: resolution: {integrity: sha512-Sl8UFHlBvF54aK8MElFvyvaUfPE2REOz6LnhR2pBClCL11MU4qpn4V+KgAggaXxDyrP2iQixvHbtpHqL/zXlSQ==} engines: {node: '>=18'} @@ -1647,9 +2975,28 @@ packages: traverse@0.3.9: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + turbo-darwin-64@2.2.3: resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==} cpu: [x64] @@ -1684,11 +3031,54 @@ packages: resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==} hasBin: true + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} + + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + + typescript-auto-import-cache@0.3.5: + resolution: {integrity: sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==} + typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -1724,6 +3114,15 @@ packages: validate.io-number@1.0.3: resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-node@2.1.3: resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1793,6 +3192,118 @@ packages: jsdom: optional: true + volar-service-css@0.0.62: + resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.62: + resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.62: + resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-prettier@0.0.62: + resolution: {integrity: sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==} + peerDependencies: + '@volar/language-service': ~2.4.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + + volar-service-typescript-twoslash-queries@0.0.62: + resolution: {integrity: sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.62: + resolution: {integrity: sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-yaml@0.0.62: + resolution: {integrity: sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} + + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -1803,6 +3314,10 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -1817,6 +3332,10 @@ packages: engines: {node: '>=8'} hasBin: true + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -1825,20 +3344,54 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml-language-server@1.15.0: + resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} + hasBin: true + + yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + yaml@2.6.0: resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} hasBin: true + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} @@ -1846,6 +3399,23 @@ packages: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} + zod-to-json-schema@3.23.5: + resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} + peerDependencies: + zod: ^3.23.3 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -1855,10 +3425,276 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@astrojs/check@0.9.4(typescript@5.6.3)': + dependencies: + '@astrojs/language-server': 2.15.4(typescript@5.6.3) + chokidar: 4.0.1 + kleur: 4.1.5 + typescript: 5.6.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + + '@astrojs/compiler@2.10.3': {} + + '@astrojs/internal-helpers@0.4.1': {} + + '@astrojs/language-server@2.15.4(typescript@5.6.3)': + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/yaml2ts': 0.2.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@volar/kit': 2.4.8(typescript@5.6.3) + '@volar/language-core': 2.4.8 + '@volar/language-server': 2.4.8 + '@volar/language-service': 2.4.8 + fast-glob: 3.3.2 + muggle-string: 0.4.1 + volar-service-css: 0.0.62(@volar/language-service@2.4.8) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.8) + volar-service-html: 0.0.62(@volar/language-service@2.4.8) + volar-service-prettier: 0.0.62(@volar/language-service@2.4.8) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.8) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.8) + volar-service-yaml: 0.0.62(@volar/language-service@2.4.8) + vscode-html-languageservice: 5.3.1 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + + '@astrojs/markdown-remark@5.3.0': + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.22.1 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@3.1.8(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3))': + dependencies: + '@astrojs/markdown-remark': 5.3.0 + '@mdx-js/mdx': 3.1.0(acorn@8.13.0) + acorn: 8.13.0 + astro: 4.16.7(rollup@4.24.0)(typescript@5.6.3) + es-module-lexer: 1.5.4 + estree-util-visit: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.3 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 3.0.2 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@3.1.0': + dependencies: + prismjs: 1.29.0 + + '@astrojs/sitemap@3.2.1': + dependencies: + sitemap: 8.0.0 + stream-replace-string: 2.0.0 + zod: 3.23.8 + + '@astrojs/starlight@0.28.3(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3))': + dependencies: + '@astrojs/mdx': 3.1.8(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)) + '@astrojs/sitemap': 3.2.1 + '@pagefind/default-ui': 1.1.1 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + astro: 4.16.7(rollup@4.24.0)(typescript@5.6.3) + astro-expressive-code: 0.35.6(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)) + bcp-47: 2.1.0 + hast-util-from-html: 2.0.3 + hast-util-select: 6.0.3 + hast-util-to-string: 3.0.1 + hastscript: 9.0.0 + i18next: 23.16.4 + mdast-util-directive: 3.0.0 + mdast-util-to-markdown: 2.1.0 + mdast-util-to-string: 4.0.0 + pagefind: 1.1.1 + rehype: 13.0.2 + rehype-format: 5.0.1 + remark-directive: 3.0.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/svelte@5.7.2(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3))(svelte@5.1.3)(typescript@5.6.3)(vite@5.4.10)': + dependencies: + '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.3)(vite@5.4.10) + astro: 4.16.7(rollup@4.24.0)(typescript@5.6.3) + svelte: 5.1.3 + svelte2tsx: 0.7.22(svelte@5.1.3)(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + - vite + + '@astrojs/telemetry@3.1.0': + dependencies: + ci-info: 4.0.0 + debug: 4.3.7 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@astrojs/yaml2ts@0.2.2': + dependencies: + yaml: 2.6.0 + + '@babel/code-frame@7.26.0': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.0': {} + + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.0': + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.0 + + '@babel/helper-compilation-targets@7.25.9': + dependencies: + '@babel/compat-data': 7.26.0 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + + '@babel/parser@7.26.1': + dependencies: + '@babel/types': 7.26.0 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@changesets/apply-release-plan@7.0.5': dependencies: '@changesets/config': 3.0.3 @@ -2016,6 +3852,36 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 + '@ctrl/tinycolor@4.1.0': {} + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.0 + optional: true + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -2085,6 +3951,31 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@expressive-code/core@0.35.6': + dependencies: + '@ctrl/tinycolor': 4.1.0 + hast-util-select: 6.0.3 + hast-util-to-html: 9.0.3 + hast-util-to-text: 4.0.2 + hastscript: 9.0.0 + postcss: 8.4.47 + postcss-nested: 6.2.0(postcss@8.4.47) + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + + '@expressive-code/plugin-frames@0.35.6': + dependencies: + '@expressive-code/core': 0.35.6 + + '@expressive-code/plugin-shiki@0.35.6': + dependencies: + '@expressive-code/core': 0.35.6 + shiki: 1.22.1 + + '@expressive-code/plugin-text-markers@0.35.6': + dependencies: + '@expressive-code/core': 0.35.6 + '@fast-csv/format@4.3.5': dependencies: '@types/node': 14.18.63 @@ -2104,30 +3995,105 @@ snapshots: lodash.isundefined: 3.0.1 lodash.uniq: 4.5.0 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true - '@jridgewell/resolve-uri@3.1.2': {} + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true - '@jridgewell/set-array@1.2.1': {} + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true - '@jridgewell/sourcemap-codec@1.5.0': {} + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 '@manypkg/find-root@1.1.0': @@ -2146,6 +4112,36 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@mdx-js/mdx@3.1.0(acorn@8.13.0)': + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.2 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.13.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - acorn + - supports-color + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2158,9 +4154,36 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@oslojs/encoding@1.1.0': {} + + '@pagefind/darwin-arm64@1.1.1': + optional: true + + '@pagefind/darwin-x64@1.1.1': + optional: true + + '@pagefind/default-ui@1.1.1': {} + + '@pagefind/linux-arm64@1.1.1': + optional: true + + '@pagefind/linux-x64@1.1.1': + optional: true + + '@pagefind/windows-x64@1.1.1': + optional: true + '@pkgjs/parseargs@0.11.0': optional: true + '@rollup/pluginutils@5.1.3(rollup@4.24.0)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.24.0 + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true @@ -2209,6 +4232,33 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true + '@shikijs/core@1.22.1': + dependencies: + '@shikijs/engine-javascript': 1.22.1 + '@shikijs/engine-oniguruma': 1.22.1 + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + + '@shikijs/engine-javascript@1.22.1': + dependencies: + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-js: 0.4.3 + + '@shikijs/engine-oniguruma@1.22.1': + dependencies: + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + + '@shikijs/types@1.22.1': + dependencies: + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@9.3.0': {} + '@sjsf/ajv8-validator@1.1.2(@sjsf/form@1.1.2(svelte@5.1.3))(ajv@8.17.1)': dependencies: '@sjsf/form': 1.1.2(svelte@5.1.3) @@ -2254,12 +4304,75 @@ snapshots: '@tsconfig/svelte@5.0.4': {} + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.6 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.0 + + '@types/cookie@0.6.0': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.6 + '@types/estree@1.0.6': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/ms@0.7.34': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + '@types/node@12.20.55': {} '@types/node@14.18.63': {} + '@types/node@17.0.45': {} + + '@types/sax@1.2.7': + dependencies: + '@types/node': 17.0.45 + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@ungap/structured-clone@1.2.0': {} + '@vitest/expect@2.1.3': dependencies: '@vitest/spy': 2.1.3 @@ -2300,6 +4413,70 @@ snapshots: loupe: 3.1.2 tinyrainbow: 1.2.0 + '@volar/kit@2.4.8(typescript@5.6.3)': + dependencies: + '@volar/language-service': 2.4.8 + '@volar/typescript': 2.4.8 + typesafe-path: 0.2.2 + typescript: 5.6.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-core@2.4.8': + dependencies: + '@volar/source-map': 2.4.8 + + '@volar/language-server@2.4.8': + dependencies: + '@volar/language-core': 2.4.8 + '@volar/language-service': 2.4.8 + '@volar/typescript': 2.4.8 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-service@2.4.8': + dependencies: + '@volar/language-core': 2.4.8 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/source-map@2.4.8': {} + + '@volar/typescript@2.4.8': + dependencies: + '@volar/language-core': 2.4.8 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vscode/emmet-helper@2.9.3': + dependencies: + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vscode/l10n@0.0.18': {} + + '@vtbag/cam-shaft@1.0.1': {} + + '@vtbag/element-crossing@1.0.2': {} + + '@vtbag/inspection-chamber@1.0.17': + dependencies: + eruda: 3.4.0 + + '@vtbag/turn-signal@1.1.0': {} + + acorn-jsx@5.3.2(acorn@8.13.0): + dependencies: + acorn: 8.13.0 + acorn-typescript@1.4.13(acorn@8.13.0): dependencies: acorn: 8.13.0 @@ -2313,6 +4490,10 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + ansi-colors@4.1.3: {} ansi-regex@5.0.1: {} @@ -2374,12 +4555,109 @@ snapshots: dependencies: sprintf-js: 1.0.3 + argparse@2.0.1: {} + aria-query@5.3.2: {} + array-iterate@2.0.1: {} + array-union@2.1.0: {} assertion-error@2.0.1: {} + astring@1.9.0: {} + + astro-expressive-code@0.35.6(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)): + dependencies: + astro: 4.16.7(rollup@4.24.0)(typescript@5.6.3) + rehype-expressive-code: 0.35.6 + + astro-vtbot@1.10.5: + dependencies: + '@vtbag/cam-shaft': 1.0.1 + '@vtbag/element-crossing': 1.0.2 + '@vtbag/inspection-chamber': 1.0.17 + '@vtbag/turn-signal': 1.1.0 + + astro@4.16.7(rollup@4.24.0)(typescript@5.6.3): + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/internal-helpers': 0.4.1 + '@astrojs/markdown-remark': 5.3.0 + '@astrojs/telemetry': 3.1.0 + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.3(rollup@4.24.0) + '@types/babel__core': 7.20.5 + '@types/cookie': 0.6.0 + acorn: 8.13.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.0.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.7.2 + cssesc: 3.0.0 + debug: 4.3.7 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.5.4 + esbuild: 0.21.5 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.12 + magicast: 0.3.5 + micromatch: 4.0.8 + mrmime: 2.0.0 + neotraverse: 0.6.18 + ora: 8.1.0 + p-limit: 6.1.0 + p-queue: 8.0.1 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.6.3 + shiki: 1.22.1 + tinyexec: 0.3.1 + tsconfck: 3.1.4(typescript@5.6.3) + unist-util-visit: 5.0.0 + vfile: 6.0.3 + vite: 5.4.10 + vitefu: 1.0.3(vite@5.4.10) + which-pm: 3.0.0 + xxhash-wasm: 1.0.2 + yargs-parser: 21.1.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.23.8) + optionalDependencies: + sharp: 0.33.5 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - typescript + async@3.2.6: {} autoprefixer@10.4.20(postcss@8.4.47): @@ -2394,10 +4672,22 @@ snapshots: axobject-query@4.1.0: {} + bail@2.0.2: {} + balanced-match@1.0.2: {} + base-64@1.0.0: {} + base64-js@1.5.1: {} + bcp-47-match@2.0.3: {} + + bcp-47@2.1.0: + dependencies: + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 @@ -2419,6 +4709,19 @@ snapshots: bluebird@3.4.7: {} + boolbase@1.0.0: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.26.1 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -2456,8 +4759,12 @@ snapshots: camelcase-css@2.0.1: {} + camelcase@8.0.0: {} + caniuse-lite@1.0.30001671: {} + ccount@2.0.1: {} + chai@5.1.2: dependencies: assertion-error: 2.0.1 @@ -2470,6 +4777,16 @@ snapshots: dependencies: traverse: 0.3.9 + chalk@5.3.0: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + chardet@0.7.0: {} check-error@2.1.1: {} @@ -2492,14 +4809,48 @@ snapshots: ci-info@3.9.0: {} + ci-info@4.0.0: {} + + cli-boxes@3.0.0: {} + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + comma-separated-tokens@2.0.3: {} + commander@4.1.1: {} + common-ancestor-path@1.0.1: {} + compress-commons@4.1.2: dependencies: buffer-crc32: 0.2.13 @@ -2522,6 +4873,10 @@ snapshots: concat-map@0.0.1: {} + convert-source-map@2.0.0: {} + + cookie@0.7.2: {} + core-util-is@1.0.3: {} crc-32@1.2.2: {} @@ -2543,6 +4898,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-selector-parser@3.0.5: {} + css-selector-tokenizer@0.8.0: dependencies: cssesc: 3.0.0 @@ -2569,22 +4926,48 @@ snapshots: dependencies: ms: 2.1.3 + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + dedent-js@1.0.1: {} + deep-eql@5.0.2: {} deepmerge@4.3.1: {} + dequal@2.0.3: {} + detect-indent@6.1.0: {} + detect-libc@2.0.3: {} + + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.1.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + didyoumean@1.2.2: {} + diff@5.2.0: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 + direction@2.0.1: {} + dlv@1.1.3: {} dotenv@8.6.0: {} + dset@3.1.4: {} + duplexer2@0.1.4: dependencies: readable-stream: 2.3.8 @@ -2593,6 +4976,13 @@ snapshots: electron-to-chromium@1.5.47: {} + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -2606,8 +4996,28 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + entities@4.5.0: {} + + eruda@3.4.0: {} + + es-module-lexer@1.5.4: {} + es-toolkit@1.26.1: {} + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.13.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -2636,6 +5046,8 @@ snapshots: escalade@3.2.0: {} + escape-string-regexp@5.0.0: {} + esm-env@1.0.0: {} esprima@4.0.1: {} @@ -2645,10 +5057,43 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@types/estree': 1.0.6 + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.6 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@2.0.2: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.6 + eventemitter3@5.0.1: {} + exceljs@4.4.0: dependencies: archiver: 5.3.2 @@ -2661,6 +5106,19 @@ snapshots: unzipper: 0.10.14 uuid: 8.3.2 + expressive-code@0.35.6: + dependencies: + '@expressive-code/core': 0.35.6 + '@expressive-code/plugin-frames': 0.35.6 + '@expressive-code/plugin-shiki': 0.35.6 + '@expressive-code/plugin-text-markers': 0.35.6 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + extendable-error@0.1.7: {} external-editor@3.1.0: @@ -2694,17 +5152,28 @@ snapshots: dependencies: reusify: 1.0.4 - fdir@6.4.2: {} + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 + find-up-simple@1.0.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + find-yarn-workspace-root2@1.2.16: + dependencies: + micromatch: 4.0.8 + pkg-dir: 4.2.0 + + flattie@1.1.1: {} + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 @@ -2740,6 +5209,14 @@ snapshots: function-bind@1.1.2: {} + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -2774,6 +5251,8 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 + globals@11.12.0: {} + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -2785,12 +5264,228 @@ snapshots: graceful-fs@4.2.11: {} + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + hasown@2.0.2: dependencies: function-bind: 1.1.2 + hast-util-embedded@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + + hast-util-format@1.1.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-minify-whitespace: 1.0.1 + hast-util-phrasing: 3.0.1 + hast-util-whitespace: 3.0.0 + html-whitespace-sensitive-tag-names: 3.0.1 + unist-util-visit-parents: 6.0.1 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 + parse5: 7.2.0 + vfile: 6.0.3 + vfile-message: 4.0.2 + + hast-util-from-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-body-ok-link@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-minify-whitespace@1.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.0 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-phrasing@3.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.1 + hast-util-is-element: 3.0.0 + + hast-util-raw@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.2.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-select@6.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 3.0.5 + devlop: 1.1.0 + direction: 2.0.1 + hast-util-has-property: 3.0.0 + hast-util-to-string: 3.0.1 + hast-util-whitespace: 3.0.0 + nth-check: 2.1.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.0: + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.2: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + hastscript@9.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + html-whitespace-sensitive-tag-names@3.0.1: {} + + http-cache-semantics@4.1.1: {} + human-id@1.0.2: {} + i18next@23.16.4: + dependencies: + '@babel/runtime': 7.26.0 + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -2805,6 +5500,8 @@ snapshots: immediate@3.0.6: {} + import-meta-resolve@4.1.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -2812,6 +5509,19 @@ snapshots: inherits@2.0.4: {} + inline-style-parser@0.1.1: {} + + inline-style-parser@0.2.4: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-arrayish@0.3.2: {} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -2820,6 +5530,12 @@ snapshots: dependencies: hasown: 2.0.2 + is-decimal@2.0.1: {} + + is-docker@3.0.0: {} + + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -2828,8 +5544,18 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-hexadecimal@2.0.1: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@2.0.0: {} + is-number@7.0.0: {} + is-plain-obj@4.1.0: {} + is-reference@3.0.2: dependencies: '@types/estree': 1.0.6 @@ -2838,8 +5564,16 @@ snapshots: dependencies: better-path-resolve: 1.0.0 + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + is-windows@1.0.2: {} + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + isarray@1.0.0: {} isexe@2.0.0: {} @@ -2852,11 +5586,19 @@ snapshots: jiti@1.21.6: {} + js-tokens@4.0.0: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.0.2: {} + json-schema-compare@0.2.2: dependencies: lodash: 4.17.21 @@ -2869,6 +5611,12 @@ snapshots: json-schema-traverse@1.0.0: {} + json5@2.2.3: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -2882,6 +5630,10 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 + kind-of@6.0.3: {} + + kleur@3.0.3: {} + kleur@4.1.5: {} lazystream@1.0.1: @@ -2900,6 +5652,13 @@ snapshots: listenercount@1.0.1: {} + load-yaml-file@0.2.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + locate-character@3.0.0: {} locate-path@5.0.0: @@ -2936,8 +5695,19 @@ snapshots: lodash@4.17.21: {} + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + + longest-streak@3.1.0: {} + loupe@3.1.2: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.0 + lru-cache@10.4.3: {} lru-cache@4.1.5: @@ -2945,19 +5715,492 @@ snapshots: pseudomap: 1.0.2 yallist: 2.1.2 + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + lz-string@1.5.0: {} magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + source-map-js: 1.2.1 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.4: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + mdast-util-directive@3.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-visit-parents: 6.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.1.3: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + merge2@1.4.1: {} + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-directive@3.0.2: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + parse-entities: 4.0.1 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-expression@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-jsx@3.0.1: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-mdx-expression@2.0.2: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-events-to-acorn@2.0.2: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 + mimic-function@5.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -2980,15 +6223,30 @@ snapshots: mri@1.2.0: {} + mrmime@2.0.0: {} + ms@2.1.3: {} + muggle-string@0.4.1: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.7: {} + nanoid@3.3.7: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.0 node-fetch@2.7.0: dependencies: @@ -3013,6 +6271,10 @@ snapshots: npm-bundled: 2.0.1 npm-normalize-package-bin: 2.0.0 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -3021,10 +6283,30 @@ snapshots: dependencies: wrappy: 1.0.2 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + oniguruma-to-js@0.4.3: + dependencies: + regex: 4.3.3 + only-allow@1.2.1: dependencies: which-pm-runs: 1.1.0 + ora@8.1.0: + dependencies: + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + os-tmpdir@1.0.2: {} outdent@0.5.0: {} @@ -3037,20 +6319,70 @@ snapshots: dependencies: p-try: 2.2.0 + p-limit@6.1.0: + dependencies: + yocto-queue: 1.1.1 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 p-map@2.1.0: {} + p-queue@8.0.1: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.3 + + p-timeout@6.1.3: {} + p-try@2.2.0: {} package-json-from-dist@1.0.1: {} package-manager-detector@0.2.2: {} + pagefind@1.1.1: + optionalDependencies: + '@pagefind/darwin-arm64': 1.1.1 + '@pagefind/darwin-x64': 1.1.1 + '@pagefind/linux-arm64': 1.1.1 + '@pagefind/linux-x64': 1.1.1 + '@pagefind/windows-x64': 1.1.1 + pako@1.0.11: {} + parse-entities@4.0.1: + dependencies: + '@types/unist': 2.0.11 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse5@7.2.0: + dependencies: + entities: 4.5.0 + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.0 + + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -3074,12 +6406,18 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pify@4.0.1: {} pirates@4.0.6: {} + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + postcss-import@15.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 @@ -3117,10 +6455,28 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + preferred-pm@4.0.0: + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + + prettier@2.8.7: + optional: true + prettier@2.8.8: {} + prismjs@1.29.0: {} + process-nextick-args@2.0.1: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@6.5.0: {} + pseudomap@1.0.2: {} publint@0.2.12: @@ -3168,8 +6524,145 @@ snapshots: readdirp@4.0.2: {} + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.0(acorn@8.13.0): + dependencies: + acorn-jsx: 5.3.2(acorn@8.13.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - acorn + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.6 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + regenerator-runtime@0.14.1: {} + regex@4.3.3: {} + + rehype-expressive-code@0.35.6: + dependencies: + expressive-code: 0.35.6 + + rehype-format@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-format: 1.1.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.4 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.0 + transitivePeerDependencies: + - supports-color + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-directive@3.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-directive: 3.0.0 + micromark-extension-directive: 3.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.0: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + request-light@0.5.8: {} + + request-light@0.7.0: {} + + require-directory@2.1.1: {} + require-from-string@2.0.2: {} resolve-from@5.0.0: {} @@ -3180,6 +6673,36 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + reusify@1.0.4: {} rimraf@2.7.1: @@ -3222,14 +6745,49 @@ snapshots: safer-buffer@2.1.2: {} + sax@1.4.1: {} + saxes@5.0.1: dependencies: xmlchars: 2.2.0 + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@6.3.1: {} + semver@7.6.3: {} setimmediate@1.0.5: {} + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -3242,16 +6800,42 @@ snapshots: shebang-regex@3.0.0: {} + shiki@1.22.1: + dependencies: + '@shikijs/core': 1.22.1 + '@shikijs/engine-javascript': 1.22.1 + '@shikijs/engine-oniguruma': 1.22.1 + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + siginfo@2.0.0: {} signal-exit@3.0.7: {} signal-exit@4.1.0: {} + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + sisteransi@1.0.5: {} + + sitemap@8.0.0: + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + slash@3.0.0: {} source-map-js@1.2.1: {} + source-map@0.7.4: {} + + space-separated-tokens@2.0.2: {} + spawndamnit@2.0.0: dependencies: cross-spawn: 5.1.0 @@ -3261,8 +6845,17 @@ snapshots: stackback@0.0.2: {} + starlight-package-managers@0.7.0(@astrojs/starlight@0.28.3(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)))(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)): + dependencies: + '@astrojs/starlight': 0.28.3(astro@4.16.7(rollup@4.24.0)(typescript@5.6.3)) + astro: 4.16.7(rollup@4.24.0)(typescript@5.6.3) + std-env@3.7.0: {} + stdin-discarder@0.2.2: {} + + stream-replace-string@2.0.0: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -3275,6 +6868,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -3283,6 +6882,11 @@ snapshots: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3291,8 +6895,18 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-bom-string@1.0.0: {} + strip-bom@3.0.0: {} + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -3305,11 +6919,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.0.5(svelte@5.1.3)(typescript@5.6.3): + svelte-check@4.0.5(picomatch@4.0.2)(svelte@5.1.3)(typescript@5.6.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 - fdir: 6.4.2 + fdir: 6.4.2(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 svelte: 5.1.3 @@ -3317,6 +6931,13 @@ snapshots: transitivePeerDependencies: - picomatch + svelte2tsx@0.7.22(svelte@5.1.3)(typescript@5.6.3): + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 5.1.3 + typescript: 5.6.3 + svelte@5.1.3: dependencies: '@ampproject/remapping': 2.3.0 @@ -3402,8 +7023,18 @@ snapshots: traverse@0.3.9: {} + trim-lines@3.0.1: {} + + trough@2.2.0: {} + ts-interface-checker@0.1.13: {} + tsconfck@3.1.4(typescript@5.6.3): + optionalDependencies: + typescript: 5.6.3 + + tslib@2.8.0: {} + turbo-darwin-64@2.2.3: optional: true @@ -3431,8 +7062,72 @@ snapshots: turbo-windows-64: 2.2.3 turbo-windows-arm64: 2.2.3 + type-fest@4.26.1: {} + + typesafe-path@0.2.2: {} + + typescript-auto-import-cache@0.3.5: + dependencies: + semver: 7.6.3 + typescript@5.6.3: {} + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universalify@0.1.2: {} unzipper@0.10.14: @@ -3473,6 +7168,21 @@ snapshots: validate.io-number@1.0.3: {} + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + vite-node@2.1.3: dependencies: cac: 6.7.14 @@ -3534,6 +7244,119 @@ snapshots: - supports-color - terser + volar-service-css@0.0.62(@volar/language-service@2.4.8): + dependencies: + vscode-css-languageservice: 6.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.8 + + volar-service-emmet@0.0.62(@volar/language-service@2.4.8): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.8 + + volar-service-html@0.0.62(@volar/language-service@2.4.8): + dependencies: + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.8 + + volar-service-prettier@0.0.62(@volar/language-service@2.4.8): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.8 + + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.8): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.8 + + volar-service-typescript@0.0.62(@volar/language-service@2.4.8): + dependencies: + path-browserify: 1.0.1 + semver: 7.6.3 + typescript-auto-import-cache: 0.3.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.8 + + volar-service-yaml@0.0.62(@volar/language-service@2.4.8): + dependencies: + vscode-uri: 3.0.8 + yaml-language-server: 1.15.0 + optionalDependencies: + '@volar/language-service': 2.4.8 + + vscode-css-languageservice@6.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-html-languageservice@5.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-jsonrpc@6.0.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} whatwg-url@5.0.0: @@ -3543,6 +7366,10 @@ snapshots: which-pm-runs@1.1.0: {} + which-pm@3.0.0: + dependencies: + load-yaml-file: 0.2.0 + which@1.3.1: dependencies: isexe: 2.0.0 @@ -3556,6 +7383,10 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -3568,14 +7399,57 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} xmlchars@2.2.0: {} + xxhash-wasm@1.0.2: {} + + y18n@5.0.8: {} + yallist@2.1.2: {} + yallist@3.1.1: {} + + yaml-language-server@1.15.0: + dependencies: + ajv: 8.17.1 + lodash: 4.17.21 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + yaml: 2.2.2 + optionalDependencies: + prettier: 2.8.7 + + yaml@2.2.2: {} + yaml@2.6.0: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@1.1.1: {} + zimmerframe@1.1.2: {} zip-stream@4.1.1: @@ -3583,3 +7457,16 @@ snapshots: archiver-utils: 3.0.4 compress-commons: 4.1.2 readable-stream: 3.6.2 + + zod-to-json-schema@3.23.5(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod-to-ts@1.2.0(typescript@5.6.3)(zod@3.23.8): + dependencies: + typescript: 5.6.3 + zod: 3.23.8 + + zod@3.23.8: {} + + zwitch@2.0.4: {}